Changeset 4a76be7 in rtems


Ignore:
Timestamp:
May 21, 2010, 7:02:05 PM (9 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.10, 4.11, master
Children:
665285f
Parents:
d1c3dc9
Message:

2010-05-21 Vinu Rajashekhar <vinutheraj@…>

  • rtems/score/registers.h: Remove structs with bit-fields. Add a mask for cr3 page directory.
Location:
cpukit/score/cpu/i386
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • cpukit/score/cpu/i386/ChangeLog

    rd1c3dc9 r4a76be7  
     12010-05-21      Vinu Rajashekhar <vinutheraj@gmail.com>
     2
     3        * rtems/score/registers.h: Remove structs with bit-fields. Add a mask
     4        for cr3 page directory.
     5
    162010-03-27      Joel Sherrill <joel.sherrill@oarcorp.com>
    27
  • cpukit/score/cpu/i386/rtems/score/registers.h

    rd1c3dc9 r4a76be7  
    6868#define CR3_PAGE_CACHE_DISABLE          0x10
    6969#define CR3_PAGE_WRITE_THROUGH          0x8
    70 
    71 
    72 #ifndef ASM
    73 
    74 /*
    75  * definition of eflags registers has a bit field structure
    76  */
    77 typedef struct {
    78   /*
    79    * fist byte : bits 0->7
    80    */
    81   unsigned int carry                    : 1;
    82   unsigned int                          : 1;
    83   unsigned int parity                   : 1;
    84   unsigned int                          : 1;
    85 
    86   unsigned int auxiliary_carry          : 1;
    87   unsigned int                          : 1;
    88   unsigned int zero                     : 1;    /* result is zero */
    89   unsigned int sign                     : 1;    /* result is less than zero */
    90   /*
    91    * Second byte : bits 7->15
    92    */
    93   unsigned int trap                     : 1;
    94   unsigned int intr_enable              : 1;    /* set => intr on */
    95   unsigned int direction                : 1;    /* set => autodecrement */
    96   unsigned int overflow                 : 1;
    97 
    98   unsigned int IO_privilege             : 2;
    99   unsigned int nested_task              : 1;
    100   unsigned int                          : 1;
    101   /*
    102    * Third byte : bits 15->23
    103    */
    104   unsigned int resume                   : 1;
    105   unsigned int virtual_mode             : 1;
    106   unsigned int aligment_check           : 1;
    107   unsigned int virtual_intr             : 1;
    108 
    109   unsigned int virtual_intr_pending     : 1;
    110   unsigned int id                       : 1;
    111   unsigned int                          : 2;
    112 
    113   /*
    114    * fourth byte : bits 24->31 : UNUSED
    115    */
    116   unsigned int                          : 8;
    117 }eflags_bits;
    118 
    119 typedef union {
    120   eflags_bits   eflags;
    121   unsigned int  i;
    122 }eflags;
    123 /*
    124  * definition of eflags registers has a bit field structure
    125  */
    126 typedef struct {
    127   /*
    128    * fist byte : bits 0->7
    129    */
    130   unsigned int protection_enable        : 1;
    131   unsigned int monitor_coproc           : 1;
    132   unsigned int coproc_soft_emul         : 1;
    133   unsigned int floating_instr_except    : 1;
    134 
    135   unsigned int extension_type           : 1;
    136   unsigned int numeric_error            : 1;
    137   unsigned int                          : 2;
    138   /*
    139    * second byte 8->15 : UNUSED
    140    */
    141   unsigned int                          : 8;
    142   /*
    143    * third byte 16->23
    144    */
    145   unsigned int write_protect            : 1;
    146   unsigned int                          : 1;
    147   unsigned int aligment_mask            : 1;
    148   unsigned int                          : 1;
    149 
    150   unsigned int                          : 4;
    151   /*
    152    * fourth byte 24->31
    153    */
    154   unsigned int                          : 4;
    155 
    156   unsigned int                          : 1;
    157   unsigned int no_write_through         : 1;
    158   unsigned int page_level_cache_disable : 1;
    159   unsigned int paging   : 1;
    160 }cr0_bits;
    161 
    162 typedef union {
    163   cr0_bits      cr0;
    164   unsigned int  i;
    165 }cr0;
    166 
    167 /*
    168  * definition of cr3 registers has a bit field structure
    169  */
    170 typedef struct {
    171 
    172   unsigned int                          : 3;
    173   unsigned int page_write_transparent   : 1;
    174   unsigned int page_cache_disable       : 1;
    175   unsigned int                          : 7;
    176   unsigned int page_directory_base      :20;
    177 }cr3_bits;
    178 
    179 typedef union {
    180   cr3_bits      cr3;
    181   unsigned int  i;
    182 }cr3;
     70#define CR3_PAGE_DIRECTORY_MASK         0xFFFFF000
    18371
    18472#endif
    185 
    186 #endif
Note: See TracChangeset for help on using the changeset viewer.