blob: d19e49884bc9cca7ce8f4b21753488dc7b7c97fc (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
|
;break <CP/DOS error codes>
; SCCSID = @(#)error.inc 6.2 86/02/27
;
; CP/DOS calls all return error codes through AX. If an error occurred then
; the carry bit will be set and the error code is in AX. If no error occurred
; then the carry bit is reset and AX contains returned info.
;
; Since the set of error codes is being extended as we extend the operating
; system, we have provided a means for applications to ask the system for a
; recommended course of action when they receive an error.
;
; The GetExtendedError system call returns a universal error, an error
; location and a recommended course of action. The universal error code is
; a symptom of the error REGARDLESS of the context in which GetExtendedError
; is issued.
;
;
; These are the 2.0 error codes
;
no_error EQU 0
error_invalid_function EQU 1
error_file_not_found EQU 2
error_path_not_found EQU 3
error_too_many_open_files EQU 4
error_access_denied EQU 5
error_invalid_handle EQU 6
error_arena_trashed EQU 7
error_not_enough_memory EQU 8
error_invalid_block EQU 9
error_bad_environment EQU 10
error_bad_format EQU 11
error_invalid_access EQU 12
error_invalid_data EQU 13
;**** reserved EQU 14 ; *****
error_invalid_drive EQU 15
error_current_directory EQU 16
error_not_same_device EQU 17
error_no_more_files EQU 18
;
; These are the universal int 24 mappings for the old INT 24 set of errors
;
error_write_protect EQU 19
error_bad_unit EQU 20
error_not_ready EQU 21
error_bad_command EQU 22
error_CRC EQU 23
error_bad_length EQU 24
error_Seek EQU 25
error_not_DOS_disk EQU 26
error_sector_not_found EQU 27
error_out_of_paper EQU 28
error_write_fault EQU 29
error_read_fault EQU 30
error_gen_failure EQU 31
;
; These are the new 3.0 error codes reported through INT 24
;
error_sharing_violation EQU 32
error_lock_violation EQU 33
error_wrong_disk EQU 34
error_FCB_unavailable EQU 35
error_sharing_buffer_exceeded EQU 36
;
; New OEM network-related errors are 50-79
;
error_not_supported EQU 50
;
; End of INT 24 reportable errors
;
error_file_exists EQU 80
error_DUP_FCB EQU 81 ; *****
error_cannot_make EQU 82
error_FAIL_I24 EQU 83
;
; New 3.0 network related error codes
;
error_out_of_structures EQU 84
error_Already_assigned EQU 85
error_invalid_password EQU 86
error_invalid_parameter EQU 87
error_NET_write_fault EQU 88
;
; New error codes for 4.0
;
error_no_proc_slots EQU 89 ; no process slots available
error_not_frozen EQU 90
err_tstovfl EQU 91 ; timer service table overflow
err_tstdup EQU 92 ; timer service table duplicate
error_no_items EQU 93 ; There were no items to operate upon
error_interrupt EQU 95 ; interrupted system call
error_fixed_vector EQU 96 ; attempt to set fixed vector
error_vector_used EQU 97 ; vector set by another process
error_global_limit EQU 98 ; more than 16 vectors set
error_vector_notset EQU 99 ; unsetting unallocated vector
error_too_many_semaphores EQU 100 ; user/sys open sem limit hit
error_sem_already_open EQU 101 ; attempt to open sem twice
error_sem_is_set EQU 102 ; non-blk waitsem found it set
error_sem_not_set EQU 103 ; tried to sig a non-owned sem
error_sem_already_owned EQU 104 ; tried to wait on owned sem
error_sem_owner_died EQU 105 ; waitsem found owner died
error_sem_user_limit EQU 106 ; too many procs have this sem
error_disk_change EQU 107 ; insert disk b into drive a
error_drive_locked EQU 108 ; drive locked by another process
error_broken_pipe EQU 109 ; write on pipe with no reader
;
; New error codes for CP/DOS
;
error_open_failed EQU 110 ; open/created failed due to
; explicit fail command
error_buffer_overflow EQU 111 ; buffer passed to system call
; is too small to hold return
; data.
error_disk_full EQU 112 ; not enough space on the disk
; (DOSNEWSIZE/w_NewSize)
error_no_more_search_handles EQU 113 ; can't allocate another search
; structure and handle.
; (DOSFINDFIRST/w_FindFirst)
error_invalid_target_handle EQU 114 ; Target handle in DOSDUPHANDLE
; is invalid
error_system_trace EQU 300 ; system trace error (DosSysTrace)
error_ras_stcp EQU 301 ; system trace command processor error
error_ras_createdd EQU 302 ; error in create dump diskette
error_invalid_procid EQU 303 ; invalid process id
error_invalid_pdelta EQU 304 ; invalid priority delta
error_not_descendent EQU 305 ; not descendent
error_request_notsm EQU 306 ; requestor not session manager
error_invalid_pclass EQU 307 ; invalid p class
error_invalid_scope EQU 308 ; invalid scope
error_invalid_threadid EQU 309 ; invalid thread id
error_msp_shrink EQU 310 ; can't shrink - MspSet
error_msp_nomem EQU 311 ; no memory - MspAlloc
error_msp_overlap EQU 312 ; overlap - MspFree
error_msp_badsize EQU 313 ; bad size parameter - MspAlloc or MspFree
error_msp_badflag EQU 314 ; bad flag parameter - MspSet
error_msp_badselector EQU 315 ; invalid MspSegment Selector
error_mr_msg_too_long EQU 316 ; message too long for buffer
error_mr_mid_not_found EQU 317 ; message id number not found
error_mr_un_acc_msgf EQU 318 ; unable to access message file
error_mr_inv_msgf_format EQU 319 ; invalid message file format
error_mr_inv_ivcount EQU 320 ; invalid insertion variable count
error_mr_un_perform EQU 321 ; unable to perform function
error_ts_wakeup EQU 322 ; unable to wake up
error_ts_time EQU 323 ; time value < 0
error_ts_notimer EQU 324 ; no times available
error_ts_ticktype EQU 325 ; tick type not 0 or 1
error_ts_handle EQU 326 ; invalid timer handle
error_ts_datetime EQU 327 ; date or time invalid
error_sys_internal EQU 328 ; internal system error
error_que_current_name EQU 329 ; current name does not exist
error_que_proc_not_owned EQU 330 ; current process does not own queue
error_que_proc_owned EQU 331 ; current process owns queue
error_que_duplicate EQU 332 ; duplicate name
error_que_element_not_exist EQU 333 ; element does not exist
error_que_no_memory EQU 334 ; inadequate memory
error_que_invalid_name EQU 335 ; invalid name
error_que_invalid_priority EQU 336 ; invalid priority parameter
error_que_invalid_handle EQU 337 ; invalid queue handle
error_que_link_not_found EQU 338 ; link not found
error_que_memory_error EQU 339 ; memory error
error_que_prev_at_end EQU 340 ; previous element was at end of queue
error_que_proc_no_access EQU 341 ; process does not have access to queues
error_que_empty EQU 342 ; queue is empty
error_que_name_not_exist EQU 343 ; queue name does not exist
error_que_not_initialized EQU 344 ; queues not initialized
error_que_unable_to_access EQU 345 ; unable to access queues
error_que_unable_to_add EQU 346 ; unable to add new queue
error_que_unable_to_init EQU 347 ; unable to initialize queues
error_vio_register EQU 348 ; vio register disallowed
error_bvs_parameter EQU 349 ; invalid parameter supplied
error_scs_call EQU 350 ; call issued by other than sm
error_scs_value EQU 351 ; value is not for save or restore
error_scs_wait_flag EQU 352 ; invalid wait flag setting
error_scs_unlock EQU 353 ; screen not previously locked
error_sm_init EQU 354 ; session mgr init failed
error_sm_sgid EQU 355 ; invalid screen group id
error_sm_nosg EQU 356 ; all screen groups in use
error_kbd_parameter EQU 357 ; invalid parameter to kbd
;
; error codes for utilities
;
error_invalid_dosver EQU 1000 ; invalid dos version
error_language_not_supported EQU 1001 ; language not supported
error_msgfile_bad_format EQU 1002 ; bad message file format
error_msgfile_bad_mid EQU 1003 ; message file has bad mid
error_msgfile_outerror EQU 1004 ; error writing output file
error_msgfile_inperror EQU 1005 ; error reading input file
error_install_failed EQU 1006 ; install failed
;
; intercomponent error codes (from 8000H or 32768)
;
error_swapper_not_active EQU 32768 ; swapper is not active
error_invalid_swapid EQU 32769 ; invalid swap identifier
error_ioerr_swap_file EQU 32770 ; i/o error on swap file
error_swap_table_full EQU 32771 ; swap control table is full
error_swap_file_full EQU 32772 ; swap file is full
error_cant_init_swapper EQU 32773 ; cannot initialize swapper
error_swapper_already_init EQU 32774 ; swapper already initialized
error_pmm_insufficient_memory EQU 32775 ; insufficient memory
error_pmm_invalid_flags EQU 32776 ; invalid flags for phys. mem.
error_pmm_invalid_address EQU 32777 ; invalid address of phys. mem.
error_pmm_lock_failed EQU 32778 ; lock of storage failed
error_pmm_unlock_failed EQU 32779 ; unlock of storage failed
;break <Interrupt 24 error codes>
error_I24_write_protect EQU 0
error_I24_bad_unit EQU 1
error_I24_not_ready EQU 2
error_I24_bad_command EQU 3
error_I24_CRC EQU 4
error_I24_bad_length EQU 5
error_I24_Seek EQU 6
error_I24_not_DOS_disk EQU 7
error_I24_sector_not_found EQU 8
error_I24_out_of_paper EQU 9
error_I24_write_fault EQU 0Ah
error_I24_read_fault EQU 0Bh
error_I24_gen_failure EQU 0Ch
error_I24_disk_change EQU 0Dh
error_I24_wrong_disk EQU 0Fh
error_I24_Uncertain_media EQU 10h
error_I24_Char_Call_Interrupted EQU 11h
; THE FOLLOWING ARE MASKS FOR THE AH REGISTER ON Int 24
Allowed_FAIL EQU 00001000B
Allowed_RETRY EQU 00010000B
Allowed_IGNORE EQU 00100000B
;NOTE: ABORT is ALWAYS allowed
I24_operation EQU 00000001B ;Z if READ,NZ if Write
I24_area EQU 00000110B ; 00 if DOS
; 01 if FAT
; 10 if root DIR
; 11 if DATA
I24_class EQU 10000000B ;Z if DISK, NZ if FAT or char
;break <GetExtendedError CLASSes ACTIONs LOCUSs>
; Values for error CLASS
errCLASS_OutRes EQU 1 ; Out of Resource
errCLASS_TempSit EQU 2 ; Temporary Situation
errCLASS_Auth EQU 3 ; Permission problem
errCLASS_Intrn EQU 4 ; Internal System Error
errCLASS_HrdFail EQU 5 ; Hardware Failure
errCLASS_SysFail EQU 6 ; System Failure
errCLASS_Apperr EQU 7 ; Application Error
errCLASS_NotFnd EQU 8 ; Not Found
errCLASS_BadFmt EQU 9 ; Bad Format
errCLASS_Locked EQU 10 ; Locked
errCLASS_Media EQU 11 ; Media Failure
errCLASS_Already EQU 12 ; Collision with Existing Item
errCLASS_Unk EQU 13 ; Unknown/other
; Values for error ACTION
errACT_Retry EQU 1 ; Retry
errACT_DlyRet EQU 2 ; Delay Retry, retry after pause
errACT_User EQU 3 ; Ask user to regive info
errACT_Abort EQU 4 ; abort with clean up
errACT_Panic EQU 5 ; abort immediately
errACT_Ignore EQU 6 ; ignore
errACT_IntRet EQU 7 ; Retry after User Intervention
; Values for error LOCUS
errLOC_Unk EQU 1 ; No appropriate value
errLOC_Disk EQU 2 ; Random Access Mass Storage
errLOC_Net EQU 3 ; Network
errLOC_SerDev EQU 4 ; Serial Device
errLOC_Mem EQU 5 ; Memory
|