| 99 | } |
| 100 | |
| 101 | void |
| 102 | dpcpu_init(void *dpcpu, int cpuid) |
| 103 | { |
| 104 | struct pcpu *pcpu; |
| 105 | |
| 106 | pcpu = pcpu_find(cpuid); |
| 107 | pcpu->pc_dynamic = (uintptr_t)dpcpu - DPCPU_START; |
| 108 | |
| 109 | /* |
| 110 | * Initialize defaults from our linker section. |
| 111 | */ |
| 112 | memcpy(dpcpu, (void *)DPCPU_START, DPCPU_BYTES); |
| 113 | |
| 114 | /* |
| 115 | * Place it in the global pcpu offset array. |
| 116 | */ |
| 117 | dpcpu_off[cpuid] = pcpu->pc_dynamic; |
| 118 | } |
| 119 | |
| 120 | static void |
| 121 | dpcpu_startup(void *dummy __unused) |
no test coverage detected