<html><body><div style="color:#000; background-color:#fff; font-family:lucida console, sans-serif;font-size:10pt"><div><span></span></div><div>Hi Kumar Amit,</div><div> </div><div>These function are define in </div><div> </div><div> </div><div><a href="http://lxr.linux.no/linux+v3.10/include/linux/buffer_head.h">http://lxr.linux.no/linux+v3.10/include/linux/buffer_head.h</a></div><div> </div><div> </div><div>The <tt>##</tt> (double number sign) operator concatenates two tokens in a macro invocation (text and/or arguments) given in a macro definition</div><div> </div><div> </div><div>/*<br> * Emit the buffer bitops functions. Note that there are also functions<br> * of the form "mark_buffer_foo()". These are higher-level functions which<br> * do something in addition to setting a b_state bit.<br> */<br>BUFFER_FNS(Uptodate, uptodate)<br>BUFFER_FNS(Dirty,
dirty)<br>TAS_BUFFER_FNS(Dirty, dirty)<br>BUFFER_FNS(Lock, locked)<br>BUFFER_FNS(Req, req)<br>TAS_BUFFER_FNS(Req, req)<br>BUFFER_FNS(Mapped, mapped)<br>BUFFER_FNS(New, new)<br>BUFFER_FNS(Async_Read, async_read)<br>BUFFER_FNS(Async_Write, async_write)<br>BUFFER_FNS(Delay, delay)<br>BUFFER_FNS(Boundary, boundary)<br>BUFFER_FNS(Write_EIO, write_io_error)<br>BUFFER_FNS(Unwritten, unwritten)<br>BUFFER_FNS(Meta, meta)<br>BUFFER_FNS(Prio, prio)<br></div><div>These function get expanded before we compile the kernel.</div><div> </div><div>-Anand Moon</div><div> </div> <div style="font-family: lucida console, sans-serif; font-size: 10pt;"> <div style="font-family: times new roman, new york, times, serif; font-size: 12pt;"> <div dir="ltr"> <div class="hr" style="margin: 5px 0px; padding: 0px; border: 1px solid rgb(204, 204, 204); height: 0px; line-height: 0; font-size: 0px;" contenteditable="false" readonly="true"></div> <font face="Arial" size="2">
<b><span style="font-weight: bold;">From:</span></b> Kumar amit mehta <gmate.amit@gmail.com><br> <b><span style="font-weight: bold;">To:</span></b> kernelnewbies@kernelnewbies.org <br> <b><span style="font-weight: bold;">Sent:</span></b> Tuesday, July 9, 2013 7:51 AM<br> <b><span style="font-weight: bold;">Subject:</span></b> Where are these buffer_xxx macros/fucntion defined?<br> </font> </div> <div class="y_msg_container"><br>Hi,<br><br>I see that a lot of FS code is using buffer_invalidate(), buffer_req() <br>etc, but I could not find the definition of these anywhere in the tree.<br>What am i missing? For example, see ext3 code using buffer_invalidate()<br>here[1].<br><br>For building cscope and tags database, I invoke the following command<br>from the top of the tree:<br>$ make cscope tags<br><br>[1] <a href="http://lxr.linux.no/#linux+v3.10/fs/ext3/namei.c#L926"
target="_blank">http://lxr.linux.no/#linux+v3.10/fs/ext3/namei.c#L926</a><br><br>Thanks,<br>Amit<br><br>_______________________________________________<br>Kernelnewbies mailing list<br><a href="mailto:Kernelnewbies@kernelnewbies.org" ymailto="mailto:Kernelnewbies@kernelnewbies.org">Kernelnewbies@kernelnewbies.org</a><br><a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" target="_blank">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a><br><br><br></div> </div> </div> </div></body></html>