1 #include "../port/portfns.h" 2 3 ulong aifinit(uchar *aifarr); 4 void aamloop(int); 5 int archaudiopower(int); 6 void archaudiomute(int); 7 void archaudioamp(int); 8 int archaudiospeed(int, int); 9 void archcodecreset(void); 10 void archconfinit(void); 11 void archconsole(void); 12 int archflash12v(int); 13 int archhooksw(int); 14 long archkprofmicrosecondspertick(void); 15 void archkprofenable(int); 16 void archlcdenable(int); 17 void archpowerdown(void); 18 void archpowerup(void); 19 void archreboot(void); 20 void archreset(void); 21 vlong archrdtsc(void); 22 ulong archrdtsc32(void); 23 void archuartpower(int, int); 24 void blankscreen(int); 25 ulong call_apcs(ulong addr, int nargs, ...); 26 ulong call_apcs0(ulong addr); 27 ulong call_apcs1(ulong addr, ulong a1); 28 ulong call_apcs2(ulong addr, ulong a1, ulong a2); 29 ulong call_apcs3(ulong addr, ulong a1, ulong a2, ulong a3); 30 void cisread(int slotno, void (*f)(int, uchar *)); 31 void clockcheck(void); 32 void clockinit(void); 33 void clockpoll(void); 34 #define coherence() /* nothing to do for cache coherence for uniprocessor */ 35 void cursorhide(void); 36 void cursorunhide(void); 37 void dcflush(void*, ulong); 38 void dcflushall(void); 39 void dcinval(void); 40 int dmaidle(Dma*); 41 Dma* dmasetup(int device, int direction, int bigend, void(*)(void*,ulong), void*); 42 int dmastart(Dma*, void*, int); 43 int dmacontinue(Dma*, void*, int); 44 void dmastop(Dma*); 45 int dmaerror(Dma*); 46 void dmafree(Dma*); 47 void dmareset(void); 48 void dmawait(Dma*); 49 void dumplongs(char *, ulong *, int); 50 void dumpregs(Ureg* ureg); 51 void dumpstack(void); 52 int fpiarm(Ureg*); 53 void fpinit(void); 54 ulong getcallerpc(void*); 55 ulong getcpsr(void); 56 ulong getcpuid(void); 57 ulong getspsr(void); 58 void gotopc(ulong); 59 60 void icflushall(void); 61 void _idlemode(void); 62 void (*idle)(void); 63 void idlehands(void); 64 int inb(ulong); 65 int ins(ulong); 66 ulong inl(ulong); 67 void outb(ulong, int); 68 void outs(ulong, int); 69 void outl(ulong, ulong); 70 void inss(ulong, void*, int); 71 void outss(ulong, void*, int); 72 void insb(ulong, void*, int); 73 void outsb(ulong, void*, int); 74 void intrdisable(int, void (*)(Ureg*, void*), void*, int, char*); 75 void intrenable(int, void (*)(Ureg*, void*), void*, int, char*); 76 void iofree(int); 77 #define iofree(x) 78 void ioinit(void); 79 int iounused(int, int); 80 int ioalloc(int, int, int, char*); 81 #define ioalloc(a,b,c,d) 0 82 int iprint(char*, ...); 83 void installprof(void (*)(Ureg *, int)); 84 int isvalid_va(void*); 85 void kbdinit(void); 86 void L3init(void); 87 int L3read(int, void*, int); 88 int L3write(int, void*, int); 89 void lcd_setbacklight(int); 90 void lcd_sethz(int); 91 void lights(ulong); 92 void links(void); 93 ulong mcpgettfreq(void); 94 void mcpinit(void); 95 void mcpsettfreq(ulong tfreq); 96 void mcpspeaker(int, int); 97 void mcptelecomsetup(ulong hz, int adm, int xint, int rint); 98 ushort mcpadcread(int ts); 99 void mcptouchsetup(int ts); 100 void mcptouchintrenable(void); 101 void mcptouchintrdisable(void); 102 void mcpgpiowrite(ushort mask, ushort data); 103 void mcpgpiosetdir(ushort mask, ushort dir); 104 ushort mcpgpioread(void); 105 void* minicached(void*); 106 void minidcflush(void); 107 void mmuenable(ulong); 108 ulong mmugetctl(void); 109 ulong mmugetdac(void); 110 ulong mmugetfar(void); 111 ulong mmugetfsr(void); 112 void mmuinit(void); 113 void* mmuphysmap(ulong, ulong); 114 void mmuputctl(ulong); 115 void mmuputdac(ulong); 116 void mmuputfsr(ulong); 117 void mmuputttb(ulong); 118 void mmureset(void); 119 void mouseinit(void); 120 void nowriteSeg(void *, void *); 121 void* pa2va(ulong); 122 void pcmcisread(PCMslot*); 123 int pcmcistuple(int, int, int, void*, int); 124 PCMmap* pcmmap(int, ulong, int, int); 125 void pcmunmap(int, PCMmap*); 126 int pcmpin(int slot, int type); 127 void pcmpower(int slotno, int on); 128 int pcmpowered(int); 129 void pcmreset(int); 130 void pcmsetvcc(int, int); 131 void pcmsetvpp(int, int); 132 int pcmspecial(char *idstr, ISAConf *isa); 133 void pcmspecialclose(int slotno); 134 void pcmintrenable(int, void (*)(Ureg*, void*), void*); 135 void powerenable(void (*)(int)); 136 void powerdisable(void (*)(int)); 137 void powerdown(void); 138 void powerinit(void); 139 void powersuspend(void); 140 #define procsave(p) 141 #define procrestore(p) 142 long rtctime(void); 143 void screeninit(void); 144 void (*screenputs)(char*, int); 145 int segflush(void*, ulong); 146 void setpanic(void); 147 void setr13(int, void*); 148 int splfhi(void); 149 int splflo(void); 150 void _suspendcode(void); 151 void tlbinvalidate(void); 152 void tlbinvalidateaddr(void*); 153 void trapinit(void); 154 void trapstacks(void); 155 void trapspecial(int (*)(Ureg *, uint)); 156 int uartprint(char*, ...); 157 void uartspecial(int, int, char, Queue**, Queue**, int (*)(Queue*, int)); 158 ulong va2pa(void*); 159 void vectors(void); 160 void vtable(void); 161 #define waserror() (up->nerrlab++, setlabel(&up->errlab[up->nerrlab-1])) 162 int wasbusy(int); 163 164 #define KADDR(p) ((void *) p) 165 #define PADDR(v) va2pa((void*)(v)) 166 167 // #define timer_start() (*OSCR) 168 // #define timer_ticks(t) (*OSCR - (ulong)(t)) 169 ulong timer_start(void); 170 ulong timer_ticks(ulong); 171 int timer_devwait(ulong *adr, ulong mask, ulong val, int ost); 172 void timer_setwatchdog(int ost); 173 void timer_delay(int ost); 174 ulong ms2tmr(int ms); 175 int tmr2ms(ulong t); 176 void delay(int ms); 177 ulong us2tmr(int us); 178 int tmr2us(ulong t); 179 void microdelay(int us); 180