Annotation of qemu/roms/openbios/arch/amd64/context.h, revision 1.1

1.1     ! root        1: #ifndef AMD64_CONTEXT_H
        !             2: #define AMD64_CONTEXT_H
        !             3: 
        !             4: struct context {
        !             5:     /* Stack Segment, placed here because of the alignment issue... */
        !             6:     uint16_t ss;
        !             7:     /* Used with sgdt/lgdt */
        !             8:     uint16_t gdt_limit;
        !             9:     uint64_t gdt_base;
        !            10:     /* General registers, accessed with pushal/popal */
        !            11:     uint32_t edi;
        !            12:     uint32_t esi;
        !            13:     uint32_t ebp;
        !            14:     uint32_t esp; /* points just below eax */
        !            15:     uint32_t ebx;
        !            16:     uint32_t edx;
        !            17:     uint32_t ecx;
        !            18:     uint32_t eax;
        !            19: #define ESP_LOC(ctx) (&(ctx)->gs)
        !            20:     /* Segment registers */
        !            21:     uint32_t gs;
        !            22:     uint32_t fs;
        !            23:     uint32_t es;
        !            24:     uint32_t ds;
        !            25:     /* Flags */
        !            26:     uint32_t eflags;
        !            27:     /* Code segment:offset */
        !            28:     uint32_t eip;
        !            29:     uint32_t cs;
        !            30:     /* Optional stack contents */
        !            31:     uint32_t return_addr;
        !            32:     uint32_t param[0];
        !            33: };
        !            34: 
        !            35: /* Create a new context in the given stack */
        !            36: struct context *
        !            37: init_context(uint8_t *stack, uint32_t stack_size, int num_param);
        !            38: 
        !            39: /* Switch context */
        !            40: struct context *switch_to(struct context *);
        !            41: 
        !            42: /* Holds physical address of boot context */
        !            43: extern unsigned long __boot_ctx;
        !            44: 
        !            45: /* This can always be safely used to refer to the boot context */
        !            46: #define boot_ctx ((struct context *) phys_to_virt(__boot_ctx))
        !            47: 
        !            48: #endif /* AMD64_CONTEXT_H */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.