Changeset 7d3d641 in mainline for kernel/arch/xen32/include


Ignore:
Timestamp:
2006-08-01T20:45:26Z (19 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
5b23a82
Parents:
3e5cc686
Message:

xen32: initialize virtual IDT

Location:
kernel/arch/xen32/include
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/xen32/include/asm.h

    r3e5cc686 r7d3d641  
    273273}
    274274
    275 /** Load IDTR register from memory.
    276  *
    277  * @param idtr_reg Address of memory from where to load IDTR.
    278  */
    279 static inline void idtr_load(ptr_16_32_t *idtr_reg)
    280 {
    281         __asm__ volatile ("lidtl %0\n" : : "m" (*idtr_reg));
    282 }
    283 
    284275/** Load TR from descriptor table.
    285276 *
  • kernel/arch/xen32/include/boot/boot.h

    r3e5cc686 r7d3d641  
    4141
    4242#define BOOT_OFFSET             0x0000
     43#define TEMP_STACK_SIZE 0x1000
     44
    4345#define XEN_VIRT_START  0xFC000000
    44 
    45 #define TEMP_STACK_SIZE 0x1000
     46#define XEN_CS                  0xe019
    4647
    4748#ifndef __ASM__
  • kernel/arch/xen32/include/hypercall.h

    r3e5cc686 r7d3d641  
    3737
    3838
     39typedef struct {
     40        uint8_t vector;     /**< Exception vector */
     41        uint8_t flags;      /**< 0-3: privilege level; 4: clear event enable */
     42        uint16_t cs;        /**< Code selector */
     43        uintptr_t address;  /**< Code offset */
     44} trap_info_t;
     45
     46
     47#define XEN_SET_TRAP_TABLE              0
    3948#define XEN_MMU_UPDATE                  1
     49#define XEN_SET_CALLBACKS               4
    4050#define XEN_UPDATE_VA_MAPPING   14
    4151#define XEN_CONSOLE_IO                  18
     
    199209}
    200210
     211static inline int xen_set_callbacks(const unsigned int event_selector, const void *event_address, const unsigned int failsafe_selector, void *failsafe_address)
     212{
     213        return hypercall4(XEN_SET_CALLBACKS, event_selector, event_address, failsafe_selector, failsafe_address);
     214}
     215
     216static inline int xen_set_trap_table(const trap_info_t *table)
     217{
     218        return hypercall1(XEN_SET_TRAP_TABLE, table);
     219}
     220
    201221#endif
  • kernel/arch/xen32/include/pm.h

    r3e5cc686 r7d3d641  
    9393typedef struct descriptor  descriptor_t;
    9494
    95 struct idescriptor {
    96         unsigned offset_0_15: 16;
    97         unsigned selector: 16;
    98         unsigned unused: 8;
    99         unsigned access: 8;
    100         unsigned offset_16_31: 16;
    101 } __attribute__ ((packed));
    102 typedef struct idescriptor idescriptor_t;
    103 
    10495struct tss {
    10596        uint16_t link;
     
    157148extern void gdt_setlimit(descriptor_t *d, uint32_t limit);
    158149
    159 extern void idt_init(void);
    160 extern void idt_setoffset(idescriptor_t *d, uintptr_t offset);
     150extern void traps_init(void);
    161151
    162152extern void tss_initialize(tss_t *t);
Note: See TracChangeset for help on using the changeset viewer.