fns.h 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. #include "../port/portfns.h"
  2. void arginit(void);
  3. int busprobe(ulong);
  4. ulong cankaddr(ulong);
  5. void cleancache(void);
  6. void clearmmucache(void);
  7. void clock(Ureg*);
  8. void clockinit(void);
  9. void clockshutdown(void);
  10. int cmpswap(long*, long, long);
  11. void coherence(void);
  12. void cycles(uvlong *);
  13. void dcflush(void*, ulong);
  14. void evenaddr(ulong);
  15. void faultmips(Ureg*, int, int);
  16. ulong fcr31(void);
  17. void firmware(int);
  18. void fpclear(void);
  19. void fpsave(FPsave *);
  20. void fptrap(Ureg*);
  21. int fpuemu(Ureg *);
  22. void fpwatch(Ureg *);
  23. ulong getcause(void);
  24. char* getconf(char*);
  25. ulong getconfig(void);
  26. ulong getconfig1(void);
  27. ulong getconfig2(void);
  28. ulong getconfig3(void);
  29. ulong getconfig7(void);
  30. ulong gethwreg3(void);
  31. ulong getpagemask(void);
  32. ulong getstatus(void);
  33. int gettlbp(ulong, ulong*);
  34. ulong gettlbvirt(int);
  35. void gotopc(ulong);
  36. void hinv(void);
  37. int i8250console(void);
  38. void icflush(void *, ulong);
  39. void idle(void);
  40. void idlehands(void);
  41. int inb(int);
  42. void insb(int, void*, int);
  43. ushort ins(int);
  44. void inss(int, void*, int);
  45. ulong inl(int);
  46. void insl(int, void*, int);
  47. void ioinit(void);
  48. void introff(int);
  49. void intron(int);
  50. void intrshutdown(void);
  51. void kfault(Ureg*);
  52. KMap* kmap(Page*);
  53. void kmapinit(void);
  54. void kmapinval(void);
  55. void kunmap(KMap*);
  56. void launchinit(void);
  57. void launch(int);
  58. void links(void);
  59. ulong machstatus(void);
  60. void newstart(void);
  61. int newtlbpid(Proc*);
  62. void online(void);
  63. void outb(int, int);
  64. void outsb(int, void*, int);
  65. void outs(int, ushort);
  66. void outss(int, void*, int);
  67. void outl(int, ulong);
  68. void outsl(int, void*, int);
  69. ulong pcibarsize(Pcidev*, int);
  70. void pcibussize(Pcidev*, ulong*, ulong*);
  71. int pcicfgr8(Pcidev*, int);
  72. int pcicfgr16(Pcidev*, int);
  73. int pcicfgr32(Pcidev*, int);
  74. void pcicfgw8(Pcidev*, int, int);
  75. void pcicfgw16(Pcidev*, int, int);
  76. void pcicfgw32(Pcidev*, int, int);
  77. void pciclrbme(Pcidev*);
  78. void pciclrioe(Pcidev*);
  79. void pciclrmwi(Pcidev*);
  80. int pcigetpms(Pcidev*);
  81. void pcihinv(Pcidev*);
  82. uchar pciipin(Pcidev*, uchar);
  83. Pcidev* pcimatch(Pcidev*, int, int);
  84. Pcidev* pcimatchtbdf(int);
  85. void pcireset(void);
  86. int pciscan(int, Pcidev**);
  87. void pcisetbme(Pcidev*);
  88. void pcisetioe(Pcidev*);
  89. void pcisetmwi(Pcidev*);
  90. int pcisetpms(Pcidev*, int);
  91. ulong prid(void);
  92. void procrestore(Proc *);
  93. void procsave(Proc *);
  94. #define procsetup(p) ((p)->fpstate = FPinit)
  95. void purgetlb(int);
  96. Softtlb* putstlb(ulong, ulong);
  97. int puttlb(ulong, ulong, ulong);
  98. void puttlbx(int, ulong, ulong, ulong, int);
  99. ulong rdcompare(void);
  100. ulong rdcount(void);
  101. ulong* reg(Ureg*, int);
  102. void restfpregs(FPsave*, ulong);
  103. void intrenable(int, void(*)(void *), void *);
  104. void setleveldest(int, int, uvlong*);
  105. void setpagemask(ulong);
  106. void setsp(ulong);
  107. void setstatus(ulong);
  108. void setwatchhi0(ulong);
  109. void setwatchlo0(ulong);
  110. void setwired(ulong);
  111. void sicwdog(void);
  112. void silencewdog(void);
  113. ulong stlbhash(ulong);
  114. void stopwdog(void);
  115. void syncclock(void);
  116. long syscall(Ureg*);
  117. void syscallfmt(int syscallno, ulong pc, va_list list);
  118. void sysretfmt(int syscallno, va_list list, long ret, uvlong start, uvlong stop);
  119. int tas(ulong*);
  120. void tlbinit(void);
  121. ulong tlbvirt(void);
  122. void touser(uintptr);
  123. void unleash(void);
  124. #define userureg(ur) ((ur)->status & KUSER)
  125. void vecinit(void);
  126. void vector0(void);
  127. void vector100(void);
  128. void vector180(void);
  129. void wdogreset(void);
  130. void wrcompare(ulong);
  131. void wrcount(ulong);
  132. ulong wiredpte(vlong);
  133. void machwire(void);
  134. void _uartputs(char*, int);
  135. int _uartprint(char*, ...);
  136. #define PTR2UINT(p) ((uintptr)(p))
  137. #define UINT2PTR(i) ((void*)(i))
  138. #define waserror() (up->nerrlab++, setlabel(&up->errlab[up->nerrlab-1]))
  139. #define KADDR(a) ((void*)((ulong)(a)|KSEG0))
  140. #define PADDR(a) ((ulong)(a)&~KSEGM)
  141. #define KSEG1ADDR(a) ((void*)((ulong)(a)|KSEG1))