Current Path : /usr/src/usr.sbin/kldxref/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : //usr/src/usr.sbin/kldxref/fileformat |
$FreeBSD: release/9.1.0/usr.sbin/kldxref/fileformat 186824 2009-01-06 14:10:30Z luigi $ linker.hints file consists from the one or more records, and is processed by sys/kern/kern_linker.c::linker_hints_lookup() 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 MDT_* values */ }; The rest of record depends on the type. struct string { uint8_t length; /* length of string */ char val[]; /* string itself (no terminating zero) */ }; struct data_mdt_version { int type = MDT_VERSION; struct string modname; /* padding */ int version; struct string kldname; /* padding */ }; struct data_mdt_module { int type = MDT_MODULE; struct string modname; struct string kldname; /* padding */ };