Where are these buffer_xxx macros/fucntion defined?
Hi, I see that a lot of FS code is using buffer_invalidate(), buffer_req() etc, but I could not find the definition of these anywhere in the tree. What am i missing? For example, see ext3 code using buffer_invalidate() here[1]. For building cscope and tags database, I invoke the following command from the top of the tree: $ make cscope tags [1] http://lxr.linux.no/#linux+v3.10/fs/ext3/namei.c#L926 Thanks, Amit
Hi Kumar Amit, These function are define in http://lxr.linux.no/linux+v3.10/include/linux/buffer_head.h The ## (double number sign) operator concatenates two tokens in a macro invocation (text and/or arguments) given in a macro definition /* * Emit the buffer bitops functions. Note that there are also functions * of the form "mark_buffer_foo()". These are higher-level functions which * do something in addition to setting a b_state bit. */ BUFFER_FNS(Uptodate, uptodate) BUFFER_FNS(Dirty, dirty) TAS_BUFFER_FNS(Dirty, dirty) BUFFER_FNS(Lock, locked) BUFFER_FNS(Req, req) TAS_BUFFER_FNS(Req, req) BUFFER_FNS(Mapped, mapped) BUFFER_FNS(New, new) BUFFER_FNS(Async_Read, async_read) BUFFER_FNS(Async_Write, async_write) BUFFER_FNS(Delay, delay) BUFFER_FNS(Boundary, boundary) BUFFER_FNS(Write_EIO, write_io_error) BUFFER_FNS(Unwritten, unwritten) BUFFER_FNS(Meta, meta) BUFFER_FNS(Prio, prio) These function get expanded before we compile the kernel. -Anand Moon ________________________________ From: Kumar amit mehta <gmate.amit@gmail.com> To: kernelnewbies@kernelnewbies.org Sent: Tuesday, July 9, 2013 7:51 AM Subject: Where are these buffer_xxx macros/fucntion defined? Hi, I see that a lot of FS code is using buffer_invalidate(), buffer_req() etc, but I could not find the definition of these anywhere in the tree. What am i missing? For example, see ext3 code using buffer_invalidate() here[1]. For building cscope and tags database, I invoke the following command from the top of the tree: $ make cscope tags [1] http://lxr.linux.no/#linux+v3.10/fs/ext3/namei.c#L926 Thanks, Amit _______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
On Tue, Jul 09, 2013 at 01:21:42AM -0700, Anand Moon wrote:
Hi Kumar Amit, These function are define in http://lxr.linux.no/linux+v3.10/include/linux/buffer_head.h The ## (double number sign) operator concatenates two tokens in a macro invocation (text and/or arguments) given in a macro definition /* * Emit the buffer bitops functions. Note that there are also functions * of the form "mark_buffer_foo()". These are higher-level functions which * do something in addition to setting a b_state bit. */ BUFFER_FNS(Uptodate, uptodate) BUFFER_FNS(Dirty, dirty) TAS_BUFFER_FNS(Dirty, dirty) BUFFER_FNS(Lock, locked) BUFFER_FNS(Req, req) TAS_BUFFER_FNS(Req, req) BUFFER_FNS(Mapped, mapped) BUFFER_FNS(New, new) BUFFER_FNS(Async_Read, async_read) BUFFER_FNS(Async_Write, async_write) BUFFER_FNS(Delay, delay) BUFFER_FNS(Boundary, boundary) BUFFER_FNS(Write_EIO, write_io_error) BUFFER_FNS(Unwritten, unwritten) BUFFER_FNS(Meta, meta) BUFFER_FNS(Prio, prio)
These function get expanded before we compile the kernel.
Thank you Anand.
participants (2)
-
Anand Moon -
Kumar amit mehta