fns.h 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. #include "../port/portfns.h"
  2. void aamloop(int);
  3. void acpiscan(void (*func)(uchar *));
  4. Dirtab* addarchfile(char*, int, long(*)(Chan*,void*,long,vlong), long(*)(Chan*,void*,long,vlong));
  5. void archinit(void);
  6. void archrevert(void);
  7. int bios32call(BIOS32ci*, u16int[3]);
  8. int bios32ci(BIOS32si*, BIOS32ci*);
  9. void bios32close(BIOS32si*);
  10. BIOS32si* bios32open(char*);
  11. void bootargs(void*);
  12. ulong cankaddr(ulong);
  13. void cgapost(int);
  14. void clockintr(Ureg*, void*);
  15. int (*cmpswap)(long*, long, long);
  16. int cmpswap486(long*, long, long);
  17. void (*coherence)(void);
  18. void cpuid(int, ulong regs[]);
  19. int cpuidentify(void);
  20. void cpuidprint(void);
  21. void (*cycles)(uvlong*);
  22. void delay(int);
  23. int dmacount(int);
  24. int dmadone(int);
  25. void dmaend(int);
  26. int dmainit(int, int);
  27. long dmasetup(int, void*, long, int);
  28. #define evenaddr(x) /* x86 doesn't care */
  29. void fpclear(void);
  30. void fpenv(FPsave*);
  31. void fpinit(void);
  32. void fpoff(void);
  33. void (*fprestore)(FPsave*);
  34. void (*fpsave)(FPsave*);
  35. void fpsserestore(FPsave*);
  36. void fpsserestore0(FPsave*);
  37. void fpssesave(FPsave*);
  38. void fpssesave0(FPsave*);
  39. ulong fpstatus(void);
  40. void fpx87restore(FPsave*);
  41. void fpx87save(FPsave*);
  42. ulong getcr0(void);
  43. ulong getcr2(void);
  44. ulong getcr3(void);
  45. ulong getcr4(void);
  46. char* getconf(char*);
  47. void guesscpuhz(int);
  48. void halt(void);
  49. int i8042auxcmd(int);
  50. int i8042auxcmds(uchar*, int);
  51. void i8042auxenable(void (*)(int, int));
  52. void i8042reset(void);
  53. void i8250console(void);
  54. void i8250config(char *);
  55. void* i8250alloc(int, int, int);
  56. void i8250mouse(char*, int (*)(Queue*, int), int);
  57. void i8250setmouseputc(char*, int (*)(Queue*, int));
  58. void i8253enable(void);
  59. void i8253init(void);
  60. void i8253link(void);
  61. uvlong i8253read(uvlong*);
  62. void i8253timerset(uvlong);
  63. int i8259disable(int);
  64. int i8259enable(Vctl*);
  65. void i8259init(void);
  66. int i8259isr(int);
  67. void i8259on(void);
  68. void i8259off(void);
  69. int i8259vecno(int);
  70. void idle(void);
  71. void idlehands(void);
  72. int inb(int);
  73. void insb(int, void*, int);
  74. ushort ins(int);
  75. void inss(int, void*, int);
  76. ulong inl(int);
  77. void insl(int, void*, int);
  78. int intrdisable(int, void (*)(Ureg *, void *), void*, int, char*);
  79. void intrenable(int, void (*)(Ureg*, void*), void*, int, char*);
  80. void introff(void);
  81. void intron(void);
  82. void invlpg(ulong);
  83. void iofree(int);
  84. void ioinit(void);
  85. int iounused(int, int);
  86. int ioalloc(int, int, int, char*);
  87. int ioreserve(int, int, int, char*);
  88. int iprint(char*, ...);
  89. int isaconfig(char*, int, ISAConf*);
  90. void* kaddr(ulong);
  91. void kbdenable(void);
  92. void kbdinit(void);
  93. #define kmapinval()
  94. void lgdt(ushort[3]);
  95. void lidt(ushort[3]);
  96. void links(void);
  97. void ltr(ulong);
  98. void mach0init(void);
  99. void mathinit(void);
  100. void mb386(void);
  101. void mb586(void);
  102. void meminit(void);
  103. void memorysummary(void);
  104. void mfence(void);
  105. #define mmuflushtlb(pdb) putcr3(pdb)
  106. void mmuinit(void);
  107. ulong* mmuwalk(ulong*, ulong, int, int);
  108. int mtrr(uvlong, uvlong, char *);
  109. void mtrrclock(void);
  110. int mtrrprint(char *, long);
  111. uchar nvramread(int);
  112. void nvramwrite(int, uchar);
  113. void outb(int, int);
  114. void outsb(int, void*, int);
  115. void outs(int, ushort);
  116. void outss(int, void*, int);
  117. void outl(int, ulong);
  118. void outsl(int, void*, int);
  119. ulong paddr(void*);
  120. ulong pcibarsize(Pcidev*, int);
  121. void pcibussize(Pcidev*, ulong*, ulong*);
  122. int pcicfgr8(Pcidev*, int);
  123. int pcicfgr16(Pcidev*, int);
  124. int pcicfgr32(Pcidev*, int);
  125. void pcicfgw8(Pcidev*, int, int);
  126. void pcicfgw16(Pcidev*, int, int);
  127. void pcicfgw32(Pcidev*, int, int);
  128. void pciclrbme(Pcidev*);
  129. void pciclrioe(Pcidev*);
  130. void pciclrmwi(Pcidev*);
  131. int pcigetpms(Pcidev*);
  132. void pcihinv(Pcidev*);
  133. uchar pciipin(Pcidev*, uchar);
  134. Pcidev* pcimatch(Pcidev*, int, int);
  135. Pcidev* pcimatchtbdf(int);
  136. void pcireset(void);
  137. int pciscan(int, Pcidev**);
  138. void pcisetbme(Pcidev*);
  139. void pcisetioe(Pcidev*);
  140. void pcisetmwi(Pcidev*);
  141. int pcisetpms(Pcidev*, int);
  142. void pcmcisread(PCMslot*);
  143. int pcmcistuple(int, int, int, void*, int);
  144. PCMmap* pcmmap(int, ulong, int, int);
  145. int pcmspecial(char*, ISAConf*);
  146. int (*_pcmspecial)(char *, ISAConf *);
  147. void pcmspecialclose(int);
  148. void (*_pcmspecialclose)(int);
  149. void pcmunmap(int, PCMmap*);
  150. int pdbmap(ulong*, ulong, ulong, int);
  151. void procrestore(Proc*);
  152. void procsave(Proc*);
  153. void procsetup(Proc*);
  154. void putcr0(ulong);
  155. void putcr3(ulong);
  156. void putcr4(ulong);
  157. void* rampage(void);
  158. void rdmsr(int, vlong*);
  159. void realmode(Ureg*);
  160. void screeninit(void);
  161. void (*screenputs)(char*, int);
  162. void* sigsearch(char*);
  163. void syncclock(void);
  164. void syscallfmt(int syscallno, ulong pc, va_list list);
  165. void sysretfmt(int syscallno, va_list list, long ret, uvlong start, uvlong stop);
  166. void* tmpmap(Page*);
  167. void tmpunmap(void*);
  168. void touser(void*);
  169. void trapenable(int, void (*)(Ureg*, void*), void*, char*);
  170. void trapinit(void);
  171. void trapinit0(void);
  172. int tas(void*);
  173. uvlong tscticks(uvlong*);
  174. ulong umbmalloc(ulong, int, int);
  175. void umbfree(ulong, int);
  176. ulong umbrwmalloc(ulong, int, int);
  177. void umbrwfree(ulong, int);
  178. ulong upaalloc(int, int);
  179. void upafree(ulong, int);
  180. void upareserve(ulong, int);
  181. #define userureg(ur) (((ur)->cs & 0xFFFF) == UESEL)
  182. void vectortable(void);
  183. void* vmap(ulong, int);
  184. int vmapsync(ulong);
  185. void vunmap(void*, int);
  186. void wbinvd(void);
  187. void wrmsr(int, vlong);
  188. int xchgw(ushort*, int);
  189. #define waserror() (up->nerrlab++, setlabel(&up->errlab[up->nerrlab-1]))
  190. #define KADDR(a) kaddr(a)
  191. #define PADDR(a) paddr((void*)(a))
  192. #define dcflush(a, b)
  193. #define BIOSSEG(a) KADDR(((uint)(a))<<4)
  194. #define L16GET(p) (((p)[1]<<8)|(p)[0])
  195. #define L32GET(p) (((u32int)L16GET((p)+2)<<16)|L16GET(p))