add uint and standardize on typedefs instead of unsigned

This commit is contained in:
rsc 2006-07-17 01:52:13 +00:00
parent 857d60cb0c
commit b5ee516575
15 changed files with 84 additions and 82 deletions

View file

@ -61,7 +61,7 @@ cmain(void)
bad:
outw(0x8A00, 0x8A00);
outw(0x8A00, 0x8E00);
while (1)
while(1)
/* do nothing */;
}

View file

@ -28,7 +28,7 @@ static void
real_cons_putc(int c)
{
int crtport = 0x3d4; // io port of CGA
unsigned short *crt = (unsigned short *) 0xB8000; // base of CGA memory
uint16_t *crt = (uint16_t *) 0xB8000; // base of CGA memory
int ind;
if(panicked){
@ -85,7 +85,7 @@ printint(int xx, int base, int sgn)
char buf[16];
char digits[] = "0123456789ABCDEF";
int i = 0, neg = 0;
unsigned int x;
uint x;
if(sgn && xx < 0){
neg = 1;
@ -111,7 +111,7 @@ void
cprintf(char *fmt, ...)
{
int i, state = 0, c;
unsigned int *ap = (unsigned int *)(void*)&fmt + 1;
uint *ap = (uint *)(void*)&fmt + 1;
if(use_console_lock)
acquire(&console_lock);

12
defs.h
View file

@ -32,10 +32,10 @@ void tvinit(void);
void idtinit(void);
// string.c
void * memset(void *dst, int c, unsigned n);
int memcmp(const void *v1, const void *v2, unsigned n);
void *memmove(void *dst, const void *src, unsigned n);
int strncmp(const char *p, const char *q, unsigned n);
void * memset(void *dst, int c, uint n);
int memcmp(const void *v1, const void *v2, uint n);
void *memmove(void *dst, const void *src, uint n);
int strncmp(const char *p, const char *q, uint n);
// syscall.c
void syscall(void);
@ -68,7 +68,7 @@ void acquire1(struct spinlock * lock, struct proc *);
void release1(struct spinlock * lock, struct proc *);
// main.c
void load_icode(struct proc *p, uint8_t *binary, unsigned size);
void load_icode(struct proc *p, uint8_t *binary, uint size);
// pipe.c
struct pipe;
@ -89,6 +89,6 @@ void fd_incref(struct fd *fd);
// ide.c
void ide_init(void);
void ide_intr(void);
void* ide_start_read(uint32_t secno, void *dst, unsigned nsecs);
void* ide_start_read(uint32_t secno, void *dst, uint nsecs);
int ide_finish_read(void *);

6
ide.c
View file

@ -19,7 +19,7 @@
struct ide_request {
uint32_t secno;
void *dst;
unsigned nsecs;
uint nsecs;
};
struct ide_request request[NREQUEST];
int head, tail;
@ -104,7 +104,7 @@ ide_start_request (void)
}
void *
ide_start_read(uint32_t secno, void *dst, unsigned nsecs)
ide_start_read(uint32_t secno, void *dst, uint nsecs)
{
struct ide_request *r;
@ -149,7 +149,7 @@ ide_finish_read(void *c)
}
int
ide_write(uint32_t secno, const void *src, unsigned nsecs)
ide_write(uint32_t secno, const void *src, uint nsecs)
{
int r;

View file

@ -34,11 +34,11 @@ void
kinit(void)
{
extern int end;
unsigned mem;
uint mem;
char *start;
start = (char *) &end;
start = (char *) (((unsigned)start + PAGE) & ~(PAGE-1));
start = (char *) (((uint)start + PAGE) & ~(PAGE-1));
mem = 256; // XXX
cprintf("mem = %d\n", mem * PAGE);
kfree(start, mem * PAGE);

6
main.c
View file

@ -81,8 +81,8 @@ main0(void)
p = copyproc(&proc[0]);
load_icode(p, _binary_usertests_start, (unsigned) _binary_usertests_size);
//load_icode(p, _binary_userfs_start, (unsigned) _binary_userfs_size);
load_icode(p, _binary_usertests_start, (uint) _binary_usertests_size);
//load_icode(p, _binary_userfs_start, (uint) _binary_userfs_size);
p->state = RUNNABLE;
cprintf("loaded userfs\n");
@ -107,7 +107,7 @@ mpmain(void)
}
void
load_icode(struct proc *p, uint8_t *binary, unsigned size)
load_icode(struct proc *p, uint8_t *binary, uint size)
{
int i;
struct Elf *elf;

52
mmu.h
View file

@ -61,19 +61,19 @@
// Segment Descriptors
struct Segdesc {
unsigned lim_15_0 : 16; // Low bits of segment limit
unsigned base_15_0 : 16; // Low bits of segment base address
unsigned base_23_16 : 8; // Middle bits of segment base address
unsigned type : 4; // Segment type (see STS_ constants)
unsigned s : 1; // 0 = system, 1 = application
unsigned dpl : 2; // Descriptor Privilege Level
unsigned p : 1; // Present
unsigned lim_19_16 : 4; // High bits of segment limit
unsigned avl : 1; // Unused (available for software use)
unsigned rsv1 : 1; // Reserved
unsigned db : 1; // 0 = 16-bit segment, 1 = 32-bit segment
unsigned g : 1; // Granularity: limit scaled by 4K when set
unsigned base_31_24 : 8; // High bits of segment base address
uint lim_15_0 : 16; // Low bits of segment limit
uint base_15_0 : 16; // Low bits of segment base address
uint base_23_16 : 8; // Middle bits of segment base address
uint type : 4; // Segment type (see STS_ constants)
uint s : 1; // 0 = system, 1 = application
uint dpl : 2; // Descriptor Privilege Level
uint p : 1; // Present
uint lim_19_16 : 4; // High bits of segment limit
uint avl : 1; // Unused (available for software use)
uint rsv1 : 1; // Reserved
uint db : 1; // 0 = 16-bit segment, 1 = 32-bit segment
uint g : 1; // Granularity: limit scaled by 4K when set
uint base_31_24 : 8; // High bits of segment base address
};
// Null segment
#define SEG_NULL (struct Segdesc){ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
@ -82,12 +82,12 @@ struct Segdesc {
// Normal segment
#define SEG(type, base, lim, dpl) (struct Segdesc) \
{ ((lim) >> 12) & 0xffff, (base) & 0xffff, ((base) >> 16) & 0xff, \
type, 1, dpl, 1, (unsigned) (lim) >> 28, 0, 0, 1, 1, \
(unsigned) (base) >> 24 }
type, 1, dpl, 1, (uint) (lim) >> 28, 0, 0, 1, 1, \
(uint) (base) >> 24 }
#define SEG16(type, base, lim, dpl) (struct Segdesc) \
{ (lim) & 0xffff, (base) & 0xffff, ((base) >> 16) & 0xff, \
type, 1, dpl, 1, (unsigned) (lim) >> 16, 0, 0, 1, 0, \
(unsigned) (base) >> 24 }
type, 1, dpl, 1, (uint) (lim) >> 16, 0, 0, 1, 0, \
(uint) (base) >> 24 }
#endif /* !__ASSEMBLER__ */
@ -165,15 +165,15 @@ struct Taskstate {
// Gate descriptors for interrupts and traps
struct Gatedesc {
unsigned off_15_0 : 16; // low 16 bits of offset in segment
unsigned ss : 16; // segment selector
unsigned args : 5; // # args, 0 for interrupt/trap gates
unsigned rsv1 : 3; // reserved(should be zero I guess)
unsigned type : 4; // type(STS_{TG,IG32,TG32})
unsigned s : 1; // must be 0 (system)
unsigned dpl : 2; // descriptor(meaning new) privilege level
unsigned p : 1; // Present
unsigned off_31_16 : 16; // high bits of offset in segment
uint off_15_0 : 16; // low 16 bits of offset in segment
uint ss : 16; // segment selector
uint args : 5; // # args, 0 for interrupt/trap gates
uint rsv1 : 3; // reserved(should be zero I guess)
uint type : 4; // type(STS_{TG,IG32,TG32})
uint s : 1; // must be 0 (system)
uint dpl : 2; // descriptor(meaning new) privilege level
uint p : 1; // Present
uint off_31_16 : 16; // high bits of offset in segment
};
// Set up a normal interrupt/trap gate descriptor.

4
mp.c
View file

@ -205,8 +205,8 @@ mp_startthem(void)
for(c = 0; c < ncpu; c++){
if (c == cpu()) continue;
cprintf ("starting processor %d\n", c);
*(unsigned *)(APBOOTCODE-4) = (unsigned) (cpus[c].mpstack) + MPSTACK; // tell it what to use for %esp
*(unsigned *)(APBOOTCODE-8) = (unsigned)mpmain; // tell it where to jump to
*(uint *)(APBOOTCODE-4) = (uint) (cpus[c].mpstack) + MPSTACK; // tell it what to use for %esp
*(uint *)(APBOOTCODE-8) = (uint)mpmain; // tell it where to jump to
lapic_startap(cpus[c].apicid, (uint32_t) APBOOTCODE);
}
}

12
proc.c
View file

@ -26,18 +26,18 @@ setupsegs(struct proc *p)
{
memset(&p->ts, 0, sizeof(struct Taskstate));
p->ts.ss0 = SEG_KDATA << 3;
p->ts.esp0 = (unsigned)(p->kstack + KSTACKSIZE);
p->ts.esp0 = (uint)(p->kstack + KSTACKSIZE);
// XXX it may be wrong to modify the current segment table!
p->gdt[0] = SEG_NULL;
p->gdt[SEG_KCODE] = SEG(STA_X|STA_R, 0, 0xffffffff, 0);
p->gdt[SEG_KDATA] = SEG(STA_W, 0, 0xffffffff, 0);
p->gdt[SEG_TSS] = SEG16(STS_T32A, (unsigned) &p->ts,
p->gdt[SEG_TSS] = SEG16(STS_T32A, (uint) &p->ts,
sizeof(p->ts), 0);
p->gdt[SEG_TSS].s = 0;
p->gdt[SEG_UCODE] = SEG(STA_X|STA_R, (unsigned)p->mem, p->sz, 3);
p->gdt[SEG_UDATA] = SEG(STA_W, (unsigned)p->mem, p->sz, 3);
p->gdt[SEG_UCODE] = SEG(STA_X|STA_R, (uint)p->mem, p->sz, 3);
p->gdt[SEG_UDATA] = SEG(STA_W, (uint)p->mem, p->sz, 3);
}
// Look in the process table for an UNUSED proc.
@ -108,8 +108,8 @@ copyproc(struct proc* p)
// Set up new jmpbuf to start executing at forkret (see below).
memset(&np->jmpbuf, 0, sizeof np->jmpbuf);
np->jmpbuf.eip = (unsigned)forkret;
np->jmpbuf.esp = (unsigned)np->tf;
np->jmpbuf.eip = (uint)forkret;
np->jmpbuf.esp = (uint)np->tf;
// Copy file descriptors
for(i = 0; i < NOFILE; i++){

6
proc.h
View file

@ -37,7 +37,7 @@ enum proc_state { UNUSED, EMBRYO, SLEEPING, RUNNABLE, RUNNING, ZOMBIE };
struct proc{
char *mem; // start of process's physical memory
unsigned sz; // total size of mem, including kernel stack
uint sz; // total size of mem, including kernel stack
char *kstack; // kernel stack, separate from mem so it doesn't move
enum proc_state state;
enum proc_state newstate; // desired state after swtch()
@ -50,8 +50,8 @@ struct proc{
struct Taskstate ts; // only to give cpu address of kernel stack
struct Segdesc gdt[NSEGS];
unsigned esp; // kernel stack pointer
unsigned ebp; // kernel frame pointer
uint esp; // kernel stack pointer
uint ebp; // kernel frame pointer
struct jmpbuf jmpbuf;

View file

@ -1,4 +1,4 @@
struct spinlock {
unsigned int locked;
unsigned locker_pc;
uint locked;
uint locker_pc;
};

View file

@ -2,7 +2,7 @@
#include "defs.h"
void *
memset(void *dst, int c, unsigned n)
memset(void *dst, int c, uint n)
{
char *d = (char *) dst;
@ -13,7 +13,7 @@ memset(void *dst, int c, unsigned n)
}
int
memcmp(const void *v1, const void *v2, unsigned n)
memcmp(const void *v1, const void *v2, uint n)
{
const uint8_t *s1 = (const uint8_t *) v1;
const uint8_t *s2 = (const uint8_t *) v2;
@ -28,7 +28,7 @@ memcmp(const void *v1, const void *v2, unsigned n)
}
void *
memmove(void *dst, const void *src, unsigned n)
memmove(void *dst, const void *src, uint n)
{
const char *s;
char *d;
@ -48,14 +48,14 @@ memmove(void *dst, const void *src, unsigned n)
}
int
strncmp(const char *p, const char *q, unsigned n)
strncmp(const char *p, const char *q, uint n)
{
while (n > 0 && *p && *p == *q)
n--, p++, q++;
if (n == 0)
return 0;
else
return (int) ((unsigned char) *p - (unsigned char) *q);
return (int) ((uint8_t) *p - (uint8_t) *q);
}
// Memcpy is deprecated and should NOT be called.
@ -64,7 +64,7 @@ strncmp(const char *p, const char *q, unsigned n)
// Memcpy is here only because gcc compiles some
// structure assignments into calls to memcpy.
void *
memcpy(void *dst, void *src, unsigned n)
memcpy(void *dst, void *src, uint n)
{
char *d = (char *) dst;
char *s = (char *) src;

View file

@ -24,7 +24,7 @@
* returns 0 if addr was OK, -1 if illegal.
*/
int
fetchint(struct proc *p, unsigned addr, int *ip)
fetchint(struct proc *p, uint addr, int *ip)
{
*ip = 0;
@ -37,7 +37,7 @@ fetchint(struct proc *p, unsigned addr, int *ip)
// Fetch byte from a user-supplied pointer.
// Returns 0 on success, -1 if pointer is illegal.
int
fetchbyte(struct proc *p, unsigned addr, char* c)
fetchbyte(struct proc *p, uint addr, char* c)
{
if(addr >= p->sz)
return -1;
@ -49,14 +49,14 @@ fetchbyte(struct proc *p, unsigned addr, char* c)
int
fetcharg(int argno, void *ip)
{
unsigned esp;
uint esp;
esp = (unsigned) curproc[cpu()]->tf->esp;
esp = (uint) curproc[cpu()]->tf->esp;
return fetchint(curproc[cpu()], esp + 4 + 4*argno, ip);
}
int
putint(struct proc *p, unsigned addr, int ip)
putint(struct proc *p, uint addr, int ip)
{
if(addr > p->sz - 4)
return -1;
@ -70,7 +70,7 @@ sys_pipe(void)
struct fd *rfd = 0, *wfd = 0;
int f1 = -1, f2 = -1;
struct proc *p = curproc[cpu()];
unsigned fdp;
uint fdp;
if(pipe_alloc(&rfd, &wfd) < 0)
goto oops;
@ -105,7 +105,7 @@ int
sys_write(void)
{
int fd, n, ret;
unsigned addr;
uint addr;
struct proc *p = curproc[cpu()];
if(fetcharg(0, &fd) < 0 || fetcharg(1, &addr) < 0 || fetcharg(2, &n) < 0)
@ -124,7 +124,7 @@ int
sys_read(void)
{
int fd, n, ret;
unsigned addr;
uint addr;
struct proc *p = curproc[cpu()];
if(fetcharg(0, &fd) < 0 || fetcharg(1, &addr) < 0 || fetcharg(2, &n) < 0)
@ -209,7 +209,7 @@ sys_cons_puts(void)
{
char buf[256];
int i;
unsigned addr;
uint addr;
struct proc *cp = curproc[cpu()];
if(fetcharg(0, &addr) < 0)
@ -251,7 +251,7 @@ int
sys_panic(void)
{
struct proc *p = curproc[cpu()];
unsigned int addr;
uint addr;
if(fetcharg(0, &addr) < 0)
return -1;

6
trap.c
View file

@ -8,7 +8,7 @@
#include "syscall.h"
struct Gatedesc idt[256];
extern unsigned vectors[]; /* vectors.S, array of 256 entry point addresses */
extern uint vectors[]; /* vectors.S, array of 256 entry point addresses */
extern void trapenter(void);
extern void trapenter1(void);
@ -56,8 +56,8 @@ trap(struct Trapframe *tf)
}
if((read_eflags() & FL_IF) == 0)
panic("syscall returning but FL_IF clear");
if(read_esp() < (unsigned)cp->kstack ||
read_esp() >= (unsigned)cp->kstack + KSTACKSIZE)
if(read_esp() < (uint)cp->kstack ||
read_esp() >= (uint)cp->kstack + KSTACKSIZE)
panic("trap ret esp wrong");
if(cp->killed)
proc_exit();

14
types.h
View file

@ -1,7 +1,9 @@
typedef unsigned int uint;
typedef unsigned long long uint64_t;
typedef unsigned int uint32_t;
typedef unsigned short uint16_t;
typedef unsigned char uint8_t;
typedef uint32_t uintptr_t;
typedef uint32_t physaddr_t;
typedef unsigned int uint;
typedef unsigned int uint32_t;
typedef unsigned short uint16_t;
typedef unsigned char uint8_t;
typedef uint32_t uintptr_t;
typedef uint32_t physaddr_t;