PROTO.H
上传用户:dcs7469208
上传日期:2010-01-02
资源大小:443k
文件大小:12k
源码类别:

操作系统开发

开发平台:

DOS

  1. /****************************************************************/
  2. /* */
  3. /*     proto.h */
  4. /* */
  5. /*      Global Function Prototypes */
  6. /* */
  7. /* Copyright (c) 1995 */
  8. /* Pasquale J. Villani */
  9. /* All Rights Reserved */
  10. /* */
  11. /* This file is part of DOS-C. */
  12. /* */
  13. /* DOS-C is free software; you can redistribute it and/or */
  14. /* modify it under the terms of the GNU General Public License */
  15. /* as published by the Free Software Foundation; either version */
  16. /* 2, or (at your option) any later version. */
  17. /* */
  18. /* DOS-C is distributed in the hope that it will be useful, but */
  19. /* WITHOUT ANY WARRANTY; without even the implied warranty of */
  20. /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See */
  21. /* the GNU General Public License for more details. */
  22. /* */
  23. /* You should have received a copy of the GNU General Public */
  24. /* License along with DOS-C; see the file COPYING.  If not, */
  25. /* write to the Free Software Foundation, 675 Mass Ave, */
  26. /* Cambridge, MA 02139, USA. */
  27. /****************************************************************/
  28. /* $Logfile:   C:/dos-c/src/ipl/proto.h_v  $ */
  29. #ifdef MAIN
  30. # ifndef IPL
  31. static BYTE *Proto_hRcsId = "$Header:   C:/dos-c/src/ipl/proto.h_v   1.6   16 Jan 1997 12:46:08   patv  $";
  32. # endif
  33. #endif
  34. /*
  35.  * $Log:   C:/dos-c/src/ipl/proto.h_v  $
  36.  *
  37.  *    Rev 1.6   16 Jan 1997 12:46:08   patv
  38.  * pre-Release 0.92 feature additions
  39.  *
  40.  *    Rev 1.5   13 Sep 1996 19:25:58   patv
  41.  * Fixed boot for hard drive
  42.  *
  43.  *    Rev 1.4   29 Aug 1996 13:06:46   patv
  44.  * Bug fixes for v0.91b
  45.  *
  46.  *    Rev 1.3   19 Feb 1996  3:18:20   patv
  47.  * Added NLS, int2f and config.sys processing
  48.  *
  49.  *    Rev 1.2   01 Sep 1995 17:44:42   patv
  50.  * First GPL release.
  51.  *
  52.  *    Rev 1.1   30 Jul 1995 20:48:10   patv
  53.  * Eliminated version strings in ipl
  54.  *
  55.  *    Rev 1.0   02 Jul 1995 10:12:16   patv
  56.  * Initial revision.
  57.  */
  58. #if defined(__STDC__) || defined(__cplusplus) || defined(__BORLANDC__)
  59. # define _P(s) s
  60. #else
  61. # define _P(s) ()
  62. #endif
  63. /* FATFS.C */
  64. COUNT dos_open _P((BYTE FAR *path, COUNT flag));
  65. BOOL fcmp _P((BYTE FAR *s1, BYTE FAR FAR *s2, COUNT n));
  66. BOOL fcmp_wild _P((BYTE FAR *s1, BYTE FAR FAR *s2, COUNT n));
  67. VOID touc _P((BYTE FAR *s, COUNT n));
  68. COUNT dos_close _P((COUNT fd));
  69. COUNT dos_creat _P((BYTE FAR *path, COUNT attrib));
  70. COUNT dos_delete _P((BYTE FAR *path));
  71. COUNT dos_rmdir _P((BYTE FAR *path));
  72. COUNT dos_rename _P((BYTE FAR *path1, BYTE FAR FAR *path2));
  73. date dos_getdate _P((void));
  74. time dos_gettime _P((void));
  75. BOOL dos_getftime _P((COUNT fd, date FAR *dp, time FAR *tp));
  76. BOOL dos_setftime _P((COUNT fd, date FAR *dp, time FAR *tp));
  77. LONG dos_getcufsize _P((COUNT fd));
  78. LONG dos_getfsize _P((COUNT fd));
  79. BOOL dos_setfsize _P((COUNT fd, LONG size));
  80. COUNT dos_mkdir _P((BYTE FAR *dir));
  81. BOOL last_link _P((struct f_node FAR *fnp));
  82. COUNT map_cluster _P((REG struct f_node FAR *fnp, COUNT mode));
  83. UCOUNT rdwrblock _P((COUNT fd, VOID FAR *buffer, UCOUNT count, COUNT mode, COUNT *err));
  84. COUNT dos_read _P((COUNT fd, VOID FAR *buffer, UCOUNT count));
  85. COUNT dos_write _P((COUNT fd, VOID FAR *buffer, UCOUNT count));
  86. LONG dos_lseek _P((COUNT fd, LONG foffset, COUNT origin));
  87. UWORD dos_free _P((struct dpb *dpbp));
  88. VOID dos_pwd _P((struct dpb *dpbp, BYTE FAR *s));
  89. VOID trim_path _P((BYTE FAR *s));
  90. COUNT dos_cd _P((struct dpb *dpbp, BYTE FAR *s));
  91. struct f_node FAR *get_f_node _P((void));
  92. VOID release_f_node _P((struct f_node FAR *fnp));
  93. VOID dos_setdta _P((BYTE FAR *newdta));
  94. COUNT dos_getfattr _P((BYTE FAR *name, UWORD FAR *attrp));
  95. COUNT dos_setfattr _P((BYTE FAR *name, UWORD FAR *attrp));
  96. COUNT media_check _P((REG struct dpb *dpbp));
  97. struct f_node FAR *xlt_fd _P((COUNT fd));
  98. COUNT xlt_fnp _P((struct f_node FAR *fnp));
  99. struct dhdr FAR *select_unit _P((COUNT drive));
  100. #undef _P
  101. #if defined(__STDC__) || defined(__cplusplus) || defined(__BORLANDC__)
  102. # define _P(s) s
  103. #else
  104. # define _P(s) ()
  105. #endif
  106. /* FATDIR.C */
  107. struct f_node FAR *dir_open _P((BYTE FAR *dirname));
  108. COUNT dir_read _P((REG struct f_node FAR *fnp));
  109. COUNT dir_write _P((REG struct f_node FAR *fnp));
  110. VOID dir_close _P((REG struct f_node FAR *fnp));
  111. COUNT dos_findfirst _P((UCOUNT attr, BYTE FAR *name));
  112. COUNT dos_findnext _P((void));
  113. #undef _P
  114. #if defined(__STDC__) || defined(__cplusplus) || defined(__BORLANDC__)
  115. # define _P(s) s
  116. #else
  117. # define _P(s) ()
  118. #endif
  119. /* FATTAB.C */
  120. UCOUNT link_fat _P((struct dpb *dpbp, UCOUNT Cluster1, REG UCOUNT Cluster2));
  121. UCOUNT link_fat16 _P((struct dpb *dpbp, UCOUNT Cluster1, UCOUNT Cluster2));
  122. UCOUNT link_fat12 _P((struct dpb *dpbp, UCOUNT Cluster1, UCOUNT Cluster2));
  123. UWORD next_cluster _P((struct dpb *dpbp, REG UCOUNT ClusterNum));
  124. UWORD next_cl16 _P((struct dpb *dpbp, REG UCOUNT ClusterNum));
  125. UWORD next_cl12 _P((struct dpb *dpbp, REG UCOUNT ClusterNum));
  126. #undef _P
  127. #if defined(__STDC__) || defined(__cplusplus) || defined(__BORLANDC__)
  128. # define _P(s) s
  129. #else
  130. # define _P(s) ()
  131. #endif
  132. /* DOSFNS.C */
  133. BOOL check_break _P((void));
  134. UCOUNT DosRead _P((COUNT hndl, UCOUNT n, BYTE FAR *bp, COUNT FAR *err));
  135. UCOUNT DosWrite _P((COUNT hndl, UCOUNT n, BYTE FAR *bp, COUNT FAR *err));
  136. COUNT DosSeek _P((COUNT hndl, LONG new_pos, COUNT mode, ULONG *set_pos));
  137. COUNT DosCreat _P((BYTE FAR *fname, COUNT attrib));
  138. COUNT CloneHandle _P((COUNT hndl));
  139. COUNT DosDup _P((COUNT Handle));
  140. COUNT DosForceDup _P((COUNT OldHandle, COUNT NewHandle));
  141. COUNT DosOpen _P((BYTE FAR *fname, COUNT mode));
  142. COUNT DosClose _P((COUNT hndl));
  143. VOID DosGetFree _P((COUNT drive, COUNT FAR *spc, COUNT FAR *navc, COUNT FAR *bps, COUNT FAR *nc));
  144. COUNT DosGetCuDir _P((COUNT drive, BYTE FAR *s));
  145. COUNT DosChangeDir _P((BYTE FAR *s));
  146. COUNT DosFindFirst _P((UCOUNT attr, BYTE FAR *name));
  147. COUNT DosFindNext _P((void));
  148. COUNT DosGetFtime _P((COUNT hndl, date FAR *dp, time FAR *tp));
  149. COUNT DosSetFtime _P((COUNT hndl, date FAR *dp, time FAR *tp));
  150. COUNT DosGetFattr _P((BYTE FAR *name, UWORD FAR *attrp));
  151. COUNT DosSetFattr _P((BYTE FAR *name, UWORD FAR *attrp));
  152. #undef _P
  153. #if defined(__STDC__) || defined(__cplusplus) || defined(__BORLANDC__)
  154. # define _P(s) s
  155. #else
  156. # define _P(s) ()
  157. #endif
  158. /* DOSNAMES.C */
  159. VOID XlateLcase _P((BYTE *szFname, COUNT nChars));
  160. COUNT DosNames _P((BYTE FAR *lpszFileName, struct dosnames FAR *lpDosname));
  161. BOOL IsDevice _P((BYTE *pszFileName));
  162. VOID DosTrimPath _P((BYTE FAR *lpszPathNamep));
  163. #undef _P
  164. #if defined(__STDC__) || defined(__cplusplus) || defined(__BORLANDC__)
  165. # define _P(s) s
  166. #else
  167. # define _P(s) ()
  168. #endif
  169. /* ERROR.C */
  170. VOID dump _P((void));
  171. VOID panic _P((BYTE *s));
  172. VOID fatal _P((BYTE *err_msg));
  173. VOID fatal _P((BYTE *err_msg));
  174. COUNT char_error _P((request *rq, BYTE *devname));
  175. COUNT block_error _P((request *rq, COUNT drive));
  176. #undef _P
  177. #if defined(__STDC__) || defined(__cplusplus) || defined(__BORLANDC__)
  178. # define _P(s) s
  179. #else
  180. # define _P(s) ()
  181. #endif
  182. /* PRF.C */
  183. VOID put_console _P((COUNT c));
  184. WORD printf _P((CONST BYTE *fmt, ...));
  185. WORD sprintf _P((BYTE *buff, CONST BYTE *fmt, ...));
  186. #undef _P
  187. #if defined(__STDC__) || defined(__cplusplus) || defined(__BORLANDC__)
  188. # define _P(s) s
  189. #else
  190. # define _P(s) ()
  191. #endif
  192. /* MISC.C */
  193. VOID scopy _P((REG BYTE *s, REG BYTE *d));
  194. VOID fscopy _P((REG BYTE FAR *s, REG BYTE FAR *d));
  195. VOID fsncopy _P((BYTE FAR *s, BYTE FAR *d, REG COUNT n));
  196. VOID bcopy _P((REG BYTE *s, REG BYTE *d, REG COUNT n));
  197. VOID fbcopy _P((REG VOID FAR *s, REG VOID FAR *d, REG COUNT n));
  198. BYTE *skipwh _P((BYTE *s));
  199. BYTE *scan _P((BYTE *s, BYTE *d));
  200. BOOL isnum _P((BYTE *pLine));
  201. BYTE *GetNumber _P((REG BYTE *pszString, REG COUNT *pnNum));
  202. BYTE *scan_seperator _P((BYTE *s, BYTE *d));
  203. #undef _P
  204. #if defined(__STDC__) || defined(__cplusplus) || defined(__BORLANDC__)
  205. # define _P(s) s
  206. #else
  207. # define _P(s) ()
  208. #endif
  209. /* SYSPACK.C */
  210. VOID getlong _P((REG VOID *vp, LONG *lp));
  211. VOID getword _P((REG VOID *vp, WORD *wp));
  212. VOID getbyte _P((VOID *vp, BYTE *bp));
  213. VOID fgetword _P((REG VOID FAR *vp, WORD FAR *wp));
  214. VOID fgetlong _P((REG VOID FAR *vp, LONG FAR *lp));
  215. VOID fgetbyte _P((VOID FAR *vp, BYTE FAR *bp));
  216. VOID fputlong _P((LONG FAR *lp, VOID FAR *vp));
  217. VOID fputword _P((WORD FAR *wp, VOID FAR *vp));
  218. VOID fputbyte _P((BYTE FAR *bp, VOID FAR *vp));
  219. VOID getdirent _P((BYTE FAR *vp, struct dirent FAR *dp));
  220. VOID putdirent _P((struct dirent FAR *dp, BYTE FAR *vp));
  221. #undef _P
  222. #if defined(__STDC__) || defined(__cplusplus) || defined(__BORLANDC__)
  223. # define _P(s) s
  224. #else
  225. # define _P(s) ()
  226. #endif
  227. /* TASK.C */
  228. COUNT ChildEnv _P((exec_blk FAR *exp, UWORD *pChildEnvSeg, char far *pathname));
  229. VOID new_psp _P((psp FAR *p, int psize));
  230. VOID return_user _P((void));
  231. COUNT DosExec _P((COUNT mode, exec_blk FAR *ep, BYTE FAR *lp));
  232. #undef _P
  233. #if defined(__STDC__) || defined(__cplusplus) || defined(__BORLANDC__)
  234. # define _P(s) s
  235. #else
  236. # define _P(s) ()
  237. #endif
  238. /* MEMMGR.C */
  239. VOID mcb_init _P((mcb FAR *mcbp, UWORD size));
  240. seg far2para _P((VOID FAR *p));
  241. seg long2para _P((LONG size));
  242. VOID FAR *add_far _P((VOID FAR *fp, ULONG off));
  243. VOID FAR *adjust_far _P((VOID FAR *fp));
  244. COUNT DosMemAlloc _P((UWORD size, COUNT mode, seg FAR *para, UWORD FAR *asize));
  245. seg DosMemLargest _P((seg FAR *size));
  246. COUNT DosMemFree _P((UWORD para));
  247. COUNT DosMemChange _P((UWORD para, UWORD size, UWORD *maxSize));
  248. COUNT DosMemCheck _P((void));
  249. COUNT FreeProcessMem _P((UWORD ps));
  250. COUNT DosGetLargestBlock _P((UWORD FAR *block));
  251. VOID show_chain _P((void));
  252. VOID mcb_print _P((mcb FAR *mcbp));
  253. VOID _fmemcpy _P((BYTE FAR *d, BYTE FAR *s, REG COUNT n));
  254. #undef _P
  255. #if defined(__STDC__) || defined(__cplusplus) || defined(__BORLANDC__)
  256. # define _P(s) s
  257. #else
  258. # define _P(s) ()
  259. #endif
  260. /* STRINGS.C */
  261. COUNT strlen _P((REG BYTE *s));
  262. COUNT fstrlen _P((REG BYTE FAR *s));
  263. VOID strcpy _P((REG BYTE *d, REG BYTE *s));
  264. VOID strncpy _P((REG BYTE *d, REG BYTE *s, COUNT l));
  265. VOID strcat _P((REG BYTE *d, REG BYTE *s));
  266. COUNT strcmp _P((REG BYTE *d, REG BYTE *s));
  267. COUNT fstrcmp _P((REG BYTE FAR *d, REG BYTE FAR *s));
  268. COUNT strncmp _P((REG BYTE *d, REG BYTE *s, COUNT l));
  269. COUNT fstrncmp _P((REG BYTE FAR *d, REG BYTE FAR *s, COUNT l));
  270. VOID fstrncpy _P((REG BYTE FAR *d, REG BYTE FAR *s, COUNT l));
  271. COUNT tolower _P((COUNT c));
  272. COUNT toupper _P((COUNT c));
  273. #undef _P
  274. #if defined(__STDC__) || defined(__cplusplus) || defined(__BORLANDC__)
  275. # define _P(s) s
  276. #else
  277. # define _P(s) ()
  278. #endif
  279. /* BLOCKIO.C */
  280. VOID init_buffers _P((void));
  281. struct buffer FAR *getblock _P((LONG blkno, COUNT dsk));
  282. VOID setinvld _P((REG COUNT dsk));
  283. BOOL flush_buffers _P((REG COUNT dsk));
  284. BOOL flush1 _P((struct buffer FAR *bp));
  285. BOOL flush _P((void));
  286. BOOL fill _P((REG struct buffer FAR *bp, LONG blkno, COUNT dsk));
  287. BOOL dskxfer _P((COUNT dsk, LONG blkno, VOID FAR *buf, COUNT mode));
  288. #undef _P
  289. #if defined(__STDC__) || defined(__cplusplus) || defined(__BORLANDC__)
  290. # define _P(s) s
  291. #else
  292. # define _P(s) ()
  293. #endif
  294. /* CHARIO.C */
  295. VOID INRPT FAR handle_break _P((void));
  296. VOID sto _P((COUNT c));
  297. VOID mod_sto _P((REG UCOUNT c));
  298. VOID destr_bs _P((void));
  299. UCOUNT _sti _P((void));
  300. VOID con_hold _P((void));
  301. BOOL con_break _P((void));
  302. BOOL KbdBusy _P((void));
  303. VOID KbdFlush _P((void));
  304. VOID sti _P((keyboard FAR *kp));
  305. #undef _P
  306. #if defined(__STDC__) || defined(__cplusplus) || defined(__BORLANDC__)
  307. # define _P(s) s
  308. #else
  309. # define _P(s) ()
  310. #endif
  311. /* DSK.C */
  312. COUNT get_part _P((COUNT drive, COUNT idx));
  313. COUNT blk_driver _P((rqptr rp));
  314. #undef _P
  315. #if defined(__STDC__) || defined(__cplusplus) || defined(__BORLANDC__)
  316. # define _P(s) s
  317. #else
  318. # define _P(s) ()
  319. #endif
  320. /* SYSCON.C */
  321. WORD con_driver _P((rqptr rp));
  322. VOID break_handler _P((void));
  323. VOID INRPT FAR int29_handler _P((int es, int ds, int di, int si, int bp, int sp, int bx, int dx, int cx, int ax, int ip, int cs, int flags));
  324. #undef _P
  325. #if defined(__STDC__) || defined(__cplusplus) || defined(__BORLANDC__)
  326. # define _P(s) s
  327. #else
  328. # define _P(s) ()
  329. #endif
  330. /* MAIN.C */
  331. VOID main _P((void));
  332. VOID init_device _P((struct dhdr FAR *dhp, BYTE FAR *cmdLine));
  333. struct dhdr FAR *
  334. link_dhdr _P((struct dhdr FAR *lp, struct dhdr FAR *dhp, BYTE FAR *cmdLine));
  335. COUNT prompt _P((COUNT argc, BYTE *argv[]));
  336. COUNT put_prompt _P((BYTE *fmt));
  337. struct table *lookup _P((struct table *p, BYTE *token));
  338. COUNT unknown _P((void));
  339. COUNT ver _P((void));
  340. COUNT help _P((void));
  341. COUNT set_drive _P((COUNT argc, BYTE *argv[]));
  342. COUNT type _P((COUNT argc, BYTE *argv[]));
  343. COUNT dir _P((COUNT argc, BYTE *argv[]));
  344. #undef _P