<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>&nbsp;</div><div>These function are define in </div><div>&nbsp;</div><div>&nbsp;</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>&nbsp;</div><div>&nbsp;</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>&nbsp;</div><div>&nbsp;</div><div>/*<br>&nbsp;* Emit the buffer bitops functions.&nbsp;&nbsp; Note that there are also functions<br>&nbsp;* of the form "mark_buffer_foo()".&nbsp; These are higher-level functions which<br>&nbsp;* do something in addition to setting a b_state bit.<br>&nbsp;*/<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>&nbsp;</div><div>-Anand Moon</div><div>&nbsp;</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 &lt;gmate.amit@gmail.com&gt;<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>