title: Is this any kind of macro in linux kernel code?
body: <p>i found this in linux kernel code <a href="http://gitorious.org/pandroid/kernel-omap/blobs/5ed7607d45b300a37dd13ad1c79adea56f6687ce/arch/arm/mach-omap2/board-omap4panda.c" rel="nofollow">http://gitorious.org/pandroid/kernel-omap/blobs/5ed7607d45b300a37dd13ad1c79adea56f6687ce/arch/arm/mach-omap2/board-omap4panda.c</a></p>
  
  <pre><code>MACHINE_START(OMAP4_PANDA, "OMAP4430 Panda Board")
      .phys_io    = 0x48000000,
      .io_pg_offst    = ((0xfa000000) &gt;&gt; 18) &amp; 0xfffc,
      .boot_params    = 0x80000100,
      .map_io     = omap_panda_map_io,
      .init_irq   = omap_panda_init_irq,
      .init_machine   = omap_panda_init,
      .timer      = &amp;omap_timer,
  MACHINE_END
  </code></pre>
  
  <p>i am not getting what is this..? is this a macro or structure or what..???</p>
  
  <p>definition says</p>
  
  <pre><code>/*
   * Set of macros to define architecture features.  This is built into
   * a table by the linker.
   */
  #define MACHINE_START(_type,_name)          \
  static const struct machine_desc __mach_desc_##_type    \
   __used                         \
   __attribute__((__section__(".arch.info.init"))) = {    \
      .nr     = MACH_TYPE_##_type,        \
      .name       = _name,
  
  #define MACHINE_END             \
  };
  
  #endif
  </code></pre>
  
  <p>but i am not understanding how's it work?</p>