KernOS
registers.h
Go to the documentation of this file.
1 //
2 // Created by on 5/24/20.
3 //
4 
5 #ifndef KERNOS_REGISTERS_H
6 #define KERNOS_REGISTERS_H
7 
10 namespace CR0
11 {
12  enum : uint8_t
13  { // | name | description
14  PE = 0,
15  MP = 1,
16  EM = 2,
17  TS = 3,
18  ET = 4,
19  NE = 5,
20  WP = 16,
21  AM = 18,
22  NW = 29,
23  CD = 30,
24  PG = 31
25  };
26 }
27 
30 namespace CR4
31 {
32  enum : uint8_t
33  { // | name | description
34  VME = 0,
35  PVI = 1,
36  TSD = 2,
37  DE = 3,
38  PSE = 4,
39  PAE = 5,
40  MCE = 6,
41  PGE = 7,
42  PCE = 8,
43  OSFXSR = 9,
44  OSXMMEXCPT = 10
45  };
46 }
47 
51 namespace FLAGS
52 {
53  enum : uint32_t
54  {
55  CF = 0x0001,
56  PF = 0x0004,
57  AF = 0x0010,
58  ZF = 0x0040,
59  SF = 0x0080,
60  TF = 0x0100,
61  IF = 0x0200,
62  DF = 0x0400,
63  OF = 0x0800,
64  RF = 0x0001'0000, ///< resume flag
65  VM = 0x0002'0000,
66  AC = 0x0004'0000, ///< alignment check
67  VIF = 0x0008'0000,
68  VIP = 0x0010'0000, ///< virtual interrupt pending
69  ID = 0x0020'0000,
70  };
71 }
72 
73 #endif //KERNOS_REGISTERS_H
interrupt enable flag
Definition: registers.h:61
sign flag
Definition: registers.h:59
Control register 0.
Definition: registers.h:10
resume flag
Definition: registers.h:64
direction flag
Definition: registers.h:62
adjust flag
Definition: registers.h:57
Control register 4.
Definition: registers.h:30
virtual interrupt pending
Definition: registers.h:68
carry flag
Definition: registers.h:55
CPU Flags register.
Definition: registers.h:51
parity flag
Definition: registers.h:56
alignment check
Definition: registers.h:66
trap flag
Definition: registers.h:60
overflow flag
Definition: registers.h:63
zero flag
Definition: registers.h:58