1$FreeBSD$ 2 3linker.hints file consists from the one or more records, 4and is processed by sys/kern/kern_linker.c::linker_hints_lookup() 5 6First record of file is special and determines its version: 7 8int version; 9 10 All subsequent records have following format: 11 12struct record { 13 int length; /* length of following data */ 14 char data[length]; 15}; 16 17 Each record is aligned on sizeof(int) boundary. First integer of the field 18'data' determines its type: 19 20struct data { 21 int type; /* type of data. currently MDT_* values */ 22}; 23 24 The rest of record depends on the type. 25 26struct string { 27 uint8_t length; /* length of string */ 28 char val[]; /* string itself (no terminating zero) */ 29}; 30 31struct data_mdt_version { 32 int type = MDT_VERSION; 33 struct string modname; 34 /* padding */ 35 int version; 36 struct string kldname; 37 /* padding */ 38}; 39 40struct data_mdt_module { 41 int type = MDT_MODULE; 42 struct string modname; 43 struct string kldname; 44 /* padding */ 45}; 46