Skip to content

Commit

Permalink
use elfnote.h to generate vsyscall notes.
Browse files Browse the repository at this point in the history
Use existing elfnote.h to generate vsyscall notes, rather than doing
it locally.  Changes elfnote.h a bit to suit, since this is the first
asm user, and it wasn't quite right.

Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Roland McGrath <roland@redhat.com>
Cc: Andrew Morton <akpm@linux-foundation.com>
  • Loading branch information
Jeremy Fitzhardinge authored and Jeremy Fitzhardinge committed Jul 18, 2007
1 parent 86313c4 commit 810bab4
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 24 deletions.
23 changes: 6 additions & 17 deletions arch/i386/kernel/vsyscall-note.S
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,12 @@
* Here we can supply some information useful to userland.
*/

#include <linux/uts.h>
#include <linux/version.h>
#include <linux/elfnote.h>

#define ASM_ELF_NOTE_BEGIN(name, flags, vendor, type) \
.section name, flags; \
.balign 4; \
.long 1f - 0f; /* name length */ \
.long 3f - 2f; /* data length */ \
.long type; /* note type */ \
0: .asciz vendor; /* vendor name */ \
1: .balign 4; \
2:

#define ASM_ELF_NOTE_END \
3: .balign 4; /* pad out section */ \
.previous

ASM_ELF_NOTE_BEGIN(".note.kernel-version", "a", UTS_SYSNAME, 0)
/* Ideally this would use UTS_NAME, but using a quoted string here
doesn't work. Remember to change this when changing the
kernel's name. */
ELFNOTE_START(Linux, 0, "a")
.long LINUX_VERSION_CODE
ASM_ELF_NOTE_END
ELFNOTE_END
22 changes: 15 additions & 7 deletions include/linux/elfnote.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,17 +38,25 @@
* e.g. ELFNOTE(XYZCo, 42, .asciz, "forty-two")
* ELFNOTE(XYZCo, 12, .long, 0xdeadbeef)
*/
#define ELFNOTE(name, type, desctype, descdata) \
.pushsection .note.name, "",@note ; \
.align 4 ; \
#define ELFNOTE_START(name, type, flags) \
.pushsection .note.name, flags,@note ; \
.balign 4 ; \
.long 2f - 1f /* namesz */ ; \
.long 4f - 3f /* descsz */ ; \
.long 4484f - 3f /* descsz */ ; \
.long type ; \
1:.asciz #name ; \
2:.align 4 ; \
3:desctype descdata ; \
4:.align 4 ; \
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>
/*
Expand Down

0 comments on commit 810bab4

Please sign in to comment.