Hi,
On Sun, Jan 13, 2013 at 12:09 PM, horseriver <horserivers@xxxxxxxxx> wrote:
>
> On Sun, Jan 13, 2013 at 09:27:45PM -0800, Dave Hylands wrote:
> > Hi,
> >
> > On Sun, Jan 13, 2013 at 11:29 AM, horseriver <horserivers@xxxxxxxxx> wrote:
> > >
> > > hi:
> > >
> > > In kernel code . some function is defined by
> > __attribute__((__section__(".initcall" level ".init")))
> > >
> > > what does this do ?
> >
> > It puts the address of the function in a linker section named
> > .initcallX.init where X is replaced by the level.
>
> why ".initcall" and level do not connect together with ## ?
> As I know , precompiler use ## to connect two strings
That's not quite true. ## is the token pasting operator and is for pasting together pieces of a token to create a larger token.On Sun, Jan 13, 2013 at 12:09 PM, horseriver <horserivers@xxxxxxxxx> wrote:
>
> On Sun, Jan 13, 2013 at 09:27:45PM -0800, Dave Hylands wrote:
> > Hi,
> >
> > On Sun, Jan 13, 2013 at 11:29 AM, horseriver <horserivers@xxxxxxxxx> wrote:
> > >
> > > hi:
> > >
> > > In kernel code . some function is defined by
> > __attribute__((__section__(".initcall" level ".init")))
> > >
> > > what does this do ?
> >
> > It puts the address of the function in a linker section named
> > .initcallX.init where X is replaced by the level.
>
> why ".initcall" and level do not connect together with ## ?
> As I know , precompiler use ## to connect two strings
http://gcc.gnu.org/onlinedocs/cpp/Concatenation.html
http://gcc.gnu.org/onlinedocs/cpp/Stringification.html#Stringification
http://en.wikipedia.org/wiki/C_syntax#String_literal_concatenation
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies