spacing
This commit is contained in:
		
							parent
							
								
									5d0fe3445b
								
							
						
					
					
						commit
						3fd50978a8
					
				
					 2 changed files with 17 additions and 20 deletions
				
			
		
							
								
								
									
										3
									
								
								BUGS
									
										
									
									
									
								
							
							
						
						
									
										3
									
								
								BUGS
									
										
									
									
									
								
							| 
						 | 
					@ -1,9 +1,6 @@
 | 
				
			||||||
index:
 | 
					index:
 | 
				
			||||||
	SEG_NULL, SEG_ASM not in the index
 | 
						SEG_NULL, SEG_ASM not in the index
 | 
				
			||||||
 | 
					
 | 
				
			||||||
mmu.h:
 | 
					 | 
				
			||||||
	funny \ alignment in mmu.h
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
proc.c:
 | 
					proc.c:
 | 
				
			||||||
	as a consequence of the implementation of proc_kill,
 | 
						as a consequence of the implementation of proc_kill,
 | 
				
			||||||
	any loop calling sleep should check for p->killed
 | 
						any loop calling sleep should check for p->killed
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										34
									
								
								mmu.h
									
										
									
									
									
								
							
							
						
						
									
										34
									
								
								mmu.h
									
										
									
									
									
								
							| 
						 | 
					@ -47,12 +47,12 @@ struct segdesc {
 | 
				
			||||||
// Normal segment
 | 
					// Normal segment
 | 
				
			||||||
#define SEG(type, base, lim, dpl) (struct segdesc)                      \
 | 
					#define SEG(type, base, lim, dpl) (struct segdesc)                      \
 | 
				
			||||||
{ ((lim) >> 12) & 0xffff, (base) & 0xffff, ((base) >> 16) & 0xff,       \
 | 
					{ ((lim) >> 12) & 0xffff, (base) & 0xffff, ((base) >> 16) & 0xff,       \
 | 
				
			||||||
    type, 1, dpl, 1, (uint) (lim) >> 28, 0, 0, 1, 1,            \
 | 
					    type, 1, dpl, 1, (uint) (lim) >> 28, 0, 0, 1, 1,                    \
 | 
				
			||||||
    (uint) (base) >> 24 }
 | 
					    (uint) (base) >> 24 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define SEG16(type, base, lim, dpl) (struct segdesc)                    \
 | 
					#define SEG16(type, base, lim, dpl) (struct segdesc)                    \
 | 
				
			||||||
{ (lim) & 0xffff, (base) & 0xffff, ((base) >> 16) & 0xff,               \
 | 
					{ (lim) & 0xffff, (base) & 0xffff, ((base) >> 16) & 0xff,               \
 | 
				
			||||||
    type, 1, dpl, 1, (uint) (lim) >> 16, 0, 0, 1, 0,            \
 | 
					    type, 1, dpl, 1, (uint) (lim) >> 16, 0, 0, 1, 0,                    \
 | 
				
			||||||
    (uint) (base) >> 24 }
 | 
					    (uint) (base) >> 24 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define DPL_USER    0x3     // User DPL
 | 
					#define DPL_USER    0x3     // User DPL
 | 
				
			||||||
| 
						 | 
					@ -81,9 +81,9 @@ struct segdesc {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Task state segment format
 | 
					// Task state segment format
 | 
				
			||||||
struct taskstate {
 | 
					struct taskstate {
 | 
				
			||||||
  uint link;      // Old ts selector
 | 
					  uint link;         // Old ts selector
 | 
				
			||||||
  uint esp0;      // Stack pointers and segment selectors
 | 
					  uint esp0;         // Stack pointers and segment selectors
 | 
				
			||||||
  ushort ss0;     //   after an increase in privilege level
 | 
					  ushort ss0;        //   after an increase in privilege level
 | 
				
			||||||
  ushort padding1;
 | 
					  ushort padding1;
 | 
				
			||||||
  uint *esp1;
 | 
					  uint *esp1;
 | 
				
			||||||
  ushort ss1;
 | 
					  ushort ss1;
 | 
				
			||||||
| 
						 | 
					@ -91,10 +91,10 @@ struct taskstate {
 | 
				
			||||||
  uint *esp2;
 | 
					  uint *esp2;
 | 
				
			||||||
  ushort ss2;
 | 
					  ushort ss2;
 | 
				
			||||||
  ushort padding3;
 | 
					  ushort padding3;
 | 
				
			||||||
  void *cr3;     // Page directory base
 | 
					  void *cr3;         // Page directory base
 | 
				
			||||||
  uint *eip;     // Saved state from last task switch
 | 
					  uint *eip;         // Saved state from last task switch
 | 
				
			||||||
  uint eflags;
 | 
					  uint eflags;
 | 
				
			||||||
  uint eax;       // More saved state (registers)
 | 
					  uint eax;          // More saved state (registers)
 | 
				
			||||||
  uint ecx;
 | 
					  uint ecx;
 | 
				
			||||||
  uint edx;
 | 
					  uint edx;
 | 
				
			||||||
  uint ebx;
 | 
					  uint ebx;
 | 
				
			||||||
| 
						 | 
					@ -102,7 +102,7 @@ struct taskstate {
 | 
				
			||||||
  uint *ebp;
 | 
					  uint *ebp;
 | 
				
			||||||
  uint esi;
 | 
					  uint esi;
 | 
				
			||||||
  uint edi;
 | 
					  uint edi;
 | 
				
			||||||
  ushort es;              // Even more saved state (segment selectors)
 | 
					  ushort es;         // Even more saved state (segment selectors)
 | 
				
			||||||
  ushort padding4;
 | 
					  ushort padding4;
 | 
				
			||||||
  ushort cs;
 | 
					  ushort cs;
 | 
				
			||||||
  ushort padding5;
 | 
					  ushort padding5;
 | 
				
			||||||
| 
						 | 
					@ -116,8 +116,8 @@ struct taskstate {
 | 
				
			||||||
  ushort padding9;
 | 
					  ushort padding9;
 | 
				
			||||||
  ushort ldt;
 | 
					  ushort ldt;
 | 
				
			||||||
  ushort padding10;
 | 
					  ushort padding10;
 | 
				
			||||||
  ushort t;               // Trap on task switch
 | 
					  ushort t;          // Trap on task switch
 | 
				
			||||||
  ushort iomb;    // I/O map base address
 | 
					  ushort iomb;       // I/O map base address
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Gate descriptors for interrupts and traps
 | 
					// Gate descriptors for interrupts and traps
 | 
				
			||||||
| 
						 | 
					@ -141,16 +141,16 @@ struct gatedesc {
 | 
				
			||||||
// - dpl: Descriptor Privilege Level -
 | 
					// - dpl: Descriptor Privilege Level -
 | 
				
			||||||
//        the privilege level required for software to invoke
 | 
					//        the privilege level required for software to invoke
 | 
				
			||||||
//        this interrupt/trap gate explicitly using an int instruction.
 | 
					//        this interrupt/trap gate explicitly using an int instruction.
 | 
				
			||||||
#define SETGATE(gate, istrap, sel, off, d)                      \
 | 
					#define SETGATE(gate, istrap, sel, off, d)                \
 | 
				
			||||||
{                                                               \
 | 
					{                                                         \
 | 
				
			||||||
  (gate).off_15_0 = (uint) (off) & 0xffff;                \
 | 
					  (gate).off_15_0 = (uint) (off) & 0xffff;                \
 | 
				
			||||||
  (gate).ss = (sel);                                      \
 | 
					  (gate).ss = (sel);                                      \
 | 
				
			||||||
  (gate).args = 0;                                        \
 | 
					  (gate).args = 0;                                        \
 | 
				
			||||||
  (gate).rsv1 = 0;                                        \
 | 
					  (gate).rsv1 = 0;                                        \
 | 
				
			||||||
  (gate).type = (istrap) ? STS_TG32 : STS_IG32;   \
 | 
					  (gate).type = (istrap) ? STS_TG32 : STS_IG32;           \
 | 
				
			||||||
  (gate).s = 0;                                   \
 | 
					  (gate).s = 0;                                           \
 | 
				
			||||||
  (gate).dpl = (d);                                       \
 | 
					  (gate).dpl = (d);                                       \
 | 
				
			||||||
  (gate).p = 1;                                   \
 | 
					  (gate).p = 1;                                           \
 | 
				
			||||||
  (gate).off_31_16 = (uint) (off) >> 16;          \
 | 
					  (gate).off_31_16 = (uint) (off) >> 16;                  \
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue