Changeset 99d6fd0 in mainline for kernel/arch/ia32/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/ia32/include/pm.h

    r0160b1c8 r99d6fd0  
    2727 */
    2828
    29 /** @addtogroup ia32   
     29/** @addtogroup ia32
    3030 * @{
    3131 */
     
    3636#define KERN_ia32_PM_H_
    3737
    38 #define IDT_ITEMS       64     
    39 #define GDT_ITEMS       7
     38#define IDT_ITEMS  64
     39#define GDT_ITEMS  7
    4040
    41 #define VESA_INIT_SEGMENT 0x8000
    42 
    43 #define NULL_DES        0
    44 #define KTEXT_DES       1
    45 #define KDATA_DES       2
    46 #define UTEXT_DES       3
    47 #define UDATA_DES       4
    48 #define TSS_DES         5
    49 #define TLS_DES         6 /* Pointer to Thread-Local-Storage data */
     41#define NULL_DES   0
     42#define KTEXT_DES  1
     43#define KDATA_DES  2
     44#define UTEXT_DES  3
     45#define UDATA_DES  4
     46#define TSS_DES    5
     47#define TLS_DES    6  /* Pointer to Thread-Local-Storage data */
    5048
    5149#ifdef CONFIG_FB
    5250
    53 #define VESA_INIT_SEGMENT 0x8000
    54 #define VESA_INIT_DES 7
     51#define VESA_INIT_SEGMENT  0x8000
     52#define VESA_INIT_DES      7
     53#define KTEXT32_DES        KTEXT_DES
     54
    5555#undef GDT_ITEMS
    56 #define GDT_ITEMS 8
     56#define GDT_ITEMS  8
    5757
    5858#endif /* CONFIG_FB */
    5959
     60#define gdtselector(des)  ((des) << 3)
    6061
    61 #define gdtselector(des)        ((des) << 3)
     62#define PL_KERNEL  0
     63#define PL_USER    3
    6264
    63 #define PL_KERNEL       0
    64 #define PL_USER         3
     65#define AR_PRESENT    (1 << 7)
     66#define AR_DATA       (2 << 3)
     67#define AR_CODE       (3 << 3)
     68#define AR_WRITABLE   (1 << 1)
     69#define AR_INTERRUPT  (0x0e)
     70#define AR_TSS        (0x09)
    6571
    66 #define AR_PRESENT      (1 << 7)
    67 #define AR_DATA         (2 << 3)
    68 #define AR_CODE         (3 << 3)
    69 #define AR_WRITABLE     (1 << 1)
    70 #define AR_INTERRUPT    (0xe)
    71 #define AR_TSS          (0x9)
     72#define DPL_KERNEL  (PL_KERNEL << 5)
     73#define DPL_USER    (PL_USER << 5)
    7274
    73 #define DPL_KERNEL      (PL_KERNEL << 5)
    74 #define DPL_USER        (PL_USER << 5)
     75#define TSS_BASIC_SIZE  104
     76#define TSS_IOMAP_SIZE  (16 * 1024 + 1)  /* 16K for bitmap + 1 terminating byte for convenience */
    7577
    76 #define TSS_BASIC_SIZE  104
    77 #define TSS_IOMAP_SIZE  (16 * 1024 + 1) /* 16K for bitmap + 1 terminating byte for convenience */
    78 
    79 #define IO_PORTS        (64 * 1024)
     78#define IO_PORTS  (64 * 1024)
    8079
    8180#ifndef __ASM__
     
    8483#include <arch/context.h>
    8584
    86 struct ptr_16_32 {
     85typedef struct {
    8786        uint16_t limit;
    8887        uint32_t base;
    89 } __attribute__ ((packed));
    90 typedef struct ptr_16_32 ptr_16_32_t;
     88} __attribute__ ((packed)) ptr_16_32_t;
    9189
    92 struct descriptor {
     90typedef struct {
    9391        unsigned limit_0_15: 16;
    9492        unsigned base_0_15: 16;
     
    10199        unsigned granularity : 1;
    102100        unsigned base_24_31: 8;
    103 } __attribute__ ((packed));
    104 typedef struct descriptor  descriptor_t;
     101} __attribute__ ((packed)) descriptor_t;
    105102
    106 struct idescriptor {
     103typedef struct {
    107104        unsigned offset_0_15: 16;
    108105        unsigned selector: 16;
     
    110107        unsigned access: 8;
    111108        unsigned offset_16_31: 16;
    112 } __attribute__ ((packed));
    113 typedef struct idescriptor idescriptor_t;
     109} __attribute__ ((packed)) idescriptor_t;
    114110
    115 struct tss {
     111typedef struct {
    116112        uint16_t link;
    117113        unsigned : 16;
     
    153149        uint16_t iomap_base;
    154150        uint8_t iomap[TSS_IOMAP_SIZE];
    155 } __attribute__ ((packed));
    156 typedef struct tss tss_t;
     151} __attribute__ ((packed)) tss_t;
    157152
    158153extern ptr_16_32_t gdtr;
    159154extern ptr_16_32_t bootstrap_gdtr;
    160155extern ptr_16_32_t protected_ap_gdtr;
    161 extern struct tss *tss_p;
     156extern tss_t *tss_p;
    162157
    163158extern descriptor_t gdt[];
Note: See TracChangeset for help on using the changeset viewer.