123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231 |
- struct buf;
- struct context;
- struct file;
- struct inode;
- struct pipe;
- struct proc;
- struct spinlock;
- struct stat;
- struct superblock;
- void OkLoop(void);
- void NotOkLoop(void);
- // mmu.c
- void mmuinit1(void);
- void barriers(void);
- void dsb_barrier(void);
- void flush_tlb(void);
- void flush_dcache_all(void);
- void flush_dcache(uint va1, uint va2);
- void flush_idcache(void);
- void set_pgtbase(uint base);
- // bio.c
- void binit(void);
- struct buf* bread(uint, uint);
- void brelse(struct buf*);
- void bwrite(struct buf*);
- // console.c
- void consoleinit(void);
- void cprintf(char*, ...);
- void consoleintr(int(*)(void));
- void panic(char*) __attribute__((noreturn));
- void drawcharacter(u8, uint, uint);
- void gpuputc(uint);
- // fs.c
- void readsb(int dev, struct superblock *sb);
- int dirlink(struct inode*, char*, uint);
- struct inode* dirlookup(struct inode*, char*, uint*);
- struct inode* ialloc(uint, short);
- struct inode* idup(struct inode*);
- void iinit(void);
- void ilock(struct inode*);
- void iput(struct inode*);
- void iunlock(struct inode*);
- void iunlockput(struct inode*);
- void iupdate(struct inode*);
- int namecmp(const char*, const char*);
- struct inode* namei(char*);
- struct inode* nameiparent(char*, char*);
- int readi(struct inode*, char*, uint, uint);
- void stati(struct inode*, struct stat*);
- int writei(struct inode*, char*, uint, uint);
- // ide.c
- void ideinit(void);
- void ideintr(void);
- void iderw(struct buf*);
- // exec.c
- int exec(char*, char**);
- // file.c
- struct file* filealloc(void);
- void fileclose(struct file*);
- struct file* filedup(struct file*);
- void fileinit(void);
- int fileread(struct file*, char*, int n);
- int filestat(struct file*, struct stat*);
- int filewrite(struct file*, char*, int n);
- // fs.c
- void readsb(int dev, struct superblock *sb);
- int dirlink(struct inode*, char*, uint);
- struct inode* dirlookup(struct inode*, char*, uint*);
- struct inode* ialloc(uint, short);
- struct inode* idup(struct inode*);
- void iinit(void);
- void ilock(struct inode*);
- void iput(struct inode*);
- void iunlock(struct inode*);
- void iunlockput(struct inode*);
- void iupdate(struct inode*);
- int namecmp(const char*, const char*);
- struct inode* namei(char*);
- struct inode* nameiparent(char*, char*);
- int readi(struct inode*, char*, uint, uint);
- void stati(struct inode*, struct stat*);
- int writei(struct inode*, char*, uint, uint);
- // kalloc.c
- char* kalloc(void);
- void kfree(char*);
- void kinit1(void*, void*);
- void kinit2(void*, void*);
- // log.c
- void initlog(void);
- void log_write(struct buf*);
- void begin_trans();
- void commit_trans();
- // pipe.c
- int pipealloc(struct file**, struct file**);
- void pipeclose(struct pipe*, int);
- int piperead(struct pipe*, char*, int);
- int pipewrite(struct pipe*, char*, int);
- //PAGEBREAK: 16
- // proc.c
- struct proc* copyproc(struct proc*);
- void exit(void);
- int fork(void);
- int growproc(int);
- int kill(int);
- void pinit(void);
- void procdump(void);
- void scheduler(void) __attribute__((noreturn));
- void sched(void);
- void sleep(void*, struct spinlock*);
- void userinit(void);
- int wait(void);
- void wakeup(void*);
- void yield(void);
- // swtch.S
- void swtch(struct context**, struct context*);
- // syscall.c
- int argint(int, int*);
- int argptr(int, char**, int);
- int argstr(int, char**);
- int fetchint(uint, int*);
- int fetchstr(uint, char**);
- void syscall(void);
- void kvmalloc(void);
- int UsbInitialise(void);
- void KeyboardUpdate(void);
- char KeyboardGetChar(void);
- uint KeyboardCount(void);
- uint KeyboardGetAddress(uint);
- struct KeyboardLeds KeyboardGetLedSupport(uint);
- // 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);
- void popcli(void);
- // 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);
- char* strncpy(char*, const char*, int);
- uint div(uint n, uint d);
- // syscall.c
- int argint(int, int*);
- int argptr(int, char**, int);
- int argstr(int, char**);
- int fetchint(uint, int*);
- int fetchstr(uint, char**);
- void syscall(void);
- // timer.c
- void timer3init(void);
- void timer3intr(void);
- unsigned long long getsystemtime(void);
- void delay(uint);
- // trap.c
- void tvinit(void);
- void sti(void);
- void cli(void);
- void disable_intrs(void);
- void enable_intrs(void);
- extern uint ticks;
- extern struct spinlock tickslock;
- uint readcpsr(void);
- // uart.c
- void uartinit(void);
- void miniuartintr(void);
- void uartputc(uint);
- void setgpiofunc(uint, uint);
- void setgpioval(uint, uint);
- // vm.c
- void seginit(void);
- void kvmalloc(void);
- void vmenable(void);
- pde_t* setupkvm(void);
- char* uva2ka(pde_t*, char*);
- int allocuvm(pde_t*, uint, uint);
- int deallocuvm(pde_t*, uint, uint);
- void freevm(pde_t*);
- void inituvm(pde_t*, char*, uint);
- int loaduvm(pde_t*, char*, struct inode*, uint, uint);
- pde_t* copyuvm(pde_t*, uint);
- void switchuvm(struct proc*);
- void switchkvm(void);
- int copyout(pde_t*, uint, void*, uint);
- void clearpteu(pde_t *pgdir, char *uva);
- // mailbox.c
- uint readmailbox(u8);
- void writemailbox(uint *, u8);
- void create_request(volatile uint *mbuf, uint tag, uint buflen, uint len, uint *data);
- void mailboxinit(void);
- // number of elements in fixed-size array
- #define NELEM(x) (sizeof(x)/sizeof((x)[0]))
|