home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 15 / 15.iso / s / s053 / 9.ddi / usr / include / sys / tss.h < prev    next >
Encoding:
C/C++ Source or Header  |  1990-12-08  |  2.4 KB  |  94 lines

  1. /*    Copyright (c) 1990 UNIX System Laboratories, Inc.    */
  2. /*    Copyright (c) 1984, 1986, 1987, 1988, 1989, 1990 AT&T    */
  3. /*      All Rights Reserved      */
  4.  
  5. /*    THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF         */
  6. /*    UNIX System Laboratories, Inc.                         */
  7. /*    The copyright notice above does not evidence any       */
  8. /*    actual or intended publication of such source code.    */
  9.  
  10. #ifndef _SYS_TSS_H
  11. #define _SYS_TSS_H
  12.  
  13. #ident    "@(#)/usr/include/sys/tss.h.sl 1.1 4.0 12/08/90 29041 AT&T-USL"
  14.  
  15. /* Flags Register */
  16.  
  17. typedef struct flags {
  18.     uint    fl_cf    :  1,        /* carry/borrow */
  19.             :  1,        /* reserved */
  20.         fl_pf    :  1,        /* parity */
  21.             :  1,        /* reserved */
  22.         fl_af    :  1,        /* carry/borrow */
  23.             :  1,        /* reserved */
  24.         fl_zf    :  1,        /* zero */
  25.         fl_sf    :  1,        /* sign */
  26.         fl_tf    :  1,        /* trace */
  27.         fl_if    :  1,        /* interrupt enable */
  28.         fl_df    :  1,        /* direction */
  29.         fl_of    :  1,        /* overflow */
  30.         fl_iopl :  2,        /* I/O privilege level */
  31.         fl_nt    :  1,        /* nested task */
  32.             :  1,        /* reserved */
  33.         fl_rf    :  1,        /* reset */
  34.         fl_vm    :  1,        /* virtual 86 mode */
  35.         fl_res    : 14;        /* reserved */
  36. } flags_t;
  37.  
  38. #define    PS_C        0x0001        /* carry bit            */
  39. #define    PS_P        0x0004        /* parity bit            */
  40. #define    PS_AC        0x0010        /* auxiliary carry bit        */
  41. #define    PS_Z        0x0040        /* zero bit            */
  42. #define    PS_N        0x0080        /* negative bit            */
  43. #define    PS_T        0x0100        /* trace enable bit        */
  44. #define    PS_IE        0x0200        /* interrupt enable bit        */
  45. #define    PS_D        0x0400        /* direction bit        */
  46. #define    PS_V        0x0800        /* overflow bit            */
  47. #define    PS_IOPL        0x3000        /* I/O privilege level        */
  48. #define    PS_NT        0x4000        /* nested task flag        */
  49. #define    PS_RF        0x10000        /* Reset flag            */
  50. #define    PS_VM        0x20000        /* Virtual 86 mode flag        */
  51.  
  52. /*
  53.  * Maximum I/O address that will be in TSS bitmap
  54.  */
  55. #define    MAXTSSIOADDR    0x3ff
  56.  
  57. /*
  58.  * 386 TSS definition
  59.  */
  60.  
  61. struct tss386 {
  62.     unsigned long t_link;
  63.     unsigned long t_esp0;
  64.     unsigned long t_ss0;
  65.     unsigned long t_esp1;
  66.     unsigned long t_ss1;
  67.     unsigned long t_esp2;
  68.     unsigned long t_ss2;
  69.     paddr_t          t_cr3;
  70.     unsigned long t_eip;
  71.     unsigned long t_eflags;
  72.     unsigned long t_eax;
  73.     unsigned long t_ecx;
  74.     unsigned long t_edx;
  75.     unsigned long t_ebx;
  76.     unsigned long t_esp;
  77.     unsigned long t_ebp;
  78.     unsigned long t_esi;
  79.     unsigned long t_edi;
  80.     unsigned long t_es;
  81.     unsigned long t_cs;
  82.     unsigned long t_ss;
  83.     unsigned long t_ds;
  84.     unsigned long t_fs;
  85.     unsigned long t_gs;
  86.     unsigned long t_ldt;
  87.     unsigned long t_bitmapbase;
  88. };
  89.  
  90. #define        PS_USER        3
  91. #define        PS_KERNEL    0
  92.  
  93. #endif    /* _SYS_TSS_H */
  94.