Go to the source code of this file.
Functions | |
| globl ap_trampoline_end text  code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax  | xchgl (%edi) | 
Variables | |
| globl ap_trampoline_end text  code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ap_trampoline_stackptr ap_trampoline_start mov al mov dx outb dx eax mov ap_trampoline_spl edi eax mov al mov dx outb  | al | 
| globl ap_trampoline_end text  code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ap_trampoline_stackptr ap_trampoline_start mov al mov dx outb  | al | 
| globl ap_trampoline_end text  code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb  | al | 
| globl ap_trampoline_end text  code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb  | al | 
| globl ap_trampoline_end text  code16 ax movw ds movw es movw ss mov al mov dx outb  | al | 
| globl ap_trampoline_end text  code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi  | ap_spl | 
| globl ap_trampoline_end text  code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start  | ap_trampoline_32 | 
| globl ap_trampoline_end text  code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ap_trampoline_stackptr ap_trampoline_start mov al mov dx outb dx eax mov ap_trampoline_spl edi eax mov al mov dx outb dx mov  | ap_trampoline_epoint | 
| globl ap_trampoline_end text  code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ap_trampoline_stackptr ap_trampoline_start mov al mov dx outb dx eax mov ap_trampoline_spl  | ap_trampoline_start | 
| globl ap_trampoline_end text  code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr  | ap_trampoline_start | 
| globl ap_trampoline_end text  code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl  | ap_trampoline_start | 
| globl ap_trampoline_end text  code16  | ap_trampoline_start | 
| globl | ap_trampoline_start | 
| globl ap_trampoline_end text  code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov  | ax | 
| globl ap_trampoline_end text  code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov  | ax | 
| globl ap_trampoline_end text  code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov  | ax | 
| globl ap_trampoline_end text  code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov  | ax | 
| globl ap_trampoline_end text  code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov  | ax | 
| globl ap_trampoline_end text  code16 ax movw ds movw es movw  | ax | 
| globl ap_trampoline_end text  code16 ax movw ds movw  | ax | 
| globl ap_trampoline_end text  code16 ax movw  | ax | 
| globl ap_trampoline_end text  code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax  | cmp | 
| globl ap_trampoline_end text  code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl  | cr0 | 
| globl ap_trampoline_end text  code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl  | eax | 
| globl ap_trampoline_end text  code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov  | ebx | 
| globl ap_trampoline_end text  code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov  | ebx | 
| globl ap_trampoline_end text  code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ap_trampoline_stackptr ap_trampoline_start mov al mov dx outb dx  | mov | 
| globl ap_trampoline_end text  code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp  | x08 | 
| globl ap_trampoline_end text  code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl  | x1 | 
| globl ap_trampoline_end text  code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov  | x10 | 
| globl ap_trampoline_end text  code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add  | x1000 | 
| globl ap_trampoline_end text  code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov  | x30 | 
| globl ap_trampoline_end text  code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ap_trampoline_stackptr ap_trampoline_start mov  | x31 | 
| globl ap_trampoline_end text  code16 ax movw ds movw es movw ss mov  | x31 | 
| globl ap_trampoline_end text  code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ap_trampoline_stackptr ap_trampoline_start mov al mov dx outb dx eax mov ap_trampoline_spl edi eax mov  | x33 | 
| globl ap_trampoline_end text  code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ap_trampoline_stackptr ap_trampoline_start mov al mov dx outb dx eax mov ap_trampoline_spl edi eax mov al mov  | xe9 | 
| globl ap_trampoline_end text  code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ap_trampoline_stackptr ap_trampoline_start mov al mov  | xe9 | 
| globl ap_trampoline_end text  code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov  | xe9 | 
| globl ap_trampoline_end text  code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov  | xe9 | 
| globl ap_trampoline_end text  code16 ax movw ds movw es movw ss mov al mov  | xe9 | 
| globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ap_trampoline_stackptr ap_trampoline_start mov al mov dx outb dx eax mov ap_trampoline_spl edi xchgl | ( | % | edi | ) | 
| globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ap_trampoline_stackptr ap_trampoline_start mov al mov dx outb dx eax mov ap_trampoline_spl edi eax mov al mov dx outb al | 
| globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ap_trampoline_stackptr ap_trampoline_start mov al mov dx outb al | 
| globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb al | 
| globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi ap_spl | 
| globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start ap_trampoline_32 | 
| globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ap_trampoline_stackptr ap_trampoline_start mov al mov dx outb dx eax mov ap_trampoline_spl edi eax mov al mov dx outb dx mov ap_trampoline_epoint | 
| globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ap_trampoline_stackptr ap_trampoline_start mov al mov dx outb dx eax mov ap_trampoline_spl ap_trampoline_start | 
| globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ap_trampoline_start | 
| globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl ap_trampoline_start | 
| globl ap_trampoline_start | 
| globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax cmp | 
| globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ebx | 
| globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov ebx | 
| globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ap_trampoline_stackptr ap_trampoline_start mov al mov dx outb dx mov | 
| globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl x1 | 
Definition at line 6 of file ap-boot.S.
Referenced by atkbd_init(), devfs_init(), devfs_open(), fclose(), getch(), getEmptyDesc(), getFreeBlocks(), initHardDisk(), kmain(), mpi_postMessage(), ne2kGetBuffer(), openFileUbixFS(), read(), sched_setStatus(), ubixfs_init(), ubixfs_initialize(), ufs_init(), ufs_initialize(), ufs_openFile(), vfs_mount(), vfsRegisterFS(), vmm_pageFault(), vmm_pagingInit(), vmmCopyVirtualSpace(), and vmmGetFreeVirtualPage().
| globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add x1000 | 
Definition at line 52 of file ap-boot.S.
Referenced by addDirEntry(), biosCall(), execFile(), fstat(), initLNC(), kmod_load(), ldEnable(), mmap(), sysExec(), ubixFSUnlink(), vmm_cleanVirtualSpace(), vmm_getFreeMallocPage(), vmm_getPhysicalAddr(), vmm_pageFault(), vmm_pagingInit(), vmm_remapPage(), vmm_setPageAttributes(), vmmCopyVirtualSpace(), vmmFreeProcessPages(), vmmGetFreePage(), vmmGetFreeVirtualPage(), vmmMapFromTask(), vmmMemMapInit(), vmmUnmapPage(), and writeUbixFS().
| globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov x30 | 
| globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ap_trampoline_stackptr ap_trampoline_start mov x31 | 
| globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ap_trampoline_stackptr ap_trampoline_start mov al mov dx outb dx eax mov ap_trampoline_spl edi eax mov x33 | 
| globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ap_trampoline_stackptr ap_trampoline_start mov al mov dx outb dx eax mov ap_trampoline_spl edi eax mov al mov xe9 | 
| globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ap_trampoline_stackptr ap_trampoline_start mov al mov xe9 | 
| globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov xe9 | 
 1.4.7