Module Name:    src
Committed By:   thorpej
Date:           Sun Dec 20 05:50:20 UTC 2009

Modified Files:
        src/sys/sys: exec_elf.h

Log Message:
Add defns for Elf{32,64}_Syminfo.


To generate a diff of this commit:
cvs rdiff -u -r1.99 -r1.100 src/sys/sys/exec_elf.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/sys/exec_elf.h
diff -u src/sys/sys/exec_elf.h:1.99 src/sys/sys/exec_elf.h:1.100
--- src/sys/sys/exec_elf.h:1.99	Sat Dec 19 09:02:46 2009
+++ src/sys/sys/exec_elf.h	Sun Dec 20 05:50:20 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: exec_elf.h,v 1.99 2009/12/19 09:02:46 thorpej Exp $	*/
+/*	$NetBSD: exec_elf.h,v 1.100 2009/12/20 05:50:20 thorpej Exp $	*/
 
 /*-
  * Copyright (c) 1994 The NetBSD Foundation, Inc.
@@ -897,6 +897,39 @@
 #define	ELF64_ST_INFO(bind,type)	ELF_ST_INFO(bind,type)
 #define	ELF64_ST_VISIBILITY(other)	ELF_ST_VISIBILITY(other)
 
+typedef struct {
+	Elf32_Half	si_boundto;	/* direct bindings - symbol bound to */
+	Elf32_Half	si_flags;	/* per symbol flags */
+} Elf32_Syminfo;
+
+typedef struct {
+	Elf64_Half	si_boundto;	/* direct bindings - symbol bound to */
+	Elf64_Half	si_flags;	/* per symbol flags */
+} Elf64_Syminfo;
+
+#define	SYMINFO_FLG_DIRECT	0x0001	/* symbol ref has direct association
+					   to object containing definition */
+#define	SYMINFO_FLG_PASSTHRU	0x0002	/* ignored - see SYMINFO_FLG_FILTER */
+#define	SYMINFO_FLG_COPY	0x0004	/* symbol is a copy-reloc */
+#define	SYMINFO_FLG_LAZYLOAD	0x0008	/* object containing defn should be
+					   lazily-loaded */
+#define	SYMINFO_FLG_DIRECTBIND	0x0010	/* ref should be bound directly to
+					   object containing definition */
+#define	SYMINFO_FLG_NOEXTDIRECT	0x0020	/* don't let an external reference
+					   directly bind to this symbol */
+#define	SYMINFO_FLG_FILTER	0x0002	/* symbol ref is associated to a */
+#define	SYMINFO_FLG_AUXILIARY	0x0040	/*      standard or auxiliary filter */
+
+#define	SYMINFO_BT_SELF		0xffff	/* symbol bound to self */
+#define	SYMINFO_BT_PARENT	0xfffe	/* symbol bound to parent */
+#define	SYMINFO_BT_NONE		0xfffd	/* no special symbol binding */
+#define	SYMINFO_BT_EXTERN	0xfffc	/* symbol defined as external */
+#define	SYMINFO_BT_LOWRESERVE	0xff00	/* beginning of reserved entries */
+
+#define	SYMINFO_NONE		0	/* Syminfo version */
+#define	SYMINFO_CURRENT		1
+#define	SYMINFO_NUM		2
+
 /*
  * These constants are used for Elf32_Verdef struct's version number.  
  */

Reply via email to