summaryrefslogtreecommitdiffstats
path: root/usr.sbin/kldxref/fileformat
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2001-09-11 01:13:15 +0000
committerpeter <peter@FreeBSD.org>2001-09-11 01:13:15 +0000
commit2975fbf1b355f2dc0a55d5112534cfdc48d0e9df (patch)
tree86821a17ef3a1d1bb08bc8b0b0c46d5d91382f47 /usr.sbin/kldxref/fileformat
parent808991de7cecc9e774ffe5031e29362207e75564 (diff)
downloadFreeBSD-src-2975fbf1b355f2dc0a55d5112534cfdc48d0e9df.zip
FreeBSD-src-2975fbf1b355f2dc0a55d5112534cfdc48d0e9df.tar.gz
Add kldxref(8), for maintaining the linker.hints file for translating
module->pathname.ko. It supports only ELF for now. Submitted by: bp (with some minor tweaks)
Diffstat (limited to 'usr.sbin/kldxref/fileformat')
-rw-r--r--usr.sbin/kldxref/fileformat40
1 files changed, 40 insertions, 0 deletions
diff --git a/usr.sbin/kldxref/fileformat b/usr.sbin/kldxref/fileformat
new file mode 100644
index 0000000..2eddcca
--- /dev/null
+++ b/usr.sbin/kldxref/fileformat
@@ -0,0 +1,40 @@
+$FreeBSD$
+
+ linker.hints file consists from the one or more records. First record of
+file is special and determines its version:
+
+int version;
+
+ All subsequent records have following format:
+
+struct record {
+ int length; /* length of following data */
+ char data[length];
+};
+
+ Each record is aligned on sizeof(int) boundary. First integer of the field
+'data' determines its type:
+
+struct data {
+ int type; /* type of data. currently MTD_* values */
+};
+
+ The rest of record depends on the type.
+
+struct string {
+ int length; /* length of string */
+ char val[]; /* string itself (no terminating zero) */
+};
+
+struct data_mdt_version {
+ int type = MDT_VERSION;
+ struct string modname;
+ int version;
+ struct string kldname;
+};
+
+struct data_mdt_module {
+ int type = MDT_VERSION;
+ struct string modname;
+ struct string kldname;
+};
OpenPOWER on IntegriCloud