fns.h 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. #include "../port/portfns.h"
  2. void aamloop(int);
  3. Dirtab* addarchfile(char*, int, long(*)(Chan*,void*,long,vlong), long(*)(Chan*,void*,long,vlong));
  4. void apicclkenable(void);
  5. void archinit(void);
  6. void bootargs(ulong);
  7. int cistrcmp(char*, char*);
  8. int cistrncmp(char*, char*, int);
  9. #define clearmmucache() /* x86 doesn't have one */
  10. void clockintr(Ureg*, void*);
  11. void (*coherence)(void);
  12. void cpuid(char*, int*, int*);
  13. int cpuidentify(void);
  14. void cpuidprint(void);
  15. void delay(int);
  16. int dmacount(int);
  17. int dmadone(int);
  18. void dmaend(int);
  19. int dmainit(int, int);
  20. long dmasetup(int, void*, long, int);
  21. #define evenaddr(x) /* x86 doesn't care */
  22. void fpenv(FPsave*);
  23. void fpinit(void);
  24. void fpoff(void);
  25. void fprestore(FPsave*);
  26. void fpsave(FPsave*);
  27. ulong fpstatus(void);
  28. ulong getcr0(void);
  29. ulong getcr2(void);
  30. ulong getcr3(void);
  31. ulong getcr4(void);
  32. char* getconf(char*);
  33. void guesscpuhz(int);
  34. void halt(void);
  35. int i8042auxcmd(int);
  36. int i8042auxcmds(uchar*, int);
  37. void i8042auxenable(void (*)(int, int));
  38. void i8042reset(void);
  39. void i8250console(void);
  40. void* i8250alloc(int, int, int);
  41. void i8250mouse(char*, int (*)(Queue*, int), int);
  42. void i8250setmouseputc(char*, int (*)(Queue*, int));
  43. void i8253enable(void);
  44. void i8253init(void);
  45. void i8253link(void);
  46. uvlong i8253read(uvlong*);
  47. void i8253timerset(uvlong);
  48. void i8259init(void);
  49. int i8259isr(int);
  50. int i8259enable(Vctl*);
  51. int i8259vecno(int);
  52. int i8259disable(int);
  53. void idle(void);
  54. void idlehands(void);
  55. int inb(int);
  56. void insb(int, void*, int);
  57. ushort ins(int);
  58. void inss(int, void*, int);
  59. ulong inl(int);
  60. void insl(int, void*, int);
  61. int intrdisable(int, void (*)(Ureg *, void *), void*, int, char*);
  62. void intrenable(int, void (*)(Ureg*, void*), void*, int, char*);
  63. void iofree(int);
  64. void ioinit(void);
  65. int iounused(int, int);
  66. int ioalloc(int, int, int, char*);
  67. int ioreserve(int, int, int, char*);
  68. int iprint(char*, ...);
  69. int isaconfig(char*, int, ISAConf*);
  70. void kbdenable(void);
  71. void kbdinit(void);
  72. #define kmapinval()
  73. void lapicclock(Ureg*, void*);
  74. void lapictimerset(uvlong);
  75. void lgdt(ushort[3]);
  76. void lidt(ushort[3]);
  77. void links(void);
  78. void ltr(ulong);
  79. void mach0init(void);
  80. void mathinit(void);
  81. void meminit(void);
  82. #define mmuflushtlb(pdb) putcr3(pdb)
  83. void mmuinit(void);
  84. ulong mmukmap(ulong, ulong, int);
  85. int mmukmapsync(ulong);
  86. #define mmunewpage(x)
  87. ulong* mmuwalk(ulong*, ulong, int, int);
  88. uchar nvramread(int);
  89. void nvramwrite(int, uchar);
  90. void outb(int, int);
  91. void outsb(int, void*, int);
  92. void outs(int, ushort);
  93. void outss(int, void*, int);
  94. void outl(int, ulong);
  95. void outsl(int, void*, int);
  96. int pciscan(int, Pcidev **);
  97. ulong pcibarsize(Pcidev *, int);
  98. int pcicfgr8(Pcidev*, int);
  99. int pcicfgr16(Pcidev*, int);
  100. int pcicfgr32(Pcidev*, int);
  101. void pcicfgw8(Pcidev*, int, int);
  102. void pcicfgw16(Pcidev*, int, int);
  103. void pcicfgw32(Pcidev*, int, int);
  104. void pciclrbme(Pcidev*);
  105. void pcihinv(Pcidev*);
  106. uchar pciipin(Pcidev *, uchar);
  107. Pcidev* pcimatch(Pcidev*, int, int);
  108. Pcidev* pcimatchtbdf(int);
  109. void pcireset(void);
  110. void pcisetbme(Pcidev*);
  111. void pcmcisread(PCMslot*);
  112. int pcmcistuple(int, int, int, void*, int);
  113. PCMmap* pcmmap(int, ulong, int, int);
  114. int pcmspecial(char*, ISAConf*);
  115. int (*_pcmspecial)(char *, ISAConf *);
  116. void pcmspecialclose(int);
  117. void (*_pcmspecialclose)(int);
  118. void pcmunmap(int, PCMmap*);
  119. void printcpufreq(void);
  120. #define procrestore(p)
  121. void procsave(Proc*);
  122. void procsetup(Proc*);
  123. void putcr3(ulong);
  124. void putcr4(ulong);
  125. void rdmsr(int, vlong*);
  126. void rdtsc(uvlong*);
  127. void screeninit(void);
  128. int screenprint(char*, ...); /* debugging */
  129. void (*screenputs)(char*, int);
  130. void sfence(void);
  131. void syncclock(void);
  132. void touser(void*);
  133. void trapenable(int, void (*)(Ureg*, void*), void*, char*);
  134. void trapinit(void);
  135. int tas(void*);
  136. uvlong tscticks(uvlong*);
  137. ulong umbmalloc(ulong, int, int);
  138. void umbfree(ulong, int);
  139. ulong umbrwmalloc(ulong, int, int);
  140. void umbrwfree(ulong, int);
  141. ulong upamalloc(ulong, int, int);
  142. void upafree(ulong, int);
  143. #define userureg(ur) (((ur)->cs & 0xFFFF) == UESEL)
  144. void vectortable(void);
  145. void wrmsr(int, vlong);
  146. void wbflush(void);
  147. void wbinvd(void);
  148. int xchgw(ushort*, int);
  149. #define waserror() (up->nerrlab++, setlabel(&up->errlab[up->nerrlab-1]))
  150. #define KADDR(a) ((void*)((ulong)(a)|KZERO))
  151. #define PADDR(a) ((ulong)(a)&~KZERO)
  152. #define dcflush(a, b)