x86.xml 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312
  1. <?xml version="1.0" encoding="ISO8859-1"?>
  2. <fpdoc-descriptions>
  3. <!--
  4. $Id$
  5. This file is part of the FPC documentation.
  6. Copyright (C) 1997, by Michael Van Canneyt
  7. The FPC documentation is free text; you can redistribute it and/or
  8. modify it under the terms of the GNU Library General Public License as
  9. published by the Free Software Foundation; either version 2 of the
  10. License, or (at your option) any later version.
  11. The FPC Documentation is distributed in the hope that it will be useful,
  12. but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  14. Library General Public License for more details.
  15. You should have received a copy of the GNU Library General Public
  16. License along with the FPC documentation; see the file COPYING.LIB. If not,
  17. write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  18. Boston, MA 02111-1307, USA.
  19. -->
  20. <package name="rtl">
  21. <module name="x86">
  22. <short>Intel X86 specific routines for unix platforms.</short>
  23. <!-- \FPCexampledir{crtex} -->
  24. <descr>
  25. <p>
  26. The <file>x86</file> unit contains some of the routines that were present in
  27. the 1.0.X Linux unit, and which were Intel (PC) architecture specific.
  28. </p>
  29. <p>
  30. These calls have been preserved for compatibility, but should be considered
  31. deprecated: they are not portable and may not even work on future linux
  32. versions.
  33. </p>
  34. </descr>
  35. <element name="ReadPort">
  36. <short>Read data from a PC port</short>
  37. <descr>
  38. <p>
  39. <var>ReadPort</var> reads one Byte, Word or Longint from port <var>Port</var> into
  40. <var>Value</var>.
  41. </p>
  42. <p>
  43. Note that you need permission to read a port. This permission can be set by
  44. the root user with the <link id="FpIOPerm"/> call.
  45. </p>
  46. </descr>
  47. <errors>
  48. In case of an error (not enough permissions read this port), runtime 216
  49. (<em> Access Violation</em>) will occur.
  50. </errors>
  51. <seealso>
  52. <link id="FpIOPerm"/>
  53. <link id="ReadPortB"/>
  54. <link id="ReadPortW"/>
  55. <link id="ReadPortL"/>
  56. <link id="WritePort"/>,
  57. <link id="WritePortB"/>
  58. <link id="WritePortL"/>
  59. <link id="WritePortW"/>
  60. </seealso>
  61. </element>
  62. <element name="ReadPortB">
  63. <short>Read bytes from a PC port</short>
  64. <descr>
  65. <p>
  66. The procedural form of <var>ReadPortB</var> reads <var>Count</var> bytes from port
  67. <var>Port</var> and stores them in <var>Buf</var>. There must be enough memory
  68. allocated at <var>Buf</var> to store <var>Count</var> bytes.
  69. </p>
  70. <p>
  71. The functional form of <var>ReadPortB</var> reads 1 byte from port <var>B</var>
  72. and returns the byte that was read.
  73. </p>
  74. <p>
  75. Note that you need permission to read a port. This permission can be set by
  76. the root user with the <link id="FpIOPerm"/> call.
  77. </p>
  78. </descr>
  79. <errors>
  80. In case of an error (not enough permissions read this port), runtime 216
  81. (<em> Access Violation</em>) will occur.
  82. </errors>
  83. <seealso>
  84. <link id="FpIOPerm"/>
  85. <link id="ReadPort"/>
  86. <link id="ReadPortW"/>
  87. <link id="ReadPortL"/>
  88. <link id="WritePort"/>,
  89. <link id="WritePortB"/>
  90. <link id="WritePortL"/>
  91. <link id="WritePortW"/>
  92. </seealso>
  93. </element>
  94. <element name="ReadPortL">
  95. <short>Read longints from a PC port </short>
  96. <descr>
  97. <p>
  98. The procedural form of <var>ReadPortL</var> reads <var>Count</var> longints from port
  99. <var>Port</var> and stores them in <var>Buf</var>. There must be enough memory
  100. allocated at <var>Buf</var> to store <var>Count</var> Longints.
  101. </p>
  102. <p>
  103. The functional form of <var>ReadPortL</var> reads 1 longint from port <var>B</var>
  104. and returns the longint that was read.
  105. </p>
  106. <p>
  107. Note that you need permission to read a port. This permission can be set by
  108. the root user with the <link id="FpIOPerm"/> call.
  109. </p>
  110. </descr>
  111. <errors>
  112. In case of an error (not enough permissions read this port), runtime 216
  113. (<em> Access Violation</em>) will occur.
  114. </errors>
  115. <seealso>
  116. <link id="FpIOPerm"/>
  117. <link id="ReadPort"/>
  118. <link id="ReadPortW"/>
  119. <link id="ReadPortB"/>
  120. <link id="WritePort"/>,
  121. <link id="WritePortB"/>
  122. <link id="WritePortL"/>
  123. <link id="WritePortW"/>
  124. </seealso>
  125. </element>
  126. <element name="ReadPortW">
  127. <short>Read Words from a PC port</short>
  128. <descr>
  129. <p>
  130. The procedural form of <var>ReadPortW</var> reads <var>Count</var> words from port
  131. <var>Port</var> and stores them in <var>Buf</var>. There must be enough memory
  132. allocated at <var>Buf</var> to store <var>Count</var> words.
  133. </p>
  134. <p>
  135. The functional form of <var>ReadPortW</var> reads 1 word from port <var>B</var>
  136. and returns the word that was read.
  137. </p>
  138. <p>
  139. Note that you need permission to read a port. This permission can be set by
  140. the root user with the <link id="FpIOPerm"/> call.
  141. </p>
  142. </descr>
  143. <errors>
  144. In case of an error (not enough permissions read this port), runtime 216
  145. (<em> Access Violation</em>) will occur.
  146. </errors>
  147. <seealso>
  148. <link id="FpIOPerm"/>
  149. <link id="ReadPort"/>
  150. <link id="ReadPortB"/>
  151. <link id="ReadPortL"/>
  152. <link id="WritePort"/>,
  153. <link id="WritePortB"/>
  154. <link id="WritePortL"/>
  155. <link id="WritePortW"/>
  156. </seealso>
  157. </element>
  158. <element name="WritePort">
  159. <short>Write data to PC port</short>
  160. <descr>
  161. <p>
  162. <var>WritePort</var> writes <var>Value</var> -- 1 byte, Word or longint --
  163. to port <var>Port</var>.
  164. </p>
  165. <remark>
  166. You need permission to write to a port. This permission can be set with root
  167. permission with the <link id="FpIOPerm"/> call.
  168. </remark>
  169. </descr>
  170. <errors>
  171. In case of an error (not enough permissions to write to this port), runtime 216
  172. (<em> Access Violation</em>) will occur.
  173. </errors>
  174. <seealso>
  175. <link id="FpIOPerm"/>
  176. <link id="WritePortB"/>
  177. <link id="WritePortL"/>
  178. <link id="WritePortW"/>
  179. <link id="ReadPortB"/>
  180. <link id="ReadPortL"/>
  181. <link id="ReadPortW"/>
  182. </seealso>
  183. </element>
  184. <element name="WritePortB">
  185. <short>Write byte to PC port</short>
  186. <descr>
  187. <p>
  188. The first form of <var>WritePortB</var> writes 1 byte to port <var>Port</var>.
  189. The second form writes <var>Count</var> bytes from <var>Buf</var> to port <var>Port</var>.
  190. </p>
  191. <remark>
  192. You need permission to write to a port. This permission can be set with root
  193. permission with the <link id="FpIOPerm"/> call.
  194. </remark>
  195. </descr>
  196. <errors>
  197. In case of an error (not enough permissions to write to this port), runtime 216
  198. (<em> Access Violation</em>) will occur.
  199. </errors>
  200. <seealso>
  201. <link id="FpIOPerm"/>
  202. <link id="WritePort"/>
  203. <link id="WritePortL"/>
  204. <link id="WritePortW"/>
  205. <link id="ReadPortB"/>
  206. <link id="ReadPortL"/>
  207. <link id="ReadPortW"/>
  208. </seealso>
  209. </element>
  210. <element name="WritePortL">
  211. <short>Write longint to PC port.</short>
  212. <descr>
  213. <p>
  214. The first form of <var>WritePortB</var> writes 1 byte to port <var>Port</var>.
  215. The second form writes <var>Count</var> bytes from <var>Buf</var> to port <var>Port</var>.
  216. </p>
  217. <remark>
  218. You need permission to write to a port. This permission can be set with root
  219. permission with the <link id="FpIOPerm"/> call.
  220. </remark>
  221. </descr>
  222. <errors>
  223. In case of an error (not enough permissions to write to this port), runtime 216
  224. (<em> Access Violation</em>) will occur.
  225. </errors>
  226. <seealso>
  227. <link id="FpIOPerm"/>
  228. <link id="WritePort"/>
  229. <link id="WritePortB"/>
  230. <link id="WritePortW"/>
  231. <link id="ReadPortB"/>
  232. <link id="ReadPortL"/>
  233. <link id="ReadPortW"/>
  234. </seealso>
  235. </element>
  236. <element name="WritePortW">
  237. <short>Write Word to PC port</short>
  238. <descr>
  239. <p>
  240. The first form of <var>WritePortB</var> writes 1 byte to port <var>Port</var>.
  241. The second form writes <var>Count</var> bytes from <var>Buf</var> to port <var>Port</var>.
  242. </p>
  243. <remark>
  244. You need permission to write to a port. This permission can be set with root
  245. permission with the <link id="FpIOPerm"/> call.
  246. </remark>
  247. </descr>
  248. <errors>
  249. In case of an error (not enough permissions to write to this port), runtime 216
  250. (<em> Access Violation</em>) will occur.
  251. </errors>
  252. <seealso>
  253. <link id="FpIOPerm"/>
  254. <link id="WritePort"/>
  255. <link id="WritePortL"/>
  256. <link id="WritePortB"/>
  257. <link id="ReadPortB"/>
  258. <link id="ReadPortL"/>
  259. <link id="ReadPortW"/>
  260. </seealso>
  261. </element>
  262. <element name="FpIOperm">
  263. <short>Set permission on IO ports</short>
  264. <descr>
  265. <p>
  266. <var>FpIOperm</var>
  267. sets permissions on <var>Num</var> ports starting with port <var>From</var> to
  268. <var>Value</var>. The function returns zero if the call was successfull,
  269. a nonzero value otherwise.
  270. </p>
  271. <p>
  272. Note:
  273. </p>
  274. <ul>
  275. <li> This works ONLY as root.</li>
  276. <li> Only the first <var>0x03ff</var> ports can be set.</li>
  277. <li> When doing a <link id="#rtl.baseunix.FpFork">FpFork</link>, the permissions are reset.
  278. When doing a <link id="#rtl.baseunix.FpExecve">FpExecVE</link> they are kept.</li>
  279. </ul>
  280. </descr>
  281. <errors>
  282. Extended error information can be retrieved with <link id="#rtl.baseunix.fpGetErrno">FpGetErrno</link>
  283. </errors>
  284. </element>
  285. <element name="FpIoPL">
  286. <short>Set I/O privilege level</short>
  287. <descr>
  288. <var>FpIoPL</var> sets the I/O privilige level. It is intended for
  289. completeness only, one should normally not use it.
  290. </descr>
  291. </element>
  292. </module>
  293. </package>
  294. </fpdoc-descriptions>