home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c480 / 19.ddi / SOURCE / STARTUP / MSDOS.H_ / MSDOS.H
Encoding:
C/C++ Source or Header  |  1993-02-08  |  5.9 KB  |  135 lines

  1. /***
  2. *msdos.h - MS-DOS definitions for C runtime
  3. *
  4. *    Copyright (c) 1987-1992, Microsoft Corporation. All rights reserved.
  5. *
  6. *Purpose:
  7. *    The file contains the MS-DOS definitions (function request numbers,
  8. *    flags, etc.) used by the C runtime.
  9. *    [Internal]
  10. *
  11. ****/
  12.  
  13. /* __osfile flag values for DOS file handles */
  14.  
  15. #define FOPEN        0x01    /* file handle open */
  16. #define FEOFLAG     0x02    /* end of file has been encountered */
  17. #define FCRLF        0x04    /* CR-LF across read buffer (in text mode) */
  18. #define FPIPE        0x08    /* file handle refers to a pipe */
  19. #define FRDONLY     0x10    /* file handle associated with read only file */
  20. #define FAPPEND     0x20    /* file handle opened O_APPEND */
  21. #define FDEV        0x40    /* file handle refers to device */
  22. #define FTEXT        0x80    /* file handle is in text mode */
  23.  
  24. #define DOS_kill    0x00    /* terminate */
  25. #define DOS_echoread    0x01    /* read keyboard and echo */
  26. #define DOS_display    0x02    /* display character */
  27. #define DOS_auxinput    0x03    /* auxiliary input */
  28. #define DOS_auxoutput    0x04    /* auxiliary output */
  29. #define DOS_print    0x05    /* print character */
  30. #define DOS_conio    0x06    /* direct console i/o */
  31. #define DOS_coninput    0x07    /* direct console input */
  32. #define DOS_readkbd    0x08    /* read keyboard */
  33. #define DOS_message    0x09    /* display string */
  34. #define DOS_bufkbdin    0x0a    /* buffered keyboard input */
  35. #define DOS_kbdstatus    0x0b    /* check keyboard status */
  36. #define DOS_flshread    0x0c    /* flush buffer and read keyboard */
  37. #define DOS_diskreset    0x0d    /* disk reset */
  38. #define DOS_selectdisk    0x0e    /* select default disk */
  39. #define DOS_fcbopen    0x0f    /* open file with fcb */
  40. #define DOS_fcbclose    0x10    /* close file with fcb */
  41. #define DOS_fcbfirst    0x11    /* search for first entry with fcb */
  42. #define DOS_fcbnext    0x12    /* search for next entry with fcb */
  43. #define DOS_fcbdelete    0x13    /* delete file with fcb */
  44. #define DOS_fcbsread    0x14    /* sequential read with fcb */
  45. #define DOS_fcbswrite    0x15    /* sequential write with fcb */
  46. #define DOS_fcbcreate    0x16    /* create file with fcb */
  47. #define DOS_fcbrename    0x17    /* rename file with fcb */
  48. #define DOS_currentd    0x19    /* current default disk */
  49. #define DOS_setDMA    0x1a    /* set DMA */
  50. #define DOS_fcbrread    0x21    /* random read with fcb */
  51. #define DOS_fcbrwrite    0x22    /* random write with fcb */
  52. #define DOS_fcbsize    0x23    /* file size with fcb */
  53. #define DOS_fcbsetrec    0x24    /* set relative record with fcb */
  54. #define DOS_setvector    0x25    /* set interrupt vector */
  55. #define DOS_fcbbread    0x27    /* random block read with fcb */
  56. #define DOS_fcbbwrite    0x28    /* random block write with fcb */
  57. #define DOS_fcbparse    0x29    /* parse file name with fcb */
  58. #define DOS_getdate    0x2a    /* get date */
  59. #define DOS_setdate    0x2b    /* set date */
  60. #define DOS_gettime    0x2c    /* get time */
  61. #define DOS_settime    0x2d    /* set time */
  62. #define DOS_verify    0x2e    /* set/reset verify flag */
  63. #define DOS_getDMA    0x2f    /* get DMA */
  64. #define DOS_version    0x30    /* get version number */
  65. #define DOS_keep    0x31    /* keep process */
  66. #define DOS_cntlc    0x33    /* Cntl-C check */
  67. #define DOS_getvector    0x35    /* get interrupt vector */
  68. #define DOS_getdskspc    0x36    /* get disk free space */
  69. #define DOS_country    0x38    /* get country dependent info */
  70. #define DOS_mkdir    0x39    /* make subdirectory */
  71. #define DOS_rmdir    0x3a    /* remove subdirectory */
  72. #define DOS_chdir    0x3b    /* change subdirectory */
  73. #define DOS_create    0x3c    /* create pathname */
  74. #define DOS_open    0x3d    /* open pathname */
  75. #define DOS_close    0x3e    /* close file handle */
  76. #define DOS_read    0x3f    /* read from file handle */
  77. #define DOS_write    0x40    /* write from file handle */
  78. #define DOS_delete    0x41    /* delete pathname */
  79. #define DOS_lseek    0x42    /* move file pointer */
  80. #define DOS_filemode    0x43    /* get/set attributes of pathname */
  81. #define DOS_ioctl    0x44    /* ioctl for devices */
  82. #define DOS_dup     0x45    /* duplicate file handle */
  83. #define DOS_forcedup    0x46    /* force duplicate file handle */
  84. #define DOS_curdir    0x47    /* get current directory */
  85. #define DOS_allocmem    0x48    /* allocate memory block */
  86. #define DOS_freemem    0x49    /* free memory block */
  87. #define DOS_setmem    0x4a    /* set size of memory block */
  88. #define DOS_exec    0x4b    /* load and execute program */
  89. #define DOS_terminate    0x4c    /* terminate process with errorcode */
  90. #define DOS_wait    0x4d    /* get child process return code */
  91. #define DOS_findfirst    0x4e    /* find first file match */
  92. #define DOS_findnext    0x4f    /* find next file match */
  93. #define DOS_getverify    0x54    /* return current verify flag */
  94. #define DOS_rename    0x56    /* rename pathname */
  95. #define DOS_filedate    0x57    /* get/set file handle date/time */
  96. #define DOS_locking    0x5C    /* file record locking/unlocking */
  97. #define DOS_sleep    0x89    /* delay process execution */
  98.  
  99. /* DOS errno values for setting __doserrno in C routines */
  100.  
  101. #define E_ifunc     1    /* invalid function code */
  102. #define E_nofile    2    /* file not found */
  103. #define E_nopath    3    /* path not found */
  104. #define E_toomany    4    /* too many open files */
  105. #define E_access    5    /* access denied */
  106. #define E_ihandle    6    /* invalid handle */
  107. #define E_arena     7    /* arena trashed */
  108. #define E_nomem     8    /* not enough memory */
  109. #define E_iblock    9    /* invalid block */
  110. #define E_badenv    10    /* bad environment */
  111. #define E_badfmt    11    /* bad format */
  112. #define E_iaccess    12    /* invalid access code */
  113. #define E_idata     13    /* invalid data */
  114. #define E_unknown    14    /* ??? unknown error ??? */
  115. #define E_idrive    15    /* invalid drive */
  116. #define E_curdir    16    /* current directory */
  117. #define E_difdev    17    /* not same device */
  118. #define E_nomore    18    /* no more files */
  119. #define E_maxerr2    19    /* unknown error - Version 2.0 */
  120. #define E_sharerr    32    /* sharing violation */
  121. #define E_lockerr    33    /* locking violation */
  122. #define E_maxerr3    34    /* unknown error - Version 3.0 */
  123. #define E_exist     80    /* file already exists */
  124.  
  125. /* DOS file attributes */
  126.  
  127. #define A_RO    0x1    /* read only */
  128. #define A_H    0x2    /* hidden */
  129. #define A_S    0x4    /* system */
  130. #define A_V    0x8    /* volume id */
  131. #define A_D    0x10    /* directory */
  132. #define A_A    0x20    /* archive */
  133.  
  134. #define A_MOD    (A_RO+A_H+A_S+A_A)    /* changeable attributes */
  135.