Changeset 99d6fd0 in mainline for kernel/arch/amd64/include/pm.h


Ignore:
Timestamp:
2009-03-13T12:57:15Z (16 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
421c833
Parents:
0160b1c8
Message:

cleanup pm.h and related stuff (no change in functionality)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/amd64/include/pm.h

    r0160b1c8 r99d6fd0  
    2727 */
    2828
    29 /** @addtogroup amd64   
     29/** @addtogroup amd64
    3030 * @{
    3131 */
     
    3737
    3838#ifndef __ASM__
    39 #       include <arch/types.h>
    40 #       include <arch/context.h>
     39        #include <arch/types.h>
     40        #include <arch/context.h>
    4141#endif
    4242
    43 #define IDT_ITEMS 64
    44 #define GDT_ITEMS 8
     43#define IDT_ITEMS  64
     44#define GDT_ITEMS  8
    4545
    4646
    47 #define NULL_DES        0
    48 /* Warning: Do not reorder next items, unless you look into syscall.c!!! */
    49 #define KTEXT_DES       1
    50 #define KDATA_DES       2
    51 #define UDATA_DES       3
    52 #define UTEXT_DES       4
    53 #define KTEXT32_DES     5
    54 /* EndOfWarning */
    55 #define TSS_DES         6
    56 
    57 
     47#define NULL_DES     0
     48/* Warning: Do not reorder the following items, unless you look into syscall.c! */
     49#define KTEXT_DES    1
     50#define KDATA_DES    2
     51#define UDATA_DES    3
     52#define UTEXT_DES    4
     53#define KTEXT32_DES  5
     54/* End of warning */
     55#define TSS_DES      6
    5856
    5957#ifdef CONFIG_FB
    6058
    61 #define VESA_INIT_DES           8
    62 #define VESA_INIT_SEGMENT 0x8000
    63 #undef GDT_ITEMS
    64 #define GDT_ITEMS 9
     59#define VESA_INIT_DES      8
     60#define VESA_INIT_SEGMENT  0x8000
    6561
    66 #endif /*CONFIG_FB*/
     62#undef GDT_ITEMS
     63#define GDT_ITEMS  9
    6764
     65#endif /* CONFIG_FB */
    6866
     67#define gdtselector(des)  ((des) << 3)
     68#define idtselector(des)  ((des) << 4)
    6969
    70 #define gdtselector(des)        ((des) << 3)
    71 #define idtselector(des)        ((des) << 4)
     70#define PL_KERNEL  0
     71#define PL_USER    3
    7272
    73 #define PL_KERNEL       0
    74 #define PL_USER         3
     73#define AR_PRESENT   ( 1 << 7)
     74#define AR_DATA       (2 << 3)
     75#define AR_CODE       (3 << 3)
     76#define AR_WRITABLE   (1 << 1)
     77#define AR_READABLE   (1 << 1)
     78#define AR_TSS        (0x09)
     79#define AR_INTERRUPT  (0x0e)
     80#define AR_TRAP       (0x0f)
    7581
    76 #define AR_PRESENT      (1<<7)
    77 #define AR_DATA         (2<<3)
    78 #define AR_CODE         (3<<3)
    79 #define AR_WRITABLE     (1<<1)
    80 #define AR_READABLE     (1<<1)
    81 #define AR_TSS          (0x9)
    82 #define AR_INTERRUPT    (0xe)
    83 #define AR_TRAP         (0xf)
     82#define DPL_KERNEL  (PL_KERNEL << 5)
     83#define DPL_USER    (PL_USER << 5)
    8484
    85 #define DPL_KERNEL      (PL_KERNEL<<5)
    86 #define DPL_USER        (PL_USER<<5)
     85#define TSS_BASIC_SIZE  104
     86#define TSS_IOMAP_SIZE  (16 * 1024 + 1)  /* 16K for bitmap + 1 terminating byte for convenience */
    8787
    88 #define TSS_BASIC_SIZE  104
    89 #define TSS_IOMAP_SIZE  (16*1024+1)     /* 16K for bitmap + 1 terminating byte for convenience */
    90 
    91 #define IO_PORTS        (64*1024)
     88#define IO_PORTS  (64 * 1024)
    9289
    9390#ifndef __ASM__
    9491
    95 struct descriptor {
     92typedef struct {
    9693        unsigned limit_0_15: 16;
    9794        unsigned base_0_15: 16;
     
    104101        unsigned granularity : 1;
    105102        unsigned base_24_31: 8;
    106 } __attribute__ ((packed));
    107 typedef struct descriptor descriptor_t;
     103} __attribute__ ((packed)) descriptor_t;
    108104
    109 struct tss_descriptor {
     105typedef struct {
    110106        unsigned limit_0_15: 16;
    111107        unsigned base_0_15: 16;
     
    122118        unsigned base_32_63 : 32;
    123119        unsigned  : 32;
    124 } __attribute__ ((packed));
    125 typedef struct tss_descriptor tss_descriptor_t;
     120} __attribute__ ((packed)) tss_descriptor_t;
    126121
    127 struct idescriptor {
     122typedef struct {
    128123        unsigned offset_0_15: 16;
    129124        unsigned selector: 16;
     
    136131        unsigned offset_32_63: 32;
    137132        unsigned  : 32;
    138 } __attribute__ ((packed));
    139 typedef struct idescriptor idescriptor_t;
     133} __attribute__ ((packed)) idescriptor_t;
    140134
    141 struct ptr_16_64 {
     135typedef struct {
    142136        uint16_t limit;
    143137        uint64_t base;
    144 } __attribute__ ((packed));
    145 typedef struct ptr_16_64 ptr_16_64_t;
     138} __attribute__ ((packed)) ptr_16_64_t;
    146139
    147 struct ptr_16_32 {
     140typedef struct {
    148141        uint16_t limit;
    149142        uint32_t base;
    150 } __attribute__ ((packed));
    151 typedef struct ptr_16_32 ptr_16_32_t;
     143} __attribute__ ((packed)) ptr_16_32_t;
    152144
    153 struct tss {
     145typedef struct {
    154146        uint32_t reserve1;
    155147        uint64_t rsp0;
     
    168160        uint16_t iomap_base;
    169161        uint8_t iomap[TSS_IOMAP_SIZE];
    170 } __attribute__ ((packed));
    171 typedef struct tss tss_t;
     162} __attribute__ ((packed)) tss_t;
    172163
    173164extern tss_t *tss_p;
Note: See TracChangeset for help on using the changeset viewer.