19c6f9240SPeter Wemm$FreeBSD$ 29c6f9240SPeter Wemm 39c6f9240SPeter Wemm linker.hints file consists from the one or more records. First record of 49c6f9240SPeter Wemmfile is special and determines its version: 59c6f9240SPeter Wemm 69c6f9240SPeter Wemmint version; 79c6f9240SPeter Wemm 89c6f9240SPeter Wemm All subsequent records have following format: 99c6f9240SPeter Wemm 109c6f9240SPeter Wemmstruct record { 119c6f9240SPeter Wemm int length; /* length of following data */ 129c6f9240SPeter Wemm char data[length]; 139c6f9240SPeter Wemm}; 149c6f9240SPeter Wemm 159c6f9240SPeter Wemm Each record is aligned on sizeof(int) boundary. First integer of the field 169c6f9240SPeter Wemm'data' determines its type: 179c6f9240SPeter Wemm 189c6f9240SPeter Wemmstruct data { 199c6f9240SPeter Wemm int type; /* type of data. currently MTD_* values */ 209c6f9240SPeter Wemm}; 219c6f9240SPeter Wemm 229c6f9240SPeter Wemm The rest of record depends on the type. 239c6f9240SPeter Wemm 249c6f9240SPeter Wemmstruct string { 259c6f9240SPeter Wemm int length; /* length of string */ 269c6f9240SPeter Wemm char val[]; /* string itself (no terminating zero) */ 279c6f9240SPeter Wemm}; 289c6f9240SPeter Wemm 299c6f9240SPeter Wemmstruct data_mdt_version { 309c6f9240SPeter Wemm int type = MDT_VERSION; 319c6f9240SPeter Wemm struct string modname; 329c6f9240SPeter Wemm int version; 339c6f9240SPeter Wemm struct string kldname; 349c6f9240SPeter Wemm}; 359c6f9240SPeter Wemm 369c6f9240SPeter Wemmstruct data_mdt_module { 379c6f9240SPeter Wemm int type = MDT_VERSION; 389c6f9240SPeter Wemm struct string modname; 399c6f9240SPeter Wemm struct string kldname; 409c6f9240SPeter Wemm}; 41