drm/i915: Add new GET_PIPE_FROM_CRTC_ID ioctl.
[safe/jmp/linux-2.6] / include / linux / elfnote.h
index 16f9f8e..278e3ef 100644 (file)
 /*
  * Generate a structure with the same shape as Elf{32,64}_Nhdr (which
  * turn out to be the same size and shape), followed by the name and
- * desc data with appropriate padding.  The 'desc' argument includes
- * the assembler pseudo op defining the type of the data: .asciz
- * "hello, world"
+ * desc data with appropriate padding.  The 'desctype' argument is the
+ * assembler pseudo op defining the type of the data e.g. .asciz while
+ * 'descdata' is the data itself e.g.  "hello, world".
+ *
+ * e.g. ELFNOTE(XYZCo, 42, .asciz, "forty-two")
+ *      ELFNOTE(XYZCo, 12, .long, 0xdeadbeef)
  */
-.macro ELFNOTE name type desc:vararg
-.pushsection ".note.\name"
-  .align 4
-  .long 2f - 1f                        /* namesz */
-  .long 4f - 3f                        /* descsz */
-  .long \type
-1:.asciz "\name"
-2:.align 4
-3:\desc
-4:.align 4
-.popsection
-.endm
+#define ELFNOTE_START(name, type, flags)       \
+.pushsection .note.name, flags,@note   ;       \
+  .balign 4                            ;       \
+  .long 2f - 1f                /* namesz */    ;       \
+  .long 4484f - 3f     /* descsz */    ;       \
+  .long type                           ;       \
+1:.asciz #name                         ;       \
+2:.balign 4                            ;       \
+3:
+
+#define ELFNOTE_END                            \
+4484:.balign 4                         ;       \
+.popsection                            ;
+
+#define ELFNOTE(name, type, desc)              \
+       ELFNOTE_START(name, type, "")           \
+               desc                    ;       \
+       ELFNOTE_END
+
 #else  /* !__ASSEMBLER__ */
 #include <linux/elf.h>
 /*
@@ -66,7 +76,7 @@
                typeof(desc) _desc                                      \
                             __attribute__((aligned(sizeof(Elf##size##_Word)))); \
        } _ELFNOTE_PASTE(_note_, unique)                                \
-               __attribute_used__                                      \
+               __used                                                  \
                __attribute__((section(".note." name),                  \
                               aligned(sizeof(Elf##size##_Word)),       \
                               unused)) = {                             \