Changeset 162 for trunk/hal/x86_64/core/hal_init.c
- Timestamp:
- Jul 7, 2017, 2:39:34 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/hal/x86_64/core/hal_init.c
r154 r162 264 264 265 265 /* Attach cpu0 */ 266 cpu_attach( );266 cpu_attach(0); 267 267 x86_printf("[+] cpu_attach called\n"); 268 268 … … 315 315 uint8_t gdtstore[PAGE_SIZE] __in_kdata; 316 316 uint8_t idtstore[PAGE_SIZE] __in_kdata; 317 struct tss cpu 0_tss__in_kdata;318 uint8_t cpu 0_intr_stack[STKSIZE] __in_kdata;319 uint8_t cpu 0_dbfl_stack[STKSIZE] __in_kdata;320 uint8_t cpu 0_nmfl_stack[STKSIZE] __in_kdata;317 struct tss cpu_tss[CONFIG_MAX_LOCAL_CORES] __in_kdata; 318 uint8_t cpu_intr_stack[CONFIG_MAX_LOCAL_CORES][STKSIZE] __in_kdata; 319 uint8_t cpu_dbfl_stack[CONFIG_MAX_LOCAL_CORES][STKSIZE] __in_kdata; 320 uint8_t cpu_nmfl_stack[CONFIG_MAX_LOCAL_CORES][STKSIZE] __in_kdata; 321 321 322 322 static void … … 453 453 } 454 454 455 void cpu_create_tss( )456 { 457 struct tss *tss = &cpu 0_tss;455 void cpu_create_tss(size_t lid) 456 { 457 struct tss *tss = &cpu_tss[lid]; 458 458 int sel; 459 459 460 460 /* Create the tss */ 461 461 memset(tss, 0, sizeof(*tss)); 462 463 /* tss->tss_rsp0 */ 464 tss->tss_ist[0] = (uint64_t)cpu_intr_stack[lid] + STKSIZE; 465 tss->tss_ist[1] = (uint64_t)cpu_dbfl_stack[lid] + STKSIZE; 466 tss->tss_ist[2] = (uint64_t)cpu_nmfl_stack[lid] + STKSIZE; 462 467 tss->tss_iobase = IOMAP_INVALOFF << 16; 463 tss->tss_ist[0] = (uint64_t)cpu0_intr_stack + STKSIZE;464 tss->tss_ist[1] = (uint64_t)cpu0_dbfl_stack + STKSIZE;465 tss->tss_ist[2] = (uint64_t)cpu0_nmfl_stack + STKSIZE;466 468 sel = tss_alloc(tss); 467 469 … … 472 474 /* -------------------------------------------------------------------------- */ 473 475 474 void cpu_attach( )476 void cpu_attach(size_t lid) 475 477 { 476 478 cpu_load_gdt(); 477 479 cpu_load_idt(); 478 cpu_create_tss( );479 } 480 480 cpu_create_tss(lid); 481 } 482
Note: See TracChangeset
for help on using the changeset viewer.