Skip to content
Snippets Groups Projects
defs.h 4.3 KiB
Newer Older
rsc's avatar
rsc committed
struct buf;
rsc's avatar
rsc committed
struct context;
rsc's avatar
rsc committed
struct file;
struct inode;
struct pipe;
rtm's avatar
rtm committed
struct proc;
rtm's avatar
rtm committed
struct spinlock;
rsc's avatar
rsc committed
struct stat;
rsc's avatar
rsc committed
// bio.c
void            binit(void);
struct buf*     bread(uint, uint);
void            brelse(struct buf*);
void            bwrite(struct buf*);
rsc's avatar
rsc committed
// console.c
void            consoleinit(void);
rsc's avatar
rsc committed
void            cprintf(char*, ...);
void            consoleintr(int(*)(void));
rsc's avatar
rsc committed
void            panic(char*) __attribute__((noreturn));
rtm's avatar
rtm committed

rsc's avatar
rsc committed
// exec.c
rsc's avatar
rsc committed
int             exec(char*, char**);
rsc's avatar
rsc committed
// file.c
struct file*    filealloc(void);
void            fileclose(struct file*);
struct file*    filedup(struct file*);
rsc's avatar
rsc committed
void            fileinit(void);
int             fileread(struct file*, char*, int n);
int             filestat(struct file*, struct stat*);
int             filewrite(struct file*, char*, int n);
rsc's avatar
rsc committed
// fs.c
int             dirlink(struct inode*, char*, uint);
rsc's avatar
 
rsc committed
struct inode*   dirlookup(struct inode*, char*, uint*);
struct inode*   ialloc(uint, short);
struct inode*   idup(struct inode*);
rsc's avatar
rsc committed
void            iinit(void);
rsc's avatar
 
rsc committed
void            ilock(struct inode*);
void            iput(struct inode*);
void            iunlock(struct inode*);
void            iunlockput(struct inode*);
rsc's avatar
rsc committed
void            iupdate(struct inode*);
int             namecmp(const char*, const char*);
rsc's avatar
 
rsc committed
struct inode*   namei(char*);
struct inode*   nameiparent(char*, char*);
rsc's avatar
rsc committed
int             readi(struct inode*, char*, uint, uint);
void            stati(struct inode*, struct stat*);
int             writei(struct inode*, char*, uint, uint);
rsc's avatar
rsc committed
// ide.c
void            ideinit(void);
void            ideintr(void);
void            iderw(struct buf *);
rsc's avatar
rsc committed
// ioapic.c
void            ioapicenable(int irq, int cpu);
extern uchar    ioapicid;
void            ioapicinit(void);
rsc's avatar
rsc committed
// kalloc.c
char*           kalloc(int);
void            kfree(char*, int);
void            kinit(void);

void            kbdintr(void);
rsc's avatar
rsc committed
// lapic.c
int             cpu(void);
rsc's avatar
 
rsc committed
extern volatile uint*    lapic;
void            lapiceoi(void);
void            lapicinit(int);
void            lapicstartap(uchar, uint);
rsc's avatar
 
rsc committed
void            microdelay(int);
rsc's avatar
rsc committed

// mp.c
extern int      ismp;
int             mpbcpu(void);
void            mpinit(void);
void            mpstartthem(void);
rsc's avatar
rsc committed
// picirq.c
void            picenable(int);
void            picinit(void);
rtm's avatar
rtm committed

// pipe.c
rsc's avatar
rsc committed
int             pipealloc(struct file**, struct file**);
void            pipeclose(struct pipe*, int);
int             piperead(struct pipe*, char*, int);
int             pipewrite(struct pipe*, char*, int);
rtm's avatar
rtm committed

rsc's avatar
rsc committed
// proc.c
struct proc*    copyproc(struct proc*);
rsc's avatar
rsc committed
void            exit(void);
rsc's avatar
rsc committed
int             fork(void);
rsc's avatar
rsc committed
int             growproc(int);
rsc's avatar
rsc committed
int             kill(int);
rsc's avatar
rsc committed
void            pinit(void);
void            procdump(void);
rsc's avatar
rsc committed
void            scheduler(void) __attribute__((noreturn));
rsc's avatar
 
rsc committed
void            ksegment(void);
void            usegment(void);
rsc's avatar
rsc committed
void            sleep(void*, struct spinlock*);
void            userinit(void);
rsc's avatar
rsc committed
int             wait(void);
rsc's avatar
rsc committed
void            wakeup(void*);
void            yield(void);
kaashoek's avatar
kaashoek committed

rsc's avatar
rsc committed
// swtch.S
kolya's avatar
kolya committed
void            swtch(struct context**, struct context**);
rsc's avatar
 
rsc committed

rsc's avatar
rsc committed
// spinlock.c
void            acquire(struct spinlock*);
void            getcallerpcs(void*, uint*);
int             holding(struct spinlock*);
void            initlock(struct spinlock*, char*);
void            release(struct spinlock*);
void            pushcli();
void            popcli();
rtm's avatar
rtm committed

rsc's avatar
rsc committed
// string.c
int             memcmp(const void*, const void*, uint);
void*           memmove(void*, const void*, uint);
void*           memset(void*, int, uint);
char*           safestrcpy(char*, const char*, int);
int             strlen(const char*);
int             strncmp(const char*, const char*, uint);
rsc's avatar
rsc committed
char*           strncpy(char*, const char*, int);
rsc's avatar
 
rsc committed

rsc's avatar
rsc committed
// syscall.c
int             argint(int, int*);
int             argptr(int, char**, int);
int             argstr(int, char**);
int             fetchint(struct proc*, uint, int*);
int             fetchstr(struct proc*, uint, char**);
void            syscall(void);

rsc's avatar
rsc committed
// timer.c
void            timerinit(void);
rsc's avatar
rsc committed

rsc's avatar
rsc committed
// trap.c
void            idtinit(void);
extern int      ticks;
rsc's avatar
rsc committed
void            tvinit(void);
extern struct spinlock tickslock;
rsc's avatar
 
rsc committed
// uart.c
rsc's avatar
rsc committed
void            uartinit(void);
void            uartintr(void);
void            uartputc(int);
rsc's avatar
 
rsc committed


rsc's avatar
rsc committed
// number of elements in fixed-size array
#define NELEM(x) (sizeof(x)/sizeof((x)[0]))
rsc's avatar
 
rsc committed