| 182 | #endif |
| 183 | |
| 184 | static vm_offset_t |
| 185 | freebsd_parse_boot_param(struct arm64_bootparams *abp) |
| 186 | { |
| 187 | vm_offset_t lastaddr = 0; |
| 188 | void *kmdp; |
| 189 | #ifdef DDB |
| 190 | vm_offset_t ksym_start; |
| 191 | vm_offset_t ksym_end; |
| 192 | #endif |
| 193 | |
| 194 | if (abp->modulep == 0) |
| 195 | return (0); |
| 196 | |
| 197 | preload_metadata = (caddr_t)(uintptr_t)(abp->modulep); |
| 198 | kmdp = preload_search_by_type("elf kernel"); |
| 199 | if (kmdp == NULL) |
| 200 | return (0); |
| 201 | |
| 202 | boothowto = MD_FETCH(kmdp, MODINFOMD_HOWTO, int); |
| 203 | loader_envp = MD_FETCH(kmdp, MODINFOMD_ENVP, char *); |
| 204 | init_static_kenv(loader_envp, 0); |
| 205 | lastaddr = MD_FETCH(kmdp, MODINFOMD_KERNEND, vm_offset_t); |
| 206 | #ifdef DDB |
| 207 | ksym_start = MD_FETCH(kmdp, MODINFOMD_SSYM, uintptr_t); |
| 208 | ksym_end = MD_FETCH(kmdp, MODINFOMD_ESYM, uintptr_t); |
| 209 | db_fetch_ksymtab(ksym_start, ksym_end, 0); |
| 210 | #endif |
| 211 | return (lastaddr); |
| 212 | } |
| 213 | |
| 214 | vm_offset_t |
| 215 | parse_boot_param(struct arm64_bootparams *abp) |
no test coverage detected