root/defs.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 struct buf;
   2 struct context;
   3 struct file;
   4 struct inode;
   5 struct pipe;
   6 struct proc;
   7 struct rtcdate;
   8 struct spinlock;
   9 struct stat;
  10 struct superblock;
  11 
  12 // bio.c
  13 void            binit(void);
  14 struct buf*     bread(uint, uint);
  15 void            brelse(struct buf*);
  16 void            bwrite(struct buf*);
  17 
  18 // console.c
  19 void            consoleinit(void);
  20 void            cprintf(char*, ...);
  21 void            consoleintr(int(*)(void));
  22 void            panic(char*) __attribute__((noreturn));
  23 
  24 // exec.c
  25 int             exec(char*, char**);
  26 
  27 // file.c
  28 struct file*    filealloc(void);
  29 void            fileclose(struct file*);
  30 struct file*    filedup(struct file*);
  31 void            fileinit(void);
  32 int             fileread(struct file*, char*, int n);
  33 int             filestat(struct file*, struct stat*);
  34 int             filewrite(struct file*, char*, int n);
  35 
  36 // fs.c
  37 void            readsb(int dev, struct superblock *sb);
  38 int             dirlink(struct inode*, char*, uint);
  39 struct inode*   dirlookup(struct inode*, char*, uint*);
  40 struct inode*   ialloc(uint, short);
  41 struct inode*   idup(struct inode*);
  42 void            iinit(int dev);
  43 void            ilock(struct inode*);
  44 void            iput(struct inode*);
  45 void            iunlock(struct inode*);
  46 void            iunlockput(struct inode*);
  47 void            iupdate(struct inode*);
  48 int             namecmp(const char*, const char*);
  49 struct inode*   namei(char*);
  50 struct inode*   nameiparent(char*, char*);
  51 int             readi(struct inode*, char*, uint, uint);
  52 void            stati(struct inode*, struct stat*);
  53 int             writei(struct inode*, char*, uint, uint);
  54 
  55 // ide.c
  56 void            ideinit(void);
  57 void            ideintr(void);
  58 void            iderw(struct buf*);
  59 
  60 // ioapic.c
  61 void            ioapicenable(int irq, int cpu);
  62 extern uchar    ioapicid;
  63 void            ioapicinit(void);
  64 
  65 // kalloc.c
  66 char*           kalloc(void);
  67 void            kfree(char*);
  68 void            kinit1(void*, void*);
  69 void            kinit2(void*, void*);
  70 
  71 // kbd.c
  72 void            kbdintr(void);
  73 
  74 // lapic.c
  75 void            cmostime(struct rtcdate *r);
  76 int             cpunum(void);
  77 extern volatile uint*    lapic;
  78 void            lapiceoi(void);
  79 void            lapicinit(void);
  80 void            lapicstartap(uchar, uint);
  81 void            microdelay(int);
  82 
  83 // log.c
  84 void            initlog(int dev);
  85 void            log_write(struct buf*);
  86 void            begin_op();
  87 void            end_op();
  88 
  89 // mp.c
  90 extern int      ismp;
  91 int             mpbcpu(void);
  92 void            mpinit(void);
  93 void            mpstartthem(void);
  94 
  95 // picirq.c
  96 void            picenable(int);
  97 void            picinit(void);
  98 
  99 // pipe.c
 100 int             pipealloc(struct file**, struct file**);
 101 void            pipeclose(struct pipe*, int);
 102 int             piperead(struct pipe*, char*, int);
 103 int             pipewrite(struct pipe*, char*, int);
 104 
 105 //PAGEBREAK: 16
 106 // proc.c
 107 struct proc*    copyproc(struct proc*);
 108 void            exit(void);
 109 int             fork(void);
 110 int             growproc(int);
 111 int             kill(int);
 112 void            pinit(void);
 113 void            procdump(void);
 114 void            scheduler(void) __attribute__((noreturn));
 115 void            sched(void);
 116 void            sleep(void*, struct spinlock*);
 117 void            userinit(void);
 118 int             wait(void);
 119 void            wakeup(void*);
 120 void            yield(void);
 121 
 122 // swtch.S
 123 void            swtch(struct context**, struct context*);
 124 
 125 // spinlock.c
 126 void            acquire(struct spinlock*);
 127 void            getcallerpcs(void*, uint*);
 128 int             holding(struct spinlock*);
 129 void            initlock(struct spinlock*, char*);
 130 void            release(struct spinlock*);
 131 void            pushcli(void);
 132 void            popcli(void);
 133 
 134 // string.c
 135 int             memcmp(const void*, const void*, uint);
 136 void*           memmove(void*, const void*, uint);
 137 void*           memset(void*, int, uint);
 138 char*           safestrcpy(char*, const char*, int);
 139 int             strlen(const char*);
 140 int             strncmp(const char*, const char*, uint);
 141 char*           strncpy(char*, const char*, int);
 142 
 143 // syscall.c
 144 int             argint(int, int*);
 145 int             argptr(int, char**, int);
 146 int             argstr(int, char**);
 147 int             fetchint(uint, int*);
 148 int             fetchstr(uint, char**);
 149 void            syscall(void);
 150 
 151 // timer.c
 152 void            timerinit(void);
 153 
 154 // trap.c
 155 void            idtinit(void);
 156 extern uint     ticks;
 157 void            tvinit(void);
 158 extern struct spinlock tickslock;
 159 
 160 // uart.c
 161 void            uartinit(void);
 162 void            uartintr(void);
 163 void            uartputc(int);
 164 
 165 // vm.c
 166 void            seginit(void);
 167 void            kvmalloc(void);
 168 void            vmenable(void);
 169 pde_t*          setupkvm(void);
 170 char*           uva2ka(pde_t*, char*);
 171 int             allocuvm(pde_t*, uint, uint);
 172 int             deallocuvm(pde_t*, uint, uint);
 173 void            freevm(pde_t*);
 174 void            inituvm(pde_t*, char*, uint);
 175 int             loaduvm(pde_t*, char*, struct inode*, uint, uint);
 176 pde_t*          copyuvm(pde_t*, uint);
 177 void            switchuvm(struct proc*);
 178 void            switchkvm(void);
 179 int             copyout(pde_t*, uint, void*, uint);
 180 void            clearpteu(pde_t *pgdir, char *uva);
 181 
 182 // number of elements in fixed-size array
 183 #define NELEM(x) (sizeof(x)/sizeof((x)[0]))

/* [<][>][^][v][top][bottom][index][help] */