#include "../port/portfns.h"
void aamloop(int);
void cgaputc(int);
void cgaputs(char*, int);
void cmd_e820(int, char**);
void (*coherence)(void);
void cpuid(char*, ulong*, ulong*);
void etherinit(void);
void etherstart(void);
int floppyinit(void);
void floppyproc(void);
Off floppyread(int, void*, long, Devsize);
Off floppywrite(int, void*, long, Devsize);
void fpinit(void);
vlong getatapartoff(int, char*);
char* getconf(char*);
ulong getcr0(void);
ulong getcr2(void);
ulong getcr3(void);
ulong getcr4(void);
int getfields(char*, char**, int, int, char*);
ulong getstatus(void);
int atainit(void);
Off ataread(int, void*, long, Devsize);
Off atawrite(int, void*, long, Devsize);
void i8042a20(void);
void i8042reset(void);
void idle(void);
int inb(int);
void insb(int, void*, int);
ushort ins(int);
void inss(int, void*, int);
ulong inl(int);
void insl(int, void*, int);
void kbdinit(void);
int kbdintr0(void);
int kbdgetc(void);
ulong* mapaddr(ulong);
void mb386(void);
void mb586(void);
void mfence(void);
void microdelay(int);
void mmuinit(void);
uchar nvramread(int);
void outb(int, int);
void outsb(int, void*, int);
void outs(int, ushort);
void outss(int, void*, int);
void outl(int, ulong);
void outsl(int, void*, int);
void printcpufreq(void);
void putgdt(Segdesc*, int);
void putidt(Segdesc*, int);
void putcr3(ulong);
void putcr4(ulong);
void puttr(ulong);
void rdmsr(int, vlong*);
void wrmsr(int, vlong);
void (*cycles)(uvlong*);
void scsiinit(void);
Off scsiread(int, void*, long);
Devsize scsiseek(int, Devsize);
Off scsiwrite(int, void*, long);
int setatapart(int, char*);
int setscsipart(int, char*);
void setvec(int, void (*)(Ureg*, void*), void*);
int tas(Lock*);
void trapinit(void);
void uartspecial(int, void (*)(int), int (*)(void), int);
int uartgetc(void);
void uartputc(int);
void uartputs(char*);
void* vmap(ulong, int);
#define PADDR(a) ((uintptr)(a)-KZERO)
#define PCIWADDR(a) PADDR(a)
/* pata */
void ideinit(Device*);
Devsize idesize(Device*);
int ideread(Device*, Devsize, void*);
int idewrite(Device*, Devsize, void*);
int idesecsize(Device*);
/* sata */
void mvinit(Device*);
Devsize mvsize(Device*);
int mvread(Device*, Devsize, void*);
int mvwrite(Device*, Devsize, void*);
/* aoe */
void aoeinit(Device*);
Devsize aoesize(Device*);
int aoeread(Device*, Devsize, void*);
int aoewrite(Device*, Devsize, void*);
/* iasata */
void iainit(Device*);
Devsize iasize(Device*);
int iaread(Device*, Devsize, void*);
int iawrite(Device*, Devsize, void*);
|