1 /* -*-C-*-
2 
3 Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
4     1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
5     2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Massachusetts
6     Institute of Technology
7 
8 This file is part of MIT/GNU Scheme.
9 
10 MIT/GNU Scheme is free software; you can redistribute it and/or modify
11 it under the terms of the GNU General Public License as published by
12 the Free Software Foundation; either version 2 of the License, or (at
13 your option) any later version.
14 
15 MIT/GNU Scheme is distributed in the hope that it will be useful, but
16 WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
18 General Public License for more details.
19 
20 You should have received a copy of the GNU General Public License
21 along with MIT/GNU Scheme; if not, write to the Free Software
22 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
23 USA.
24 
25 */
26 
27 #define SCM_OS2TOP_C
28 #define INCL_WIN
29 
30 #include "scheme.h"
31 #include "os2.h"
32 #include "ostop.h"
33 #include "option.h"
34 
35 #ifndef DISABLE_SOCKET_SUPPORT
36 #  include <nerrno.h>
37 #endif
38 
39 extern void execute_reload_cleanups (void);
40 
41 extern void OS2_initialize_channels (void);
42 extern void OS2_initialize_channel_thread_messages (void);
43 extern void OS2_initialize_console (void);
44 extern void OS2_initialize_directory_reader (void);
45 extern void OS2_initialize_environment (void);
46 extern void OS2_initialize_exception_handling (void);
47 extern void OS2_initialize_keyboard_interrupts (void);
48 extern void OS2_initialize_malloc (void);
49 extern void OS2_initialize_message_queues (void);
50 extern void OS2_initialize_pm_thread (void);
51 extern void OS2_initialize_processes (void);
52 extern void OS2_initialize_scheme_thread (void);
53 extern void OS2_initialize_tty (void);
54 extern void OS2_initialize_window_primitives (void);
55 
56 extern void OS2_check_message_length_initializations (void);
57 extern void * OS2_malloc_noerror (unsigned long);
58 extern void * OS2_realloc_noerror (void *, unsigned long);
59 
60 extern void OS2_create_msg_queue (void); /* forward reference */
61 
62 extern const char * OS_Name;
63 extern const char * OS_Variant;
64 extern HMTX OS2_create_queue_lock;
65 
66 static const char * OS2_version_string (void);
67 static void initialize_locks (void);
68 
69 static int initialization_completed = 0;
70 
71 int
OS_under_emacs_p(void)72 OS_under_emacs_p (void)
73 {
74   return (option_emacs_subprocess);
75 }
76 
77 void
OS2_initialize_early(void)78 OS2_initialize_early (void)
79 {
80   initialization_completed = 0;
81   OS2_initialize_malloc ();
82   initialize_locks ();
83   OS2_create_msg_queue ();
84 }
85 
86 void
OS_initialize(void)87 OS_initialize (void)
88 {
89   (void) DosError (FERR_DISABLEEXCEPTION | FERR_DISABLEHARDERR);
90   OS2_initialize_exception_handling ();
91   OS2_initialize_message_queues ();
92   OS2_initialize_scheme_thread ();
93   OS2_initialize_pm_thread ();
94   OS2_initialize_channels ();
95   OS2_initialize_channel_thread_messages ();
96   OS2_initialize_keyboard_interrupts ();
97   OS2_initialize_console ();
98   OS2_initialize_environment ();
99   OS2_initialize_directory_reader ();
100   OS2_initialize_tty ();
101   OS2_initialize_window_primitives ();
102   OS2_initialize_processes ();
103   initialization_completed = 1;
104   /* This must be after all of the initializations that can set
105      message lengths.  */
106   OS2_check_message_length_initializations ();
107   OS_Name = "OS/2";
108   {
109     const char * version = (OS2_version_string ());
110     OS_Variant = (OS_malloc ((strlen (OS_Name)) + (strlen (version)) + 2));
111     sprintf (((char *) OS_Variant), "%s %s", OS_Name, version);
112   }
113 }
114 
115 void
OS_announcement(void)116 OS_announcement (void)
117 {
118 }
119 
120 static const char *
OS2_version_string(void)121 OS2_version_string (void)
122 {
123   ULONG major = (OS2_system_variable (QSV_VERSION_MAJOR));
124   ULONG minor = (OS2_system_variable (QSV_VERSION_MINOR));
125   char revision = (OS2_system_variable (QSV_VERSION_REVISION));
126   static char result [64];
127   char sminor [16];
128   char srev [2];
129   if ((major == 20) && (minor >= 30))
130     {
131       major = (minor - (minor % 10));
132       minor = ((minor % 10) * 10);
133     }
134   if ((minor < 10) && (minor != 0))
135     sprintf (sminor, "0%d", minor);
136   else
137     sprintf (sminor, "%d",
138 	     (((minor < 100) && ((minor % 10) == 0)) ? (minor / 10) : minor));
139   if (revision == '\0')
140     sprintf (srev, "");
141   else
142     sprintf (srev, "%c", revision);
143   sprintf (result, "%d.%s%s", (major / 10), sminor, srev);
144   return (result);
145 }
146 
147 #define PAGESIZE 4096
148 #define PAGE_PERMS (PAG_READ | PAG_WRITE | PAG_EXECUTE)
149 #define N_STACK_GUARD_PAGES 2
150 
151 #define ROUND_UP_TO_PAGE(size)						\
152   (((((size) + (PAGESIZE - 1)) / PAGESIZE) + N_STACK_GUARD_PAGES + 1)	\
153    * PAGESIZE)
154 
155 typedef struct
156 {
157   char * low;
158   unsigned int enabled_p : 1;
159 } guard_page_state_t;
160 
161 static guard_page_state_t guard_page_states [N_STACK_GUARD_PAGES];
162 
163 static void *
commit_heap_helper(void * base,unsigned long size)164 commit_heap_helper (void * base, unsigned long size)
165 {
166   /* Complicated arrangement to detect stack overflow with reasonable
167      reliability.  We allocate three extra pages past the end of the
168      stack; the first two (adjacent to the stack) are committed as
169      guard pages so that OS/2 will deliver an exception when we access
170      them.  If we overrun the first guard page, the trap handler
171      should recognize this and terminate Scheme gracefully, using the
172      second guard page as its stack.  The third page, on the other
173      side of the guard pages, is uncommitted -- if for some reason we
174      overrun the second guard page, this uncommitted page will cause a
175      hard fault that will kill Scheme right away.
176 
177      This is slightly kludgey, because we take advantage of the fact
178      that the Scheme stack occupies the low-order addresses in the
179      allocated block, and particularly that the stack grows towards
180      lower addresses.  Thus we can put the guard pages just below the
181      allocated block.  If the memory layout is altered, this will have
182      to change.  The reason for this fragile implementation is that it
183      requires the least change to the existing memory allocation
184      mechanism.  */
185   char * p = base;
186   /* Skip uncommitted page, then commit rest of memory block.  */
187   p += PAGESIZE;
188   if ((dos_set_mem (p, (size - PAGESIZE), (PAG_COMMIT | PAG_DEFAULT)))
189       != NO_ERROR)
190     return (0);
191   /* Initialize the stack guard pages and get pointer to first page
192      past the guard pages.  */
193   {
194     guard_page_state_t * scan = guard_page_states;
195     guard_page_state_t * end = (scan + N_STACK_GUARD_PAGES);
196     while (scan < end)
197       {
198 	(scan -> low) = p;
199 	(scan -> enabled_p) = 0;
200 	scan += 1;
201 	p += PAGESIZE;
202       }
203     OS2_stack_reset ();
204   }
205   return (p);
206 }
207 
208 static void
enable_stack_guard(guard_page_state_t * page,int enable_p)209 enable_stack_guard (guard_page_state_t * page, int enable_p)
210 {
211   (void) dos_set_mem ((page -> low),
212 		      PAGESIZE,
213 		      (enable_p ? (PAGE_PERMS | PAG_GUARD) : PAGE_PERMS));
214   (page -> enabled_p) = enable_p;
215 }
216 
217 int
OS2_disable_stack_guard(void * p)218 OS2_disable_stack_guard (void * p)
219 {
220   char * cp = p;
221   guard_page_state_t * scan = guard_page_states;
222   guard_page_state_t * end = (scan + N_STACK_GUARD_PAGES);
223   while (1)
224     {
225       if (scan == end)
226 	return (0);
227       if (((scan -> low) <= cp) && (cp < ((scan -> low) + PAGESIZE)))
228 	{
229 	  enable_stack_guard (scan, 0);
230 	  return (1);
231 	}
232       scan += 1;
233     }
234 }
235 
236 void
OS2_stack_reset(void)237 OS2_stack_reset (void)
238 {
239   {
240     guard_page_state_t * scan = guard_page_states;
241     guard_page_state_t * end = (scan + N_STACK_GUARD_PAGES);
242     while (1)
243       {
244 	if (scan == end)
245 	  return;
246 	if (! (scan -> enabled_p))
247 	  break;
248 	scan += 1;
249       }
250   }
251   enable_stack_guard ((&guard_page_states[1]), 0);
252   {
253     SCHEME_OBJECT * p = ((SCHEME_OBJECT *) ((guard_page_states[1]) . low));
254     (*p) = (MAKE_POINTER_OBJECT (TC_BROKEN_HEART, p));
255   }
256   {
257     guard_page_state_t * scan = guard_page_states;
258     guard_page_state_t * end = (scan + N_STACK_GUARD_PAGES);
259     while (scan < end)
260       enable_stack_guard ((scan++), 1);
261   }
262 }
263 
264 int
OS2_stack_overflowed_p(void)265 OS2_stack_overflowed_p (void)
266 {
267   SCHEME_OBJECT * p = ((SCHEME_OBJECT *) ((guard_page_states[1]) . low));
268   return
269     ((! ((guard_page_states[1]) . enabled_p))
270      && ((*p) != (MAKE_POINTER_OBJECT (TC_BROKEN_HEART, p))));
271 }
272 
273 #if 0
274 
275 /* This is an attempt to allocate Scheme's memory as early as
276    possible, in order to obtain the lowest possible addresses before
277    `malloc' grabs them for some uninteresting purpose.  However, there
278    are two reasons not to do this: first, it doesn't seem to gain any
279    advantage at present (in OS/2 Warp 3.0 with C Set++/2 2.1), because
280    the returned addresses are about the same in both cases.  Second,
281    this sometimes causes a fatal error in the debugger, apparently
282    because it cares about how much memory the debugged process has
283    allocated, even if it's not committed.  */
284 
285 static void * OS2_heap_base;
286 
287 void
288 OS2_alloc_heap (void)
289 {
290   APIRET rc
291     = (dos_alloc_mem ((& OS2_heap_base),
292 		      0x04000000,
293 		      (PAG_EXECUTE | PAG_READ | PAG_WRITE)));
294   if (rc != NO_ERROR)
295     {
296       fprintf (stderr, "Can't allocate heap memory.");
297       fflush (stderr);
298       exit (EXIT_FAILURE);
299     }
300 }
301 
302 void *
303 OS2_commit_heap (unsigned long size)
304 {
305   return (commit_heap_helper (OS2_heap_base, (ROUND_UP_TO_PAGE (size))));
306 }
307 
308 #else
309 
310 void
OS2_alloc_heap(void)311 OS2_alloc_heap (void)
312 {
313 }
314 
315 void *
OS2_commit_heap(unsigned long size)316 OS2_commit_heap (unsigned long size)
317 {
318   unsigned long actual = (ROUND_UP_TO_PAGE (size));
319   void * heap_base;
320   APIRET rc
321     = (dos_alloc_mem ((& heap_base),
322 		      actual,
323 		      (PAG_EXECUTE | PAG_READ | PAG_WRITE)));
324   return ((rc == NO_ERROR) ? (commit_heap_helper (heap_base, actual)) : 0);
325 }
326 
327 #endif
328 
329 void
OS2_create_msg_queue(void)330 OS2_create_msg_queue (void)
331 {
332   /* Create a PM message queue.  This allows us to use message boxes
333      to report fatal errors.  */
334   HAB hab = (WinInitialize (0));
335   HMQ hmq;
336   if (hab == NULLHANDLE)
337     OS2_logic_error ("Unable to initialize anchor block.");
338   hmq = (WinCreateMsgQueue (hab, 0));
339   if (hmq == NULLHANDLE)
340     OS2_logic_error ("Unable to create PM message queue.");
341   /* This tells the system that this message queue should not receive
342      WM_QUIT messages.  */
343   WinCancelShutdown (hmq, TRUE);
344 }
345 
346 void
OS2_message_box(const char * title,const char * message,int errorp)347 OS2_message_box (const char * title, const char * message, int errorp)
348 {
349   (void) WinMessageBox (HWND_DESKTOP,
350 			NULLHANDLE,
351 			((PSZ) message),
352 			((PSZ) title),
353 			0,
354 			(MB_OK | (errorp ? MB_ERROR : MB_WARNING)));
355 }
356 
357 void
OS2_exit_scheme(int value)358 OS2_exit_scheme (int value)
359 {
360   if (initialization_completed)
361     {
362 #if 0
363       OS2_channel_close_all_noerror ();
364 #endif
365     }
366   exit (value);
367 }
368 
369 void
OS_reset(void)370 OS_reset (void)
371 {
372   execute_reload_cleanups ();
373 }
374 
375 void
OS_quit(int code,int abnormal_p)376 OS_quit (int code, int abnormal_p)
377 {
378   outf_flush_console ();
379   OS_restore_external_state ();
380 }
381 
382 void
OS_save_external_state(void)383 OS_save_external_state (void)
384 {
385 }
386 
387 void
OS_save_internal_state(void)388 OS_save_internal_state (void)
389 {
390 }
391 
392 void
OS_restore_internal_state(void)393 OS_restore_internal_state (void)
394 {
395 }
396 
397 void
OS_restore_external_state(void)398 OS_restore_external_state (void)
399 {
400 }
401 
402 void
preserve_signal_mask(void)403 preserve_signal_mask (void)
404 {
405 }
406 
407 void
block_signals(void)408 block_signals (void)
409 {
410 }
411 
412 void
unblock_signals(void)413 unblock_signals (void)
414 {
415 }
416 
417 void
OS_restartable_exit(void)418 OS_restartable_exit (void)
419 {
420 }
421 
422 #if defined(__IBMC__) || defined(__WATCOMC__)
423 void
bcopy(const char * from,char * to,unsigned int n)424 bcopy (const char * from, char * to, unsigned int n)
425 {
426   FASTCOPY (from, to, n);
427 }
428 #endif
429 
430 static HMTX interrupt_registers_lock;
431 
432 static void
initialize_locks(void)433 initialize_locks (void)
434 {
435   interrupt_registers_lock = (OS2_create_mutex_semaphore (0, 0));
436   OS2_create_queue_lock = (OS2_create_mutex_semaphore (0, 0));
437 }
438 
439 void
OS_grab_interrupt_registers(void)440 OS_grab_interrupt_registers (void)
441 {
442   OS2_request_mutex_semaphore (interrupt_registers_lock);
443 }
444 
445 void
OS_release_interrupt_registers(void)446 OS_release_interrupt_registers (void)
447 {
448   OS2_release_mutex_semaphore (interrupt_registers_lock);
449 }
450 
451 /* Machine-generated procedure, do not edit: */
452 enum syserr_names
OS_error_code_to_syserr(int code)453 OS_error_code_to_syserr (int code)
454 {
455   switch (code)
456     {
457     case ERROR_INVALID_FUNCTION:	return (syserr_invalid_function);
458     case ERROR_FILE_NOT_FOUND:	return (syserr_file_not_found);
459     case ERROR_PATH_NOT_FOUND:	return (syserr_path_not_found);
460     case ERROR_TOO_MANY_OPEN_FILES:	return (syserr_too_many_open_files);
461     case ERROR_ACCESS_DENIED:	return (syserr_access_denied);
462     case ERROR_INVALID_HANDLE:	return (syserr_invalid_handle);
463     case ERROR_ARENA_TRASHED:	return (syserr_arena_trashed);
464     case ERROR_NOT_ENOUGH_MEMORY:	return (syserr_not_enough_memory);
465     case ERROR_INVALID_BLOCK:	return (syserr_invalid_block);
466     case ERROR_BAD_ENVIRONMENT:	return (syserr_bad_environment);
467     case ERROR_BAD_FORMAT:	return (syserr_bad_format);
468     case ERROR_INVALID_ACCESS:	return (syserr_invalid_access);
469     case ERROR_INVALID_DATA:	return (syserr_invalid_data);
470     case ERROR_INVALID_DRIVE:	return (syserr_invalid_drive);
471     case ERROR_CURRENT_DIRECTORY:	return (syserr_current_directory);
472     case ERROR_NOT_SAME_DEVICE:	return (syserr_not_same_device);
473     case ERROR_NO_MORE_FILES:	return (syserr_no_more_files);
474     case ERROR_WRITE_PROTECT:	return (syserr_write_protect);
475     case ERROR_BAD_UNIT:	return (syserr_bad_unit);
476     case ERROR_NOT_READY:	return (syserr_not_ready);
477     case ERROR_BAD_COMMAND:	return (syserr_bad_command);
478     case ERROR_CRC:	return (syserr_crc);
479     case ERROR_BAD_LENGTH:	return (syserr_bad_length);
480     case ERROR_SEEK:	return (syserr_seek);
481     case ERROR_NOT_DOS_DISK:	return (syserr_not_dos_disk);
482     case ERROR_SECTOR_NOT_FOUND:	return (syserr_sector_not_found);
483     case ERROR_OUT_OF_PAPER:	return (syserr_out_of_paper);
484     case ERROR_WRITE_FAULT:	return (syserr_write_fault);
485     case ERROR_READ_FAULT:	return (syserr_read_fault);
486     case ERROR_GEN_FAILURE:	return (syserr_gen_failure);
487     case ERROR_SHARING_VIOLATION:	return (syserr_sharing_violation);
488     case ERROR_LOCK_VIOLATION:	return (syserr_lock_violation);
489     case ERROR_WRONG_DISK:	return (syserr_wrong_disk);
490     case ERROR_FCB_UNAVAILABLE:	return (syserr_fcb_unavailable);
491     case ERROR_SHARING_BUFFER_EXCEEDED:	return (syserr_sharing_buffer_exceeded);
492     case ERROR_CODE_PAGE_MISMATCHED:	return (syserr_code_page_mismatched);
493     case ERROR_HANDLE_EOF:	return (syserr_handle_eof);
494     case ERROR_HANDLE_DISK_FULL:	return (syserr_handle_disk_full);
495     case ERROR_NOT_SUPPORTED:	return (syserr_not_supported);
496     case ERROR_REM_NOT_LIST:	return (syserr_rem_not_list);
497     case ERROR_DUP_NAME:	return (syserr_dup_name);
498     case ERROR_BAD_NETPATH:	return (syserr_bad_netpath);
499     case ERROR_NETWORK_BUSY:	return (syserr_network_busy);
500     case ERROR_DEV_NOT_EXIST:	return (syserr_dev_not_exist);
501     case ERROR_TOO_MANY_CMDS:	return (syserr_too_many_cmds);
502     case ERROR_ADAP_HDW_ERR:	return (syserr_adap_hdw_err);
503     case ERROR_BAD_NET_RESP:	return (syserr_bad_net_resp);
504     case ERROR_UNEXP_NET_ERR:	return (syserr_unexp_net_err);
505     case ERROR_BAD_REM_ADAP:	return (syserr_bad_rem_adap);
506     case ERROR_PRINTQ_FULL:	return (syserr_printq_full);
507     case ERROR_NO_SPOOL_SPACE:	return (syserr_no_spool_space);
508     case ERROR_PRINT_CANCELLED:	return (syserr_print_cancelled);
509     case ERROR_NETNAME_DELETED:	return (syserr_netname_deleted);
510     case ERROR_NETWORK_ACCESS_DENIED:	return (syserr_network_access_denied);
511     case ERROR_BAD_DEV_TYPE:	return (syserr_bad_dev_type);
512     case ERROR_BAD_NET_NAME:	return (syserr_bad_net_name);
513     case ERROR_TOO_MANY_NAMES:	return (syserr_too_many_names);
514     case ERROR_TOO_MANY_SESS:	return (syserr_too_many_sess);
515     case ERROR_SHARING_PAUSED:	return (syserr_sharing_paused);
516     case ERROR_REQ_NOT_ACCEP:	return (syserr_req_not_accep);
517     case ERROR_REDIR_PAUSED:	return (syserr_redir_paused);
518     case ERROR_SBCS_ATT_WRITE_PROT:	return (syserr_sbcs_att_write_prot);
519     case ERROR_SBCS_GENERAL_FAILURE:	return (syserr_sbcs_general_failure);
520     case ERROR_XGA_OUT_MEMORY:	return (syserr_xga_out_memory);
521     case ERROR_FILE_EXISTS:	return (syserr_file_exists);
522     case ERROR_DUP_FCB:	return (syserr_dup_fcb);
523     case ERROR_CANNOT_MAKE:	return (syserr_cannot_make);
524     case ERROR_FAIL_I24:	return (syserr_fail_i24);
525     case ERROR_OUT_OF_STRUCTURES:	return (syserr_out_of_structures);
526     case ERROR_ALREADY_ASSIGNED:	return (syserr_already_assigned);
527     case ERROR_INVALID_PASSWORD:	return (syserr_invalid_password);
528     case ERROR_INVALID_PARAMETER:	return (syserr_invalid_parameter);
529     case ERROR_NET_WRITE_FAULT:	return (syserr_net_write_fault);
530     case ERROR_NO_PROC_SLOTS:	return (syserr_no_proc_slots);
531     case ERROR_NOT_FROZEN:	return (syserr_not_frozen);
532     case ERR_TSTOVFL:	return (syserr_tstovfl);
533     case ERR_TSTDUP:	return (syserr_tstdup);
534     case ERROR_NO_ITEMS:	return (syserr_no_items);
535     case ERROR_INTERRUPT:	return (syserr_interrupt);
536     case ERROR_DEVICE_IN_USE:	return (syserr_device_in_use);
537     case ERROR_TOO_MANY_SEMAPHORES:	return (syserr_too_many_semaphores);
538     case ERROR_EXCL_SEM_ALREADY_OWNED:	return (syserr_excl_sem_already_owned);
539     case ERROR_SEM_IS_SET:	return (syserr_sem_is_set);
540     case ERROR_TOO_MANY_SEM_REQUESTS:	return (syserr_too_many_sem_requests);
541     case ERROR_INVALID_AT_INTERRUPT_TIME:	return (syserr_invalid_at_interrupt_time);
542     case ERROR_SEM_OWNER_DIED:	return (syserr_sem_owner_died);
543     case ERROR_SEM_USER_LIMIT:	return (syserr_sem_user_limit);
544     case ERROR_DISK_CHANGE:	return (syserr_disk_change);
545     case ERROR_DRIVE_LOCKED:	return (syserr_drive_locked);
546     case ERROR_BROKEN_PIPE:	return (syserr_broken_pipe);
547     case ERROR_OPEN_FAILED:	return (syserr_open_failed);
548     case ERROR_BUFFER_OVERFLOW:	return (syserr_buffer_overflow);
549     case ERROR_DISK_FULL:	return (syserr_disk_full);
550     case ERROR_NO_MORE_SEARCH_HANDLES:	return (syserr_no_more_search_handles);
551     case ERROR_INVALID_TARGET_HANDLE:	return (syserr_invalid_target_handle);
552     case ERROR_PROTECTION_VIOLATION:	return (syserr_protection_violation);
553     case ERROR_VIOKBD_REQUEST:	return (syserr_viokbd_request);
554     case ERROR_INVALID_CATEGORY:	return (syserr_invalid_category);
555     case ERROR_INVALID_VERIFY_SWITCH:	return (syserr_invalid_verify_switch);
556     case ERROR_BAD_DRIVER_LEVEL:	return (syserr_bad_driver_level);
557     case ERROR_CALL_NOT_IMPLEMENTED:	return (syserr_call_not_implemented);
558     case ERROR_SEM_TIMEOUT:	return (syserr_sem_timeout);
559     case ERROR_INSUFFICIENT_BUFFER:	return (syserr_insufficient_buffer);
560     case ERROR_INVALID_NAME:	return (syserr_invalid_name);
561     case ERROR_INVALID_LEVEL:	return (syserr_invalid_level);
562     case ERROR_NO_VOLUME_LABEL:	return (syserr_no_volume_label);
563     case ERROR_MOD_NOT_FOUND:	return (syserr_mod_not_found);
564     case ERROR_PROC_NOT_FOUND:	return (syserr_proc_not_found);
565     case ERROR_WAIT_NO_CHILDREN:	return (syserr_wait_no_children);
566     case ERROR_CHILD_NOT_COMPLETE:	return (syserr_child_not_complete);
567     case ERROR_DIRECT_ACCESS_HANDLE:	return (syserr_direct_access_handle);
568     case ERROR_NEGATIVE_SEEK:	return (syserr_negative_seek);
569     case ERROR_SEEK_ON_DEVICE:	return (syserr_seek_on_device);
570     case ERROR_IS_JOIN_TARGET:	return (syserr_is_join_target);
571     case ERROR_IS_JOINED:	return (syserr_is_joined);
572     case ERROR_IS_SUBSTED:	return (syserr_is_substed);
573     case ERROR_NOT_JOINED:	return (syserr_not_joined);
574     case ERROR_NOT_SUBSTED:	return (syserr_not_substed);
575     case ERROR_JOIN_TO_JOIN:	return (syserr_join_to_join);
576     case ERROR_SUBST_TO_SUBST:	return (syserr_subst_to_subst);
577     case ERROR_JOIN_TO_SUBST:	return (syserr_join_to_subst);
578     case ERROR_SUBST_TO_JOIN:	return (syserr_subst_to_join);
579     case ERROR_BUSY_DRIVE:	return (syserr_busy_drive);
580     case ERROR_SAME_DRIVE:	return (syserr_same_drive);
581     case ERROR_DIR_NOT_ROOT:	return (syserr_dir_not_root);
582     case ERROR_DIR_NOT_EMPTY:	return (syserr_dir_not_empty);
583     case ERROR_IS_SUBST_PATH:	return (syserr_is_subst_path);
584     case ERROR_IS_JOIN_PATH:	return (syserr_is_join_path);
585     case ERROR_PATH_BUSY:	return (syserr_path_busy);
586     case ERROR_IS_SUBST_TARGET:	return (syserr_is_subst_target);
587     case ERROR_SYSTEM_TRACE:	return (syserr_system_trace);
588     case ERROR_INVALID_EVENT_COUNT:	return (syserr_invalid_event_count);
589     case ERROR_TOO_MANY_MUXWAITERS:	return (syserr_too_many_muxwaiters);
590     case ERROR_INVALID_LIST_FORMAT:	return (syserr_invalid_list_format);
591     case ERROR_LABEL_TOO_LONG:	return (syserr_label_too_long);
592     case ERROR_TOO_MANY_TCBS:	return (syserr_too_many_tcbs);
593     case ERROR_SIGNAL_REFUSED:	return (syserr_signal_refused);
594     case ERROR_DISCARDED:	return (syserr_discarded);
595     case ERROR_NOT_LOCKED:	return (syserr_not_locked);
596     case ERROR_BAD_THREADID_ADDR:	return (syserr_bad_threadid_addr);
597     case ERROR_BAD_ARGUMENTS:	return (syserr_bad_arguments);
598     case ERROR_BAD_PATHNAME:	return (syserr_bad_pathname);
599     case ERROR_SIGNAL_PENDING:	return (syserr_signal_pending);
600     case ERROR_UNCERTAIN_MEDIA:	return (syserr_uncertain_media);
601     case ERROR_MAX_THRDS_REACHED:	return (syserr_max_thrds_reached);
602     case ERROR_MONITORS_NOT_SUPPORTED:	return (syserr_monitors_not_supported);
603     case ERROR_UNC_DRIVER_NOT_INSTALLED:	return (syserr_unc_driver_not_installed);
604     case ERROR_LOCK_FAILED:	return (syserr_lock_failed);
605     case ERROR_SWAPIO_FAILED:	return (syserr_swapio_failed);
606     case ERROR_SWAPIN_FAILED:	return (syserr_swapin_failed);
607     case ERROR_BUSY:	return (syserr_busy);
608     case ERROR_CANCEL_VIOLATION:	return (syserr_cancel_violation);
609     case ERROR_ATOMIC_LOCK_NOT_SUPPORTED:	return (syserr_atomic_lock_not_supported);
610     case ERROR_READ_LOCKS_NOT_SUPPORTED:	return (syserr_read_locks_not_supported);
611     case ERROR_INVALID_SEGMENT_NUMBER:	return (syserr_invalid_segment_number);
612     case ERROR_INVALID_CALLGATE:	return (syserr_invalid_callgate);
613     case ERROR_INVALID_ORDINAL:	return (syserr_invalid_ordinal);
614     case ERROR_ALREADY_EXISTS:	return (syserr_already_exists);
615     case ERROR_NO_CHILD_PROCESS:	return (syserr_no_child_process);
616     case ERROR_CHILD_ALIVE_NOWAIT:	return (syserr_child_alive_nowait);
617     case ERROR_INVALID_FLAG_NUMBER:	return (syserr_invalid_flag_number);
618     case ERROR_SEM_NOT_FOUND:	return (syserr_sem_not_found);
619     case ERROR_INVALID_STARTING_CODESEG:	return (syserr_invalid_starting_codeseg);
620     case ERROR_INVALID_STACKSEG:	return (syserr_invalid_stackseg);
621     case ERROR_INVALID_MODULETYPE:	return (syserr_invalid_moduletype);
622     case ERROR_INVALID_EXE_SIGNATURE:	return (syserr_invalid_exe_signature);
623     case ERROR_EXE_MARKED_INVALID:	return (syserr_exe_marked_invalid);
624     case ERROR_BAD_EXE_FORMAT:	return (syserr_bad_exe_format);
625 #ifdef ERROR_ITERATED_DATA_EXCEEDS_64k
626     case ERROR_ITERATED_DATA_EXCEEDS_64k:	return (syserr_iterated_data_exceeds_64k);
627 #endif
628     case ERROR_INVALID_MINALLOCSIZE:	return (syserr_invalid_minallocsize);
629     case ERROR_DYNLINK_FROM_INVALID_RING:	return (syserr_dynlink_from_invalid_ring);
630     case ERROR_IOPL_NOT_ENABLED:	return (syserr_iopl_not_enabled);
631     case ERROR_INVALID_SEGDPL:	return (syserr_invalid_segdpl);
632 #ifdef ERROR_AUTODATASEG_EXCEEDS_64k
633     case ERROR_AUTODATASEG_EXCEEDS_64k:	return (syserr_autodataseg_exceeds_64k);
634 #endif
635     case ERROR_RING2SEG_MUST_BE_MOVABLE:	return (syserr_ring2seg_must_be_movable);
636 #ifdef ERROR_RELOC_CHAIN_XEEDS_SEGLIM
637     case ERROR_RELOC_CHAIN_XEEDS_SEGLIM:	return (syserr_reloc_chain_xeeds_seglim);
638 #endif
639     case ERROR_INFLOOP_IN_RELOC_CHAIN:	return (syserr_infloop_in_reloc_chain);
640     case ERROR_ENVVAR_NOT_FOUND:	return (syserr_envvar_not_found);
641     case ERROR_NOT_CURRENT_CTRY:	return (syserr_not_current_ctry);
642     case ERROR_NO_SIGNAL_SENT:	return (syserr_no_signal_sent);
643     case ERROR_FILENAME_EXCED_RANGE:	return (syserr_filename_exced_range);
644     case ERROR_RING2_STACK_IN_USE:	return (syserr_ring2_stack_in_use);
645     case ERROR_META_EXPANSION_TOO_LONG:	return (syserr_meta_expansion_too_long);
646     case ERROR_INVALID_SIGNAL_NUMBER:	return (syserr_invalid_signal_number);
647     case ERROR_THREAD_1_INACTIVE:	return (syserr_thread_1_inactive);
648     case ERROR_INFO_NOT_AVAIL:	return (syserr_info_not_avail);
649     case ERROR_LOCKED:	return (syserr_locked);
650     case ERROR_BAD_DYNALINK:	return (syserr_bad_dynalink);
651     case ERROR_TOO_MANY_MODULES:	return (syserr_too_many_modules);
652     case ERROR_NESTING_NOT_ALLOWED:	return (syserr_nesting_not_allowed);
653     case ERROR_CANNOT_SHRINK:	return (syserr_cannot_shrink);
654     case ERROR_ZOMBIE_PROCESS:	return (syserr_zombie_process);
655     case ERROR_STACK_IN_HIGH_MEMORY:	return (syserr_stack_in_high_memory);
656     case ERROR_INVALID_EXITROUTINE_RING:	return (syserr_invalid_exitroutine_ring);
657     case ERROR_GETBUF_FAILED:	return (syserr_getbuf_failed);
658     case ERROR_FLUSHBUF_FAILED:	return (syserr_flushbuf_failed);
659     case ERROR_TRANSFER_TOO_LONG:	return (syserr_transfer_too_long);
660     case ERROR_FORCENOSWAP_FAILED:	return (syserr_forcenoswap_failed);
661     case ERROR_SMG_NO_TARGET_WINDOW:	return (syserr_smg_no_target_window);
662     case ERROR_NO_CHILDREN:	return (syserr_no_children);
663     case ERROR_INVALID_SCREEN_GROUP:	return (syserr_invalid_screen_group);
664     case ERROR_BAD_PIPE:	return (syserr_bad_pipe);
665     case ERROR_PIPE_BUSY:	return (syserr_pipe_busy);
666     case ERROR_NO_DATA:	return (syserr_no_data);
667     case ERROR_PIPE_NOT_CONNECTED:	return (syserr_pipe_not_connected);
668     case ERROR_MORE_DATA:	return (syserr_more_data);
669     case ERROR_VC_DISCONNECTED:	return (syserr_vc_disconnected);
670     case ERROR_CIRCULARITY_REQUESTED:	return (syserr_circularity_requested);
671     case ERROR_DIRECTORY_IN_CDS:	return (syserr_directory_in_cds);
672     case ERROR_INVALID_FSD_NAME:	return (syserr_invalid_fsd_name);
673     case ERROR_INVALID_PATH:	return (syserr_invalid_path);
674     case ERROR_INVALID_EA_NAME:	return (syserr_invalid_ea_name);
675     case ERROR_EA_LIST_INCONSISTENT:	return (syserr_ea_list_inconsistent);
676     case ERROR_EA_LIST_TOO_LONG:	return (syserr_ea_list_too_long);
677     case ERROR_NO_META_MATCH:	return (syserr_no_meta_match);
678     case ERROR_FINDNOTIFY_TIMEOUT:	return (syserr_findnotify_timeout);
679     case ERROR_NO_MORE_ITEMS:	return (syserr_no_more_items);
680     case ERROR_SEARCH_STRUC_REUSED:	return (syserr_search_struc_reused);
681     case ERROR_CHAR_NOT_FOUND:	return (syserr_char_not_found);
682     case ERROR_TOO_MUCH_STACK:	return (syserr_too_much_stack);
683     case ERROR_INVALID_ATTR:	return (syserr_invalid_attr);
684     case ERROR_INVALID_STARTING_RING:	return (syserr_invalid_starting_ring);
685     case ERROR_INVALID_DLL_INIT_RING:	return (syserr_invalid_dll_init_ring);
686     case ERROR_CANNOT_COPY:	return (syserr_cannot_copy);
687     case ERROR_DIRECTORY:	return (syserr_directory);
688     case ERROR_OPLOCKED_FILE:	return (syserr_oplocked_file);
689     case ERROR_OPLOCK_THREAD_EXISTS:	return (syserr_oplock_thread_exists);
690     case ERROR_VOLUME_CHANGED:	return (syserr_volume_changed);
691     case ERROR_FINDNOTIFY_HANDLE_IN_USE:	return (syserr_findnotify_handle_in_use);
692     case ERROR_FINDNOTIFY_HANDLE_CLOSED:	return (syserr_findnotify_handle_closed);
693     case ERROR_NOTIFY_OBJECT_REMOVED:	return (syserr_notify_object_removed);
694     case ERROR_ALREADY_SHUTDOWN:	return (syserr_already_shutdown);
695     case ERROR_EAS_DIDNT_FIT:	return (syserr_eas_didnt_fit);
696     case ERROR_EA_FILE_CORRUPT:	return (syserr_ea_file_corrupt);
697     case ERROR_EA_TABLE_FULL:	return (syserr_ea_table_full);
698     case ERROR_INVALID_EA_HANDLE:	return (syserr_invalid_ea_handle);
699     case ERROR_NO_CLUSTER:	return (syserr_no_cluster);
700     case ERROR_CREATE_EA_FILE:	return (syserr_create_ea_file);
701     case ERROR_CANNOT_OPEN_EA_FILE:	return (syserr_cannot_open_ea_file);
702     case ERROR_EAS_NOT_SUPPORTED:	return (syserr_eas_not_supported);
703     case ERROR_NEED_EAS_FOUND:	return (syserr_need_eas_found);
704     case ERROR_DUPLICATE_HANDLE:	return (syserr_duplicate_handle);
705     case ERROR_DUPLICATE_NAME:	return (syserr_duplicate_name);
706     case ERROR_EMPTY_MUXWAIT:	return (syserr_empty_muxwait);
707     case ERROR_MUTEX_OWNED:	return (syserr_mutex_owned);
708     case ERROR_NOT_OWNER:	return (syserr_not_owner);
709     case ERROR_PARAM_TOO_SMALL:	return (syserr_param_too_small);
710     case ERROR_TOO_MANY_HANDLES:	return (syserr_too_many_handles);
711     case ERROR_TOO_MANY_OPENS:	return (syserr_too_many_opens);
712     case ERROR_WRONG_TYPE:	return (syserr_wrong_type);
713     case ERROR_UNUSED_CODE:	return (syserr_unused_code);
714     case ERROR_THREAD_NOT_TERMINATED:	return (syserr_thread_not_terminated);
715     case ERROR_INIT_ROUTINE_FAILED:	return (syserr_init_routine_failed);
716     case ERROR_MODULE_IN_USE:	return (syserr_module_in_use);
717     case ERROR_NOT_ENOUGH_WATCHPOINTS:	return (syserr_not_enough_watchpoints);
718     case ERROR_TOO_MANY_POSTS:	return (syserr_too_many_posts);
719     case ERROR_ALREADY_POSTED:	return (syserr_already_posted);
720     case ERROR_ALREADY_RESET:	return (syserr_already_reset);
721     case ERROR_SEM_BUSY:	return (syserr_sem_busy);
722     case ERROR_INVALID_PROCID:	return (syserr_invalid_procid);
723     case ERROR_INVALID_PDELTA:	return (syserr_invalid_pdelta);
724     case ERROR_NOT_DESCENDANT:	return (syserr_not_descendant);
725     case ERROR_NOT_SESSION_MANAGER:	return (syserr_not_session_manager);
726     case ERROR_INVALID_PCLASS:	return (syserr_invalid_pclass);
727     case ERROR_INVALID_SCOPE:	return (syserr_invalid_scope);
728     case ERROR_INVALID_THREADID:	return (syserr_invalid_threadid);
729     case ERROR_DOSSUB_SHRINK:	return (syserr_dossub_shrink);
730     case ERROR_DOSSUB_NOMEM:	return (syserr_dossub_nomem);
731     case ERROR_DOSSUB_OVERLAP:	return (syserr_dossub_overlap);
732     case ERROR_DOSSUB_BADSIZE:	return (syserr_dossub_badsize);
733     case ERROR_DOSSUB_BADFLAG:	return (syserr_dossub_badflag);
734     case ERROR_DOSSUB_BADSELECTOR:	return (syserr_dossub_badselector);
735     case ERROR_MR_MSG_TOO_LONG:	return (syserr_mr_msg_too_long);
736     case ERROR_MR_MID_NOT_FOUND:	return (syserr_mr_mid_not_found);
737     case ERROR_MR_UN_ACC_MSGF:	return (syserr_mr_un_acc_msgf);
738     case ERROR_MR_INV_MSGF_FORMAT:	return (syserr_mr_inv_msgf_format);
739     case ERROR_MR_INV_IVCOUNT:	return (syserr_mr_inv_ivcount);
740     case ERROR_MR_UN_PERFORM:	return (syserr_mr_un_perform);
741     case ERROR_TS_WAKEUP:	return (syserr_ts_wakeup);
742     case ERROR_TS_SEMHANDLE:	return (syserr_ts_semhandle);
743     case ERROR_TS_NOTIMER:	return (syserr_ts_notimer);
744     case ERROR_TS_HANDLE:	return (syserr_ts_handle);
745     case ERROR_TS_DATETIME:	return (syserr_ts_datetime);
746     case ERROR_SYS_INTERNAL:	return (syserr_sys_internal);
747     case ERROR_QUE_CURRENT_NAME:	return (syserr_que_current_name);
748     case ERROR_QUE_PROC_NOT_OWNED:	return (syserr_que_proc_not_owned);
749     case ERROR_QUE_PROC_OWNED:	return (syserr_que_proc_owned);
750     case ERROR_QUE_DUPLICATE:	return (syserr_que_duplicate);
751     case ERROR_QUE_ELEMENT_NOT_EXIST:	return (syserr_que_element_not_exist);
752     case ERROR_QUE_NO_MEMORY:	return (syserr_que_no_memory);
753     case ERROR_QUE_INVALID_NAME:	return (syserr_que_invalid_name);
754     case ERROR_QUE_INVALID_PRIORITY:	return (syserr_que_invalid_priority);
755     case ERROR_QUE_INVALID_HANDLE:	return (syserr_que_invalid_handle);
756     case ERROR_QUE_LINK_NOT_FOUND:	return (syserr_que_link_not_found);
757     case ERROR_QUE_MEMORY_ERROR:	return (syserr_que_memory_error);
758     case ERROR_QUE_PREV_AT_END:	return (syserr_que_prev_at_end);
759     case ERROR_QUE_PROC_NO_ACCESS:	return (syserr_que_proc_no_access);
760     case ERROR_QUE_EMPTY:	return (syserr_que_empty);
761     case ERROR_QUE_NAME_NOT_EXIST:	return (syserr_que_name_not_exist);
762     case ERROR_QUE_NOT_INITIALIZED:	return (syserr_que_not_initialized);
763     case ERROR_QUE_UNABLE_TO_ACCESS:	return (syserr_que_unable_to_access);
764     case ERROR_QUE_UNABLE_TO_ADD:	return (syserr_que_unable_to_add);
765     case ERROR_QUE_UNABLE_TO_INIT:	return (syserr_que_unable_to_init);
766     case ERROR_VIO_INVALID_MASK:	return (syserr_vio_invalid_mask);
767     case ERROR_VIO_PTR:	return (syserr_vio_ptr);
768     case ERROR_VIO_APTR:	return (syserr_vio_aptr);
769     case ERROR_VIO_RPTR:	return (syserr_vio_rptr);
770     case ERROR_VIO_CPTR:	return (syserr_vio_cptr);
771     case ERROR_VIO_LPTR:	return (syserr_vio_lptr);
772     case ERROR_VIO_MODE:	return (syserr_vio_mode);
773     case ERROR_VIO_WIDTH:	return (syserr_vio_width);
774     case ERROR_VIO_ATTR:	return (syserr_vio_attr);
775     case ERROR_VIO_ROW:	return (syserr_vio_row);
776     case ERROR_VIO_COL:	return (syserr_vio_col);
777     case ERROR_VIO_TOPROW:	return (syserr_vio_toprow);
778     case ERROR_VIO_BOTROW:	return (syserr_vio_botrow);
779     case ERROR_VIO_RIGHTCOL:	return (syserr_vio_rightcol);
780     case ERROR_VIO_LEFTCOL:	return (syserr_vio_leftcol);
781     case ERROR_SCS_CALL:	return (syserr_scs_call);
782     case ERROR_SCS_VALUE:	return (syserr_scs_value);
783     case ERROR_VIO_WAIT_FLAG:	return (syserr_vio_wait_flag);
784     case ERROR_VIO_UNLOCK:	return (syserr_vio_unlock);
785     case ERROR_SGS_NOT_SESSION_MGR:	return (syserr_sgs_not_session_mgr);
786     case ERROR_SMG_INVALID_SESSION_ID:	return (syserr_smg_invalid_session_id);
787     case ERROR_SMG_NO_SESSIONS:	return (syserr_smg_no_sessions);
788     case ERROR_SMG_SESSION_NOT_FOUND:	return (syserr_smg_session_not_found);
789     case ERROR_SMG_SET_TITLE:	return (syserr_smg_set_title);
790     case ERROR_KBD_PARAMETER:	return (syserr_kbd_parameter);
791     case ERROR_KBD_NO_DEVICE:	return (syserr_kbd_no_device);
792     case ERROR_KBD_INVALID_IOWAIT:	return (syserr_kbd_invalid_iowait);
793     case ERROR_KBD_INVALID_LENGTH:	return (syserr_kbd_invalid_length);
794     case ERROR_KBD_INVALID_ECHO_MASK:	return (syserr_kbd_invalid_echo_mask);
795     case ERROR_KBD_INVALID_INPUT_MASK:	return (syserr_kbd_invalid_input_mask);
796     case ERROR_MON_INVALID_PARMS:	return (syserr_mon_invalid_parms);
797     case ERROR_MON_INVALID_DEVNAME:	return (syserr_mon_invalid_devname);
798     case ERROR_MON_INVALID_HANDLE:	return (syserr_mon_invalid_handle);
799     case ERROR_MON_BUFFER_TOO_SMALL:	return (syserr_mon_buffer_too_small);
800     case ERROR_MON_BUFFER_EMPTY:	return (syserr_mon_buffer_empty);
801     case ERROR_MON_DATA_TOO_LARGE:	return (syserr_mon_data_too_large);
802     case ERROR_MOUSE_NO_DEVICE:	return (syserr_mouse_no_device);
803     case ERROR_MOUSE_INV_HANDLE:	return (syserr_mouse_inv_handle);
804     case ERROR_MOUSE_INV_PARMS:	return (syserr_mouse_inv_parms);
805     case ERROR_MOUSE_CANT_RESET:	return (syserr_mouse_cant_reset);
806     case ERROR_MOUSE_DISPLAY_PARMS:	return (syserr_mouse_display_parms);
807     case ERROR_MOUSE_INV_MODULE:	return (syserr_mouse_inv_module);
808     case ERROR_MOUSE_INV_ENTRY_PT:	return (syserr_mouse_inv_entry_pt);
809     case ERROR_MOUSE_INV_MASK:	return (syserr_mouse_inv_mask);
810     case NO_ERROR_MOUSE_NO_DATA:	return (syserr_mouse_no_data);
811     case NO_ERROR_MOUSE_PTR_DRAWN:	return (syserr_mouse_ptr_drawn);
812     case ERROR_INVALID_FREQUENCY:	return (syserr_invalid_frequency);
813     case ERROR_NLS_NO_COUNTRY_FILE:	return (syserr_nls_no_country_file);
814     case ERROR_NLS_OPEN_FAILED:	return (syserr_nls_open_failed);
815 #ifdef ERROR_NO_COUNTRY_OR_CODEPAGE
816     case ERROR_NO_COUNTRY_OR_CODEPAGE:	return (syserr_no_country_or_codepage);
817 #endif
818     case ERROR_NLS_TABLE_TRUNCATED:	return (syserr_nls_table_truncated);
819     case ERROR_NLS_BAD_TYPE:	return (syserr_nls_bad_type);
820     case ERROR_NLS_TYPE_NOT_FOUND:	return (syserr_nls_type_not_found);
821     case ERROR_VIO_SMG_ONLY:	return (syserr_vio_smg_only);
822     case ERROR_VIO_INVALID_ASCIIZ:	return (syserr_vio_invalid_asciiz);
823     case ERROR_VIO_DEREGISTER:	return (syserr_vio_deregister);
824     case ERROR_VIO_NO_POPUP:	return (syserr_vio_no_popup);
825     case ERROR_VIO_EXISTING_POPUP:	return (syserr_vio_existing_popup);
826     case ERROR_KBD_SMG_ONLY:	return (syserr_kbd_smg_only);
827     case ERROR_KBD_INVALID_ASCIIZ:	return (syserr_kbd_invalid_asciiz);
828     case ERROR_KBD_INVALID_MASK:	return (syserr_kbd_invalid_mask);
829     case ERROR_KBD_REGISTER:	return (syserr_kbd_register);
830     case ERROR_KBD_DEREGISTER:	return (syserr_kbd_deregister);
831     case ERROR_MOUSE_SMG_ONLY:	return (syserr_mouse_smg_only);
832     case ERROR_MOUSE_INVALID_ASCIIZ:	return (syserr_mouse_invalid_asciiz);
833     case ERROR_MOUSE_INVALID_MASK:	return (syserr_mouse_invalid_mask);
834     case ERROR_MOUSE_REGISTER:	return (syserr_mouse_register);
835     case ERROR_MOUSE_DEREGISTER:	return (syserr_mouse_deregister);
836     case ERROR_SMG_BAD_ACTION:	return (syserr_smg_bad_action);
837     case ERROR_SMG_INVALID_CALL:	return (syserr_smg_invalid_call);
838     case ERROR_SCS_SG_NOTFOUND:	return (syserr_scs_sg_notfound);
839     case ERROR_SCS_NOT_SHELL:	return (syserr_scs_not_shell);
840     case ERROR_VIO_INVALID_PARMS:	return (syserr_vio_invalid_parms);
841     case ERROR_VIO_FUNCTION_OWNED:	return (syserr_vio_function_owned);
842     case ERROR_VIO_RETURN:	return (syserr_vio_return);
843     case ERROR_SCS_INVALID_FUNCTION:	return (syserr_scs_invalid_function);
844     case ERROR_SCS_NOT_SESSION_MGR:	return (syserr_scs_not_session_mgr);
845     case ERROR_VIO_REGISTER:	return (syserr_vio_register);
846     case ERROR_VIO_NO_MODE_THREAD:	return (syserr_vio_no_mode_thread);
847     case ERROR_VIO_NO_SAVE_RESTORE_THD:	return (syserr_vio_no_save_restore_thd);
848     case ERROR_VIO_IN_BG:	return (syserr_vio_in_bg);
849     case ERROR_VIO_ILLEGAL_DURING_POPUP:	return (syserr_vio_illegal_during_popup);
850     case ERROR_SMG_NOT_BASESHELL:	return (syserr_smg_not_baseshell);
851     case ERROR_SMG_BAD_STATUSREQ:	return (syserr_smg_bad_statusreq);
852     case ERROR_QUE_INVALID_WAIT:	return (syserr_que_invalid_wait);
853     case ERROR_VIO_LOCK:	return (syserr_vio_lock);
854     case ERROR_MOUSE_INVALID_IOWAIT:	return (syserr_mouse_invalid_iowait);
855     case ERROR_VIO_INVALID_HANDLE:	return (syserr_vio_invalid_handle);
856     case ERROR_VIO_ILLEGAL_DURING_LOCK:	return (syserr_vio_illegal_during_lock);
857     case ERROR_VIO_INVALID_LENGTH:	return (syserr_vio_invalid_length);
858     case ERROR_KBD_INVALID_HANDLE:	return (syserr_kbd_invalid_handle);
859     case ERROR_KBD_NO_MORE_HANDLE:	return (syserr_kbd_no_more_handle);
860     case ERROR_KBD_CANNOT_CREATE_KCB:	return (syserr_kbd_cannot_create_kcb);
861     case ERROR_KBD_CODEPAGE_LOAD_INCOMPL:	return (syserr_kbd_codepage_load_incompl);
862     case ERROR_KBD_INVALID_CODEPAGE_ID:	return (syserr_kbd_invalid_codepage_id);
863     case ERROR_KBD_NO_CODEPAGE_SUPPORT:	return (syserr_kbd_no_codepage_support);
864     case ERROR_KBD_FOCUS_REQUIRED:	return (syserr_kbd_focus_required);
865     case ERROR_KBD_FOCUS_ALREADY_ACTIVE:	return (syserr_kbd_focus_already_active);
866     case ERROR_KBD_KEYBOARD_BUSY:	return (syserr_kbd_keyboard_busy);
867     case ERROR_KBD_INVALID_CODEPAGE:	return (syserr_kbd_invalid_codepage);
868     case ERROR_KBD_UNABLE_TO_FOCUS:	return (syserr_kbd_unable_to_focus);
869     case ERROR_SMG_SESSION_NON_SELECT:	return (syserr_smg_session_non_select);
870     case ERROR_SMG_SESSION_NOT_FOREGRND:	return (syserr_smg_session_not_foregrnd);
871     case ERROR_SMG_SESSION_NOT_PARENT:	return (syserr_smg_session_not_parent);
872     case ERROR_SMG_INVALID_START_MODE:	return (syserr_smg_invalid_start_mode);
873     case ERROR_SMG_INVALID_RELATED_OPT:	return (syserr_smg_invalid_related_opt);
874     case ERROR_SMG_INVALID_BOND_OPTION:	return (syserr_smg_invalid_bond_option);
875     case ERROR_SMG_INVALID_SELECT_OPT:	return (syserr_smg_invalid_select_opt);
876     case ERROR_SMG_START_IN_BACKGROUND:	return (syserr_smg_start_in_background);
877     case ERROR_SMG_INVALID_STOP_OPTION:	return (syserr_smg_invalid_stop_option);
878     case ERROR_SMG_BAD_RESERVE:	return (syserr_smg_bad_reserve);
879     case ERROR_SMG_PROCESS_NOT_PARENT:	return (syserr_smg_process_not_parent);
880     case ERROR_SMG_INVALID_DATA_LENGTH:	return (syserr_smg_invalid_data_length);
881     case ERROR_SMG_NOT_BOUND:	return (syserr_smg_not_bound);
882     case ERROR_SMG_RETRY_SUB_ALLOC:	return (syserr_smg_retry_sub_alloc);
883     case ERROR_KBD_DETACHED:	return (syserr_kbd_detached);
884     case ERROR_VIO_DETACHED:	return (syserr_vio_detached);
885     case ERROR_MOU_DETACHED:	return (syserr_mou_detached);
886     case ERROR_VIO_FONT:	return (syserr_vio_font);
887     case ERROR_VIO_USER_FONT:	return (syserr_vio_user_font);
888     case ERROR_VIO_BAD_CP:	return (syserr_vio_bad_cp);
889     case ERROR_VIO_NO_CP:	return (syserr_vio_no_cp);
890     case ERROR_VIO_NA_CP:	return (syserr_vio_na_cp);
891     case ERROR_INVALID_CODE_PAGE:	return (syserr_invalid_code_page);
892     case ERROR_CPLIST_TOO_SMALL:	return (syserr_cplist_too_small);
893     case ERROR_CP_NOT_MOVED:	return (syserr_cp_not_moved);
894     case ERROR_MODE_SWITCH_INIT:	return (syserr_mode_switch_init);
895     case ERROR_CODE_PAGE_NOT_FOUND:	return (syserr_code_page_not_found);
896     case ERROR_UNEXPECTED_SLOT_RETURNED:	return (syserr_unexpected_slot_returned);
897     case ERROR_SMG_INVALID_TRACE_OPTION:	return (syserr_smg_invalid_trace_option);
898     case ERROR_VIO_INTERNAL_RESOURCE:	return (syserr_vio_internal_resource);
899     case ERROR_VIO_SHELL_INIT:	return (syserr_vio_shell_init);
900     case ERROR_SMG_NO_HARD_ERRORS:	return (syserr_smg_no_hard_errors);
901     case ERROR_CP_SWITCH_INCOMPLETE:	return (syserr_cp_switch_incomplete);
902     case ERROR_VIO_TRANSPARENT_POPUP:	return (syserr_vio_transparent_popup);
903     case ERROR_CRITSEC_OVERFLOW:	return (syserr_critsec_overflow);
904     case ERROR_CRITSEC_UNDERFLOW:	return (syserr_critsec_underflow);
905     case ERROR_VIO_BAD_RESERVE:	return (syserr_vio_bad_reserve);
906     case ERROR_INVALID_ADDRESS:	return (syserr_invalid_address);
907     case ERROR_ZERO_SELECTORS_REQUESTED:	return (syserr_zero_selectors_requested);
908     case ERROR_NOT_ENOUGH_SELECTORS_AVA:	return (syserr_not_enough_selectors_ava);
909     case ERROR_INVALID_SELECTOR:	return (syserr_invalid_selector);
910     case ERROR_SMG_INVALID_PROGRAM_TYPE:	return (syserr_smg_invalid_program_type);
911     case ERROR_SMG_INVALID_PGM_CONTROL:	return (syserr_smg_invalid_pgm_control);
912     case ERROR_SMG_INVALID_INHERIT_OPT:	return (syserr_smg_invalid_inherit_opt);
913     case ERROR_VIO_EXTENDED_SG:	return (syserr_vio_extended_sg);
914     case ERROR_VIO_NOT_PRES_MGR_SG:	return (syserr_vio_not_pres_mgr_sg);
915     case ERROR_VIO_SHIELD_OWNED:	return (syserr_vio_shield_owned);
916     case ERROR_VIO_NO_MORE_HANDLES:	return (syserr_vio_no_more_handles);
917     case ERROR_VIO_SEE_ERROR_LOG:	return (syserr_vio_see_error_log);
918     case ERROR_VIO_ASSOCIATED_DC:	return (syserr_vio_associated_dc);
919     case ERROR_KBD_NO_CONSOLE:	return (syserr_kbd_no_console);
920     case ERROR_MOUSE_NO_CONSOLE:	return (syserr_mouse_no_console);
921     case ERROR_MOUSE_INVALID_HANDLE:	return (syserr_mouse_invalid_handle);
922     case ERROR_SMG_INVALID_DEBUG_PARMS:	return (syserr_smg_invalid_debug_parms);
923     case ERROR_KBD_EXTENDED_SG:	return (syserr_kbd_extended_sg);
924     case ERROR_MOU_EXTENDED_SG:	return (syserr_mou_extended_sg);
925     case ERROR_SMG_INVALID_ICON_FILE:	return (syserr_smg_invalid_icon_file);
926     case ERROR_TRC_PID_NON_EXISTENT:	return (syserr_trc_pid_non_existent);
927     case ERROR_TRC_COUNT_ACTIVE:	return (syserr_trc_count_active);
928     case ERROR_TRC_SUSPENDED_BY_COUNT:	return (syserr_trc_suspended_by_count);
929     case ERROR_TRC_COUNT_INACTIVE:	return (syserr_trc_count_inactive);
930     case ERROR_TRC_COUNT_REACHED:	return (syserr_trc_count_reached);
931     case ERROR_NO_MC_TRACE:	return (syserr_no_mc_trace);
932     case ERROR_MC_TRACE:	return (syserr_mc_trace);
933     case ERROR_TRC_COUNT_ZERO:	return (syserr_trc_count_zero);
934     case ERROR_SMG_TOO_MANY_DDS:	return (syserr_smg_too_many_dds);
935     case ERROR_SMG_INVALID_NOTIFICATION:	return (syserr_smg_invalid_notification);
936     case ERROR_LF_INVALID_FUNCTION:	return (syserr_lf_invalid_function);
937     case ERROR_LF_NOT_AVAIL:	return (syserr_lf_not_avail);
938     case ERROR_LF_SUSPENDED:	return (syserr_lf_suspended);
939     case ERROR_LF_BUF_TOO_SMALL:	return (syserr_lf_buf_too_small);
940     case ERROR_LF_BUFFER_FULL:	return (syserr_lf_buffer_full);
941     case ERROR_LF_INVALID_RECORD:	return (syserr_lf_invalid_record);
942     case ERROR_LF_INVALID_SERVICE:	return (syserr_lf_invalid_service);
943     case ERROR_LF_GENERAL_FAILURE:	return (syserr_lf_general_failure);
944     case ERROR_LF_INVALID_ID:	return (syserr_lf_invalid_id);
945     case ERROR_LF_INVALID_HANDLE:	return (syserr_lf_invalid_handle);
946     case ERROR_LF_NO_ID_AVAIL:	return (syserr_lf_no_id_avail);
947     case ERROR_LF_TEMPLATE_AREA_FULL:	return (syserr_lf_template_area_full);
948     case ERROR_LF_ID_IN_USE:	return (syserr_lf_id_in_use);
949     case ERROR_MOU_NOT_INITIALIZED:	return (syserr_mou_not_initialized);
950     case ERROR_MOUINITREAL_DONE:	return (syserr_mouinitreal_done);
951     case ERROR_DOSSUB_CORRUPTED:	return (syserr_dossub_corrupted);
952     case ERROR_MOUSE_CALLER_NOT_SUBSYS:	return (syserr_mouse_caller_not_subsys);
953     case ERROR_ARITHMETIC_OVERFLOW:	return (syserr_arithmetic_overflow);
954     case ERROR_TMR_NO_DEVICE:	return (syserr_tmr_no_device);
955     case ERROR_TMR_INVALID_TIME:	return (syserr_tmr_invalid_time);
956     case ERROR_PVW_INVALID_ENTITY:	return (syserr_pvw_invalid_entity);
957     case ERROR_PVW_INVALID_ENTITY_TYPE:	return (syserr_pvw_invalid_entity_type);
958     case ERROR_PVW_INVALID_SPEC:	return (syserr_pvw_invalid_spec);
959     case ERROR_PVW_INVALID_RANGE_TYPE:	return (syserr_pvw_invalid_range_type);
960     case ERROR_PVW_INVALID_COUNTER_BLK:	return (syserr_pvw_invalid_counter_blk);
961     case ERROR_PVW_INVALID_TEXT_BLK:	return (syserr_pvw_invalid_text_blk);
962     case ERROR_PRF_NOT_INITIALIZED:	return (syserr_prf_not_initialized);
963     case ERROR_PRF_ALREADY_INITIALIZED:	return (syserr_prf_already_initialized);
964     case ERROR_PRF_NOT_STARTED:	return (syserr_prf_not_started);
965     case ERROR_PRF_ALREADY_STARTED:	return (syserr_prf_already_started);
966     case ERROR_PRF_TIMER_OUT_OF_RANGE:	return (syserr_prf_timer_out_of_range);
967     case ERROR_PRF_TIMER_RESET:	return (syserr_prf_timer_reset);
968     case ERROR_VDD_LOCK_USEAGE_DENIED:	return (syserr_vdd_lock_useage_denied);
969     case ERROR_TIMEOUT:	return (syserr_timeout);
970     case ERROR_VDM_DOWN:	return (syserr_vdm_down);
971     case ERROR_VDM_LIMIT:	return (syserr_vdm_limit);
972     case ERROR_VDD_NOT_FOUND:	return (syserr_vdd_not_found);
973     case ERROR_INVALID_CALLER:	return (syserr_invalid_caller);
974     case ERROR_PID_MISMATCH:	return (syserr_pid_mismatch);
975     case ERROR_INVALID_VDD_HANDLE:	return (syserr_invalid_vdd_handle);
976     case ERROR_VLPT_NO_SPOOLER:	return (syserr_vlpt_no_spooler);
977     case ERROR_VCOM_DEVICE_BUSY:	return (syserr_vcom_device_busy);
978     case ERROR_VLPT_DEVICE_BUSY:	return (syserr_vlpt_device_busy);
979     case ERROR_NESTING_TOO_DEEP:	return (syserr_nesting_too_deep);
980     case ERROR_VDD_MISSING:	return (syserr_vdd_missing);
981     case ERROR_BIDI_INVALID_LENGTH:	return (syserr_bidi_invalid_length);
982     case ERROR_BIDI_INVALID_INCREMENT:	return (syserr_bidi_invalid_increment);
983     case ERROR_BIDI_INVALID_COMBINATION:	return (syserr_bidi_invalid_combination);
984     case ERROR_BIDI_INVALID_RESERVED:	return (syserr_bidi_invalid_reserved);
985     case ERROR_BIDI_INVALID_EFFECT:	return (syserr_bidi_invalid_effect);
986     case ERROR_BIDI_INVALID_CSDREC:	return (syserr_bidi_invalid_csdrec);
987     case ERROR_BIDI_INVALID_CSDSTATE:	return (syserr_bidi_invalid_csdstate);
988     case ERROR_BIDI_INVALID_LEVEL:	return (syserr_bidi_invalid_level);
989     case ERROR_BIDI_INVALID_TYPE_SUPPORT:	return (syserr_bidi_invalid_type_support);
990     case ERROR_BIDI_INVALID_ORIENTATION:	return (syserr_bidi_invalid_orientation);
991     case ERROR_BIDI_INVALID_NUM_SHAPE:	return (syserr_bidi_invalid_num_shape);
992     case ERROR_BIDI_INVALID_CSD:	return (syserr_bidi_invalid_csd);
993     case ERROR_BIDI_NO_SUPPORT:	return (syserr_bidi_no_support);
994     case NO_ERROR_BIDI_RW_INCOMPLETE:	return (syserr_bidi_rw_incomplete);
995     case ERROR_IMP_INVALID_PARM:	return (syserr_imp_invalid_parm);
996     case ERROR_IMP_INVALID_LENGTH:	return (syserr_imp_invalid_length);
997 #ifdef MSG_HPFS_DISK_ERROR_WARN
998     case MSG_HPFS_DISK_ERROR_WARN:	return (syserr_hpfs_disk_error_warn);
999 #endif
1000     case ERROR_MON_BAD_BUFFER:	return (syserr_mon_bad_buffer);
1001     case ERROR_MODULE_CORRUPTED:	return (syserr_module_corrupted);
1002     case ERROR_SM_OUTOF_SWAPFILE:	return (syserr_sm_outof_swapfile);
1003     case ERROR_LF_TIMEOUT:	return (syserr_lf_timeout);
1004     case ERROR_LF_SUSPEND_SUCCESS:	return (syserr_lf_suspend_success);
1005     case ERROR_LF_RESUME_SUCCESS:	return (syserr_lf_resume_success);
1006     case ERROR_LF_REDIRECT_SUCCESS:	return (syserr_lf_redirect_success);
1007     case ERROR_LF_REDIRECT_FAILURE:	return (syserr_lf_redirect_failure);
1008     case ERROR_SWAPPER_NOT_ACTIVE:	return (syserr_swapper_not_active);
1009     case ERROR_INVALID_SWAPID:	return (syserr_invalid_swapid);
1010     case ERROR_IOERR_SWAP_FILE:	return (syserr_ioerr_swap_file);
1011     case ERROR_SWAP_TABLE_FULL:	return (syserr_swap_table_full);
1012     case ERROR_SWAP_FILE_FULL:	return (syserr_swap_file_full);
1013     case ERROR_CANT_INIT_SWAPPER:	return (syserr_cant_init_swapper);
1014     case ERROR_SWAPPER_ALREADY_INIT:	return (syserr_swapper_already_init);
1015     case ERROR_PMM_INSUFFICIENT_MEMORY:	return (syserr_pmm_insufficient_memory);
1016     case ERROR_PMM_INVALID_FLAGS:	return (syserr_pmm_invalid_flags);
1017     case ERROR_PMM_INVALID_ADDRESS:	return (syserr_pmm_invalid_address);
1018     case ERROR_PMM_LOCK_FAILED:	return (syserr_pmm_lock_failed);
1019     case ERROR_PMM_UNLOCK_FAILED:	return (syserr_pmm_unlock_failed);
1020     case ERROR_PMM_MOVE_INCOMPLETE:	return (syserr_pmm_move_incomplete);
1021     case ERROR_UCOM_DRIVE_RENAMED:	return (syserr_ucom_drive_renamed);
1022     case ERROR_UCOM_FILENAME_TRUNCATED:	return (syserr_ucom_filename_truncated);
1023     case ERROR_UCOM_BUFFER_LENGTH:	return (syserr_ucom_buffer_length);
1024     case ERROR_MON_CHAIN_HANDLE:	return (syserr_mon_chain_handle);
1025     case ERROR_MON_NOT_REGISTERED:	return (syserr_mon_not_registered);
1026     case ERROR_SMG_ALREADY_TOP:	return (syserr_smg_already_top);
1027     case ERROR_PMM_ARENA_MODIFIED:	return (syserr_pmm_arena_modified);
1028     case ERROR_SMG_PRINTER_OPEN:	return (syserr_smg_printer_open);
1029     case ERROR_PMM_SET_FLAGS_FAILED:	return (syserr_pmm_set_flags_failed);
1030     case ERROR_INVALID_DOS_DD:	return (syserr_invalid_dos_dd);
1031     case ERROR_BLOCKED:	return (syserr_blocked);
1032     case ERROR_NOBLOCK:	return (syserr_noblock);
1033     case ERROR_INSTANCE_SHARED:	return (syserr_instance_shared);
1034     case ERROR_NO_OBJECT:	return (syserr_no_object);
1035     case ERROR_PARTIAL_ATTACH:	return (syserr_partial_attach);
1036     case ERROR_INCACHE:	return (syserr_incache);
1037     case ERROR_SWAP_IO_PROBLEMS:	return (syserr_swap_io_problems);
1038     case ERROR_CROSSES_OBJECT_BOUNDARY:	return (syserr_crosses_object_boundary);
1039     case ERROR_LONGLOCK:	return (syserr_longlock);
1040     case ERROR_SHORTLOCK:	return (syserr_shortlock);
1041     case ERROR_UVIRTLOCK:	return (syserr_uvirtlock);
1042     case ERROR_ALIASLOCK:	return (syserr_aliaslock);
1043     case ERROR_ALIAS:	return (syserr_alias);
1044     case ERROR_NO_MORE_HANDLES:	return (syserr_no_more_handles);
1045     case ERROR_SCAN_TERMINATED:	return (syserr_scan_terminated);
1046     case ERROR_TERMINATOR_NOT_FOUND:	return (syserr_terminator_not_found);
1047     case ERROR_NOT_DIRECT_CHILD:	return (syserr_not_direct_child);
1048     case ERROR_DELAY_FREE:	return (syserr_delay_free);
1049     case ERROR_GUARDPAGE:	return (syserr_guardpage);
1050     case ERROR_SWAPERROR:	return (syserr_swaperror);
1051     case ERROR_LDRERROR:	return (syserr_ldrerror);
1052     case ERROR_NOMEMORY:	return (syserr_nomemory);
1053     case ERROR_NOACCESS:	return (syserr_noaccess);
1054     case ERROR_NO_DLL_TERM:	return (syserr_no_dll_term);
1055     case ERROR_CPSIO_CODE_PAGE_INVALID:	return (syserr_cpsio_code_page_invalid);
1056     case ERROR_CPSIO_NO_SPOOLER:	return (syserr_cpsio_no_spooler);
1057     case ERROR_CPSIO_FONT_ID_INVALID:	return (syserr_cpsio_font_id_invalid);
1058     case ERROR_CPSIO_INTERNAL_ERROR:	return (syserr_cpsio_internal_error);
1059     case ERROR_CPSIO_INVALID_PTR_NAME:	return (syserr_cpsio_invalid_ptr_name);
1060     case ERROR_CPSIO_NOT_ACTIVE:	return (syserr_cpsio_not_active);
1061     case ERROR_CPSIO_PID_FULL:	return (syserr_cpsio_pid_full);
1062     case ERROR_CPSIO_PID_NOT_FOUND:	return (syserr_cpsio_pid_not_found);
1063     case ERROR_CPSIO_READ_CTL_SEQ:	return (syserr_cpsio_read_ctl_seq);
1064     case ERROR_CPSIO_READ_FNT_DEF:	return (syserr_cpsio_read_fnt_def);
1065     case ERROR_CPSIO_WRITE_ERROR:	return (syserr_cpsio_write_error);
1066     case ERROR_CPSIO_WRITE_FULL_ERROR:	return (syserr_cpsio_write_full_error);
1067     case ERROR_CPSIO_WRITE_HANDLE_BAD:	return (syserr_cpsio_write_handle_bad);
1068     case ERROR_CPSIO_SWIT_LOAD:	return (syserr_cpsio_swit_load);
1069     case ERROR_CPSIO_INV_COMMAND:	return (syserr_cpsio_inv_command);
1070     case ERROR_CPSIO_NO_FONT_SWIT:	return (syserr_cpsio_no_font_swit);
1071     case ERROR_ENTRY_IS_CALLGATE:	return (syserr_entry_is_callgate);
1072 
1073 #ifndef DISABLE_SOCKET_SUPPORT
1074     case SOCEPERM:		return (syserr_socket_perm);
1075     case SOCESRCH:		return (syserr_socket_srch);
1076     case SOCEINTR:		return (syserr_socket_intr);
1077     case SOCENXIO:		return (syserr_socket_nxio);
1078     case SOCEBADF:		return (syserr_socket_badf);
1079     case SOCEACCES:		return (syserr_socket_acces);
1080     case SOCEFAULT:		return (syserr_socket_fault);
1081     case SOCEINVAL:		return (syserr_socket_inval);
1082     case SOCEMFILE:		return (syserr_socket_mfile);
1083     case SOCEPIPE:		return (syserr_socket_pipe);
1084     case SOCEOS2ERR:		return (syserr_socket_os2err);
1085     case SOCEWOULDBLOCK:	return (syserr_socket_wouldblock);
1086     case SOCEINPROGRESS:	return (syserr_socket_inprogress);
1087     case SOCEALREADY:		return (syserr_socket_already);
1088     case SOCENOTSOCK:		return (syserr_socket_notsock);
1089     case SOCEDESTADDRREQ:	return (syserr_socket_destaddrreq);
1090     case SOCEMSGSIZE:		return (syserr_socket_msgsize);
1091     case SOCEPROTOTYPE:		return (syserr_socket_prototype);
1092     case SOCENOPROTOOPT:	return (syserr_socket_noprotoopt);
1093     case SOCEPROTONOSUPPORT:	return (syserr_socket_protonosupport);
1094     case SOCESOCKTNOSUPPORT:	return (syserr_socket_socktnosupport);
1095     case SOCEOPNOTSUPP:		return (syserr_socket_opnotsupp);
1096     case SOCEPFNOSUPPORT:	return (syserr_socket_pfnosupport);
1097     case SOCEAFNOSUPPORT:	return (syserr_socket_afnosupport);
1098     case SOCEADDRINUSE:		return (syserr_socket_addrinuse);
1099     case SOCEADDRNOTAVAIL:	return (syserr_socket_addrnotavail);
1100     case SOCENETDOWN:		return (syserr_socket_netdown);
1101     case SOCENETUNREACH:	return (syserr_socket_netunreach);
1102     case SOCENETRESET:		return (syserr_socket_netreset);
1103     case SOCECONNABORTED:	return (syserr_socket_connaborted);
1104     case SOCECONNRESET:		return (syserr_socket_connreset);
1105     case SOCENOBUFS:		return (syserr_socket_nobufs);
1106     case SOCEISCONN:		return (syserr_socket_isconn);
1107     case SOCENOTCONN:		return (syserr_socket_notconn);
1108     case SOCESHUTDOWN:		return (syserr_socket_shutdown);
1109     case SOCETOOMANYREFS:	return (syserr_socket_toomanyrefs);
1110     case SOCETIMEDOUT:		return (syserr_socket_timedout);
1111     case SOCECONNREFUSED:	return (syserr_socket_connrefused);
1112     case SOCELOOP:		return (syserr_socket_loop);
1113     case SOCENAMETOOLONG:	return (syserr_socket_nametoolong);
1114     case SOCEHOSTDOWN:		return (syserr_socket_hostdown);
1115     case SOCEHOSTUNREACH:	return (syserr_socket_hostunreach);
1116     case SOCENOTEMPTY:		return (syserr_socket_notempty);
1117 #endif /* not DISABLE_SOCKET_SUPPORT */
1118 
1119     default:	return (syserr_unknown);
1120     }
1121 }
1122 
1123 /* Machine-generated procedure, do not edit: */
1124 static APIRET
syserr_to_error_code(enum syserr_names syserr)1125 syserr_to_error_code (enum syserr_names syserr)
1126 {
1127   switch (syserr)
1128     {
1129     case syserr_invalid_function:	return (ERROR_INVALID_FUNCTION);
1130     case syserr_file_not_found:	return (ERROR_FILE_NOT_FOUND);
1131     case syserr_path_not_found:	return (ERROR_PATH_NOT_FOUND);
1132     case syserr_too_many_open_files:	return (ERROR_TOO_MANY_OPEN_FILES);
1133     case syserr_access_denied:	return (ERROR_ACCESS_DENIED);
1134     case syserr_invalid_handle:	return (ERROR_INVALID_HANDLE);
1135     case syserr_arena_trashed:	return (ERROR_ARENA_TRASHED);
1136     case syserr_not_enough_memory:	return (ERROR_NOT_ENOUGH_MEMORY);
1137     case syserr_invalid_block:	return (ERROR_INVALID_BLOCK);
1138     case syserr_bad_environment:	return (ERROR_BAD_ENVIRONMENT);
1139     case syserr_bad_format:	return (ERROR_BAD_FORMAT);
1140     case syserr_invalid_access:	return (ERROR_INVALID_ACCESS);
1141     case syserr_invalid_data:	return (ERROR_INVALID_DATA);
1142     case syserr_invalid_drive:	return (ERROR_INVALID_DRIVE);
1143     case syserr_current_directory:	return (ERROR_CURRENT_DIRECTORY);
1144     case syserr_not_same_device:	return (ERROR_NOT_SAME_DEVICE);
1145     case syserr_no_more_files:	return (ERROR_NO_MORE_FILES);
1146     case syserr_write_protect:	return (ERROR_WRITE_PROTECT);
1147     case syserr_bad_unit:	return (ERROR_BAD_UNIT);
1148     case syserr_not_ready:	return (ERROR_NOT_READY);
1149     case syserr_bad_command:	return (ERROR_BAD_COMMAND);
1150     case syserr_crc:	return (ERROR_CRC);
1151     case syserr_bad_length:	return (ERROR_BAD_LENGTH);
1152     case syserr_seek:	return (ERROR_SEEK);
1153     case syserr_not_dos_disk:	return (ERROR_NOT_DOS_DISK);
1154     case syserr_sector_not_found:	return (ERROR_SECTOR_NOT_FOUND);
1155     case syserr_out_of_paper:	return (ERROR_OUT_OF_PAPER);
1156     case syserr_write_fault:	return (ERROR_WRITE_FAULT);
1157     case syserr_read_fault:	return (ERROR_READ_FAULT);
1158     case syserr_gen_failure:	return (ERROR_GEN_FAILURE);
1159     case syserr_sharing_violation:	return (ERROR_SHARING_VIOLATION);
1160     case syserr_lock_violation:	return (ERROR_LOCK_VIOLATION);
1161     case syserr_wrong_disk:	return (ERROR_WRONG_DISK);
1162     case syserr_fcb_unavailable:	return (ERROR_FCB_UNAVAILABLE);
1163     case syserr_sharing_buffer_exceeded:	return (ERROR_SHARING_BUFFER_EXCEEDED);
1164     case syserr_code_page_mismatched:	return (ERROR_CODE_PAGE_MISMATCHED);
1165     case syserr_handle_eof:	return (ERROR_HANDLE_EOF);
1166     case syserr_handle_disk_full:	return (ERROR_HANDLE_DISK_FULL);
1167     case syserr_not_supported:	return (ERROR_NOT_SUPPORTED);
1168     case syserr_rem_not_list:	return (ERROR_REM_NOT_LIST);
1169     case syserr_dup_name:	return (ERROR_DUP_NAME);
1170     case syserr_bad_netpath:	return (ERROR_BAD_NETPATH);
1171     case syserr_network_busy:	return (ERROR_NETWORK_BUSY);
1172     case syserr_dev_not_exist:	return (ERROR_DEV_NOT_EXIST);
1173     case syserr_too_many_cmds:	return (ERROR_TOO_MANY_CMDS);
1174     case syserr_adap_hdw_err:	return (ERROR_ADAP_HDW_ERR);
1175     case syserr_bad_net_resp:	return (ERROR_BAD_NET_RESP);
1176     case syserr_unexp_net_err:	return (ERROR_UNEXP_NET_ERR);
1177     case syserr_bad_rem_adap:	return (ERROR_BAD_REM_ADAP);
1178     case syserr_printq_full:	return (ERROR_PRINTQ_FULL);
1179     case syserr_no_spool_space:	return (ERROR_NO_SPOOL_SPACE);
1180     case syserr_print_cancelled:	return (ERROR_PRINT_CANCELLED);
1181     case syserr_netname_deleted:	return (ERROR_NETNAME_DELETED);
1182     case syserr_network_access_denied:	return (ERROR_NETWORK_ACCESS_DENIED);
1183     case syserr_bad_dev_type:	return (ERROR_BAD_DEV_TYPE);
1184     case syserr_bad_net_name:	return (ERROR_BAD_NET_NAME);
1185     case syserr_too_many_names:	return (ERROR_TOO_MANY_NAMES);
1186     case syserr_too_many_sess:	return (ERROR_TOO_MANY_SESS);
1187     case syserr_sharing_paused:	return (ERROR_SHARING_PAUSED);
1188     case syserr_req_not_accep:	return (ERROR_REQ_NOT_ACCEP);
1189     case syserr_redir_paused:	return (ERROR_REDIR_PAUSED);
1190     case syserr_sbcs_att_write_prot:	return (ERROR_SBCS_ATT_WRITE_PROT);
1191     case syserr_sbcs_general_failure:	return (ERROR_SBCS_GENERAL_FAILURE);
1192     case syserr_xga_out_memory:	return (ERROR_XGA_OUT_MEMORY);
1193     case syserr_file_exists:	return (ERROR_FILE_EXISTS);
1194     case syserr_dup_fcb:	return (ERROR_DUP_FCB);
1195     case syserr_cannot_make:	return (ERROR_CANNOT_MAKE);
1196     case syserr_fail_i24:	return (ERROR_FAIL_I24);
1197     case syserr_out_of_structures:	return (ERROR_OUT_OF_STRUCTURES);
1198     case syserr_already_assigned:	return (ERROR_ALREADY_ASSIGNED);
1199     case syserr_invalid_password:	return (ERROR_INVALID_PASSWORD);
1200     case syserr_invalid_parameter:	return (ERROR_INVALID_PARAMETER);
1201     case syserr_net_write_fault:	return (ERROR_NET_WRITE_FAULT);
1202     case syserr_no_proc_slots:	return (ERROR_NO_PROC_SLOTS);
1203     case syserr_not_frozen:	return (ERROR_NOT_FROZEN);
1204     case syserr_tstovfl:	return (ERR_TSTOVFL);
1205     case syserr_tstdup:	return (ERR_TSTDUP);
1206     case syserr_no_items:	return (ERROR_NO_ITEMS);
1207     case syserr_interrupt:	return (ERROR_INTERRUPT);
1208     case syserr_device_in_use:	return (ERROR_DEVICE_IN_USE);
1209     case syserr_too_many_semaphores:	return (ERROR_TOO_MANY_SEMAPHORES);
1210     case syserr_excl_sem_already_owned:	return (ERROR_EXCL_SEM_ALREADY_OWNED);
1211     case syserr_sem_is_set:	return (ERROR_SEM_IS_SET);
1212     case syserr_too_many_sem_requests:	return (ERROR_TOO_MANY_SEM_REQUESTS);
1213     case syserr_invalid_at_interrupt_time:	return (ERROR_INVALID_AT_INTERRUPT_TIME);
1214     case syserr_sem_owner_died:	return (ERROR_SEM_OWNER_DIED);
1215     case syserr_sem_user_limit:	return (ERROR_SEM_USER_LIMIT);
1216     case syserr_disk_change:	return (ERROR_DISK_CHANGE);
1217     case syserr_drive_locked:	return (ERROR_DRIVE_LOCKED);
1218     case syserr_broken_pipe:	return (ERROR_BROKEN_PIPE);
1219     case syserr_open_failed:	return (ERROR_OPEN_FAILED);
1220     case syserr_buffer_overflow:	return (ERROR_BUFFER_OVERFLOW);
1221     case syserr_disk_full:	return (ERROR_DISK_FULL);
1222     case syserr_no_more_search_handles:	return (ERROR_NO_MORE_SEARCH_HANDLES);
1223     case syserr_invalid_target_handle:	return (ERROR_INVALID_TARGET_HANDLE);
1224     case syserr_protection_violation:	return (ERROR_PROTECTION_VIOLATION);
1225     case syserr_viokbd_request:	return (ERROR_VIOKBD_REQUEST);
1226     case syserr_invalid_category:	return (ERROR_INVALID_CATEGORY);
1227     case syserr_invalid_verify_switch:	return (ERROR_INVALID_VERIFY_SWITCH);
1228     case syserr_bad_driver_level:	return (ERROR_BAD_DRIVER_LEVEL);
1229     case syserr_call_not_implemented:	return (ERROR_CALL_NOT_IMPLEMENTED);
1230     case syserr_sem_timeout:	return (ERROR_SEM_TIMEOUT);
1231     case syserr_insufficient_buffer:	return (ERROR_INSUFFICIENT_BUFFER);
1232     case syserr_invalid_name:	return (ERROR_INVALID_NAME);
1233     case syserr_invalid_level:	return (ERROR_INVALID_LEVEL);
1234     case syserr_no_volume_label:	return (ERROR_NO_VOLUME_LABEL);
1235     case syserr_mod_not_found:	return (ERROR_MOD_NOT_FOUND);
1236     case syserr_proc_not_found:	return (ERROR_PROC_NOT_FOUND);
1237     case syserr_wait_no_children:	return (ERROR_WAIT_NO_CHILDREN);
1238     case syserr_child_not_complete:	return (ERROR_CHILD_NOT_COMPLETE);
1239     case syserr_direct_access_handle:	return (ERROR_DIRECT_ACCESS_HANDLE);
1240     case syserr_negative_seek:	return (ERROR_NEGATIVE_SEEK);
1241     case syserr_seek_on_device:	return (ERROR_SEEK_ON_DEVICE);
1242     case syserr_is_join_target:	return (ERROR_IS_JOIN_TARGET);
1243     case syserr_is_joined:	return (ERROR_IS_JOINED);
1244     case syserr_is_substed:	return (ERROR_IS_SUBSTED);
1245     case syserr_not_joined:	return (ERROR_NOT_JOINED);
1246     case syserr_not_substed:	return (ERROR_NOT_SUBSTED);
1247     case syserr_join_to_join:	return (ERROR_JOIN_TO_JOIN);
1248     case syserr_subst_to_subst:	return (ERROR_SUBST_TO_SUBST);
1249     case syserr_join_to_subst:	return (ERROR_JOIN_TO_SUBST);
1250     case syserr_subst_to_join:	return (ERROR_SUBST_TO_JOIN);
1251     case syserr_busy_drive:	return (ERROR_BUSY_DRIVE);
1252     case syserr_same_drive:	return (ERROR_SAME_DRIVE);
1253     case syserr_dir_not_root:	return (ERROR_DIR_NOT_ROOT);
1254     case syserr_dir_not_empty:	return (ERROR_DIR_NOT_EMPTY);
1255     case syserr_is_subst_path:	return (ERROR_IS_SUBST_PATH);
1256     case syserr_is_join_path:	return (ERROR_IS_JOIN_PATH);
1257     case syserr_path_busy:	return (ERROR_PATH_BUSY);
1258     case syserr_is_subst_target:	return (ERROR_IS_SUBST_TARGET);
1259     case syserr_system_trace:	return (ERROR_SYSTEM_TRACE);
1260     case syserr_invalid_event_count:	return (ERROR_INVALID_EVENT_COUNT);
1261     case syserr_too_many_muxwaiters:	return (ERROR_TOO_MANY_MUXWAITERS);
1262     case syserr_invalid_list_format:	return (ERROR_INVALID_LIST_FORMAT);
1263     case syserr_label_too_long:	return (ERROR_LABEL_TOO_LONG);
1264     case syserr_too_many_tcbs:	return (ERROR_TOO_MANY_TCBS);
1265     case syserr_signal_refused:	return (ERROR_SIGNAL_REFUSED);
1266     case syserr_discarded:	return (ERROR_DISCARDED);
1267     case syserr_not_locked:	return (ERROR_NOT_LOCKED);
1268     case syserr_bad_threadid_addr:	return (ERROR_BAD_THREADID_ADDR);
1269     case syserr_bad_arguments:	return (ERROR_BAD_ARGUMENTS);
1270     case syserr_bad_pathname:	return (ERROR_BAD_PATHNAME);
1271     case syserr_signal_pending:	return (ERROR_SIGNAL_PENDING);
1272     case syserr_uncertain_media:	return (ERROR_UNCERTAIN_MEDIA);
1273     case syserr_max_thrds_reached:	return (ERROR_MAX_THRDS_REACHED);
1274     case syserr_monitors_not_supported:	return (ERROR_MONITORS_NOT_SUPPORTED);
1275     case syserr_unc_driver_not_installed:	return (ERROR_UNC_DRIVER_NOT_INSTALLED);
1276     case syserr_lock_failed:	return (ERROR_LOCK_FAILED);
1277     case syserr_swapio_failed:	return (ERROR_SWAPIO_FAILED);
1278     case syserr_swapin_failed:	return (ERROR_SWAPIN_FAILED);
1279     case syserr_busy:	return (ERROR_BUSY);
1280     case syserr_cancel_violation:	return (ERROR_CANCEL_VIOLATION);
1281     case syserr_atomic_lock_not_supported:	return (ERROR_ATOMIC_LOCK_NOT_SUPPORTED);
1282     case syserr_read_locks_not_supported:	return (ERROR_READ_LOCKS_NOT_SUPPORTED);
1283     case syserr_invalid_segment_number:	return (ERROR_INVALID_SEGMENT_NUMBER);
1284     case syserr_invalid_callgate:	return (ERROR_INVALID_CALLGATE);
1285     case syserr_invalid_ordinal:	return (ERROR_INVALID_ORDINAL);
1286     case syserr_already_exists:	return (ERROR_ALREADY_EXISTS);
1287     case syserr_no_child_process:	return (ERROR_NO_CHILD_PROCESS);
1288     case syserr_child_alive_nowait:	return (ERROR_CHILD_ALIVE_NOWAIT);
1289     case syserr_invalid_flag_number:	return (ERROR_INVALID_FLAG_NUMBER);
1290     case syserr_sem_not_found:	return (ERROR_SEM_NOT_FOUND);
1291     case syserr_invalid_starting_codeseg:	return (ERROR_INVALID_STARTING_CODESEG);
1292     case syserr_invalid_stackseg:	return (ERROR_INVALID_STACKSEG);
1293     case syserr_invalid_moduletype:	return (ERROR_INVALID_MODULETYPE);
1294     case syserr_invalid_exe_signature:	return (ERROR_INVALID_EXE_SIGNATURE);
1295     case syserr_exe_marked_invalid:	return (ERROR_EXE_MARKED_INVALID);
1296     case syserr_bad_exe_format:	return (ERROR_BAD_EXE_FORMAT);
1297 #ifdef ERROR_ITERATED_DATA_EXCEEDS_64k
1298     case syserr_iterated_data_exceeds_64k:	return (ERROR_ITERATED_DATA_EXCEEDS_64k);
1299 #endif
1300     case syserr_invalid_minallocsize:	return (ERROR_INVALID_MINALLOCSIZE);
1301     case syserr_dynlink_from_invalid_ring:	return (ERROR_DYNLINK_FROM_INVALID_RING);
1302     case syserr_iopl_not_enabled:	return (ERROR_IOPL_NOT_ENABLED);
1303     case syserr_invalid_segdpl:	return (ERROR_INVALID_SEGDPL);
1304 #ifdef ERROR_AUTODATASEG_EXCEEDS_64k
1305     case syserr_autodataseg_exceeds_64k:	return (ERROR_AUTODATASEG_EXCEEDS_64k);
1306 #endif
1307     case syserr_ring2seg_must_be_movable:	return (ERROR_RING2SEG_MUST_BE_MOVABLE);
1308 #ifdef ERROR_RELOC_CHAIN_XEEDS_SEGLIM
1309     case syserr_reloc_chain_xeeds_seglim:	return (ERROR_RELOC_CHAIN_XEEDS_SEGLIM);
1310 #endif
1311     case syserr_infloop_in_reloc_chain:	return (ERROR_INFLOOP_IN_RELOC_CHAIN);
1312     case syserr_envvar_not_found:	return (ERROR_ENVVAR_NOT_FOUND);
1313     case syserr_not_current_ctry:	return (ERROR_NOT_CURRENT_CTRY);
1314     case syserr_no_signal_sent:	return (ERROR_NO_SIGNAL_SENT);
1315     case syserr_filename_exced_range:	return (ERROR_FILENAME_EXCED_RANGE);
1316     case syserr_ring2_stack_in_use:	return (ERROR_RING2_STACK_IN_USE);
1317     case syserr_meta_expansion_too_long:	return (ERROR_META_EXPANSION_TOO_LONG);
1318     case syserr_invalid_signal_number:	return (ERROR_INVALID_SIGNAL_NUMBER);
1319     case syserr_thread_1_inactive:	return (ERROR_THREAD_1_INACTIVE);
1320     case syserr_info_not_avail:	return (ERROR_INFO_NOT_AVAIL);
1321     case syserr_locked:	return (ERROR_LOCKED);
1322     case syserr_bad_dynalink:	return (ERROR_BAD_DYNALINK);
1323     case syserr_too_many_modules:	return (ERROR_TOO_MANY_MODULES);
1324     case syserr_nesting_not_allowed:	return (ERROR_NESTING_NOT_ALLOWED);
1325     case syserr_cannot_shrink:	return (ERROR_CANNOT_SHRINK);
1326     case syserr_zombie_process:	return (ERROR_ZOMBIE_PROCESS);
1327     case syserr_stack_in_high_memory:	return (ERROR_STACK_IN_HIGH_MEMORY);
1328     case syserr_invalid_exitroutine_ring:	return (ERROR_INVALID_EXITROUTINE_RING);
1329     case syserr_getbuf_failed:	return (ERROR_GETBUF_FAILED);
1330     case syserr_flushbuf_failed:	return (ERROR_FLUSHBUF_FAILED);
1331     case syserr_transfer_too_long:	return (ERROR_TRANSFER_TOO_LONG);
1332     case syserr_forcenoswap_failed:	return (ERROR_FORCENOSWAP_FAILED);
1333     case syserr_smg_no_target_window:	return (ERROR_SMG_NO_TARGET_WINDOW);
1334     case syserr_no_children:	return (ERROR_NO_CHILDREN);
1335     case syserr_invalid_screen_group:	return (ERROR_INVALID_SCREEN_GROUP);
1336     case syserr_bad_pipe:	return (ERROR_BAD_PIPE);
1337     case syserr_pipe_busy:	return (ERROR_PIPE_BUSY);
1338     case syserr_no_data:	return (ERROR_NO_DATA);
1339     case syserr_pipe_not_connected:	return (ERROR_PIPE_NOT_CONNECTED);
1340     case syserr_more_data:	return (ERROR_MORE_DATA);
1341     case syserr_vc_disconnected:	return (ERROR_VC_DISCONNECTED);
1342     case syserr_circularity_requested:	return (ERROR_CIRCULARITY_REQUESTED);
1343     case syserr_directory_in_cds:	return (ERROR_DIRECTORY_IN_CDS);
1344     case syserr_invalid_fsd_name:	return (ERROR_INVALID_FSD_NAME);
1345     case syserr_invalid_path:	return (ERROR_INVALID_PATH);
1346     case syserr_invalid_ea_name:	return (ERROR_INVALID_EA_NAME);
1347     case syserr_ea_list_inconsistent:	return (ERROR_EA_LIST_INCONSISTENT);
1348     case syserr_ea_list_too_long:	return (ERROR_EA_LIST_TOO_LONG);
1349     case syserr_no_meta_match:	return (ERROR_NO_META_MATCH);
1350     case syserr_findnotify_timeout:	return (ERROR_FINDNOTIFY_TIMEOUT);
1351     case syserr_no_more_items:	return (ERROR_NO_MORE_ITEMS);
1352     case syserr_search_struc_reused:	return (ERROR_SEARCH_STRUC_REUSED);
1353     case syserr_char_not_found:	return (ERROR_CHAR_NOT_FOUND);
1354     case syserr_too_much_stack:	return (ERROR_TOO_MUCH_STACK);
1355     case syserr_invalid_attr:	return (ERROR_INVALID_ATTR);
1356     case syserr_invalid_starting_ring:	return (ERROR_INVALID_STARTING_RING);
1357     case syserr_invalid_dll_init_ring:	return (ERROR_INVALID_DLL_INIT_RING);
1358     case syserr_cannot_copy:	return (ERROR_CANNOT_COPY);
1359     case syserr_directory:	return (ERROR_DIRECTORY);
1360     case syserr_oplocked_file:	return (ERROR_OPLOCKED_FILE);
1361     case syserr_oplock_thread_exists:	return (ERROR_OPLOCK_THREAD_EXISTS);
1362     case syserr_volume_changed:	return (ERROR_VOLUME_CHANGED);
1363     case syserr_findnotify_handle_in_use:	return (ERROR_FINDNOTIFY_HANDLE_IN_USE);
1364     case syserr_findnotify_handle_closed:	return (ERROR_FINDNOTIFY_HANDLE_CLOSED);
1365     case syserr_notify_object_removed:	return (ERROR_NOTIFY_OBJECT_REMOVED);
1366     case syserr_already_shutdown:	return (ERROR_ALREADY_SHUTDOWN);
1367     case syserr_eas_didnt_fit:	return (ERROR_EAS_DIDNT_FIT);
1368     case syserr_ea_file_corrupt:	return (ERROR_EA_FILE_CORRUPT);
1369     case syserr_ea_table_full:	return (ERROR_EA_TABLE_FULL);
1370     case syserr_invalid_ea_handle:	return (ERROR_INVALID_EA_HANDLE);
1371     case syserr_no_cluster:	return (ERROR_NO_CLUSTER);
1372     case syserr_create_ea_file:	return (ERROR_CREATE_EA_FILE);
1373     case syserr_cannot_open_ea_file:	return (ERROR_CANNOT_OPEN_EA_FILE);
1374     case syserr_eas_not_supported:	return (ERROR_EAS_NOT_SUPPORTED);
1375     case syserr_need_eas_found:	return (ERROR_NEED_EAS_FOUND);
1376     case syserr_duplicate_handle:	return (ERROR_DUPLICATE_HANDLE);
1377     case syserr_duplicate_name:	return (ERROR_DUPLICATE_NAME);
1378     case syserr_empty_muxwait:	return (ERROR_EMPTY_MUXWAIT);
1379     case syserr_mutex_owned:	return (ERROR_MUTEX_OWNED);
1380     case syserr_not_owner:	return (ERROR_NOT_OWNER);
1381     case syserr_param_too_small:	return (ERROR_PARAM_TOO_SMALL);
1382     case syserr_too_many_handles:	return (ERROR_TOO_MANY_HANDLES);
1383     case syserr_too_many_opens:	return (ERROR_TOO_MANY_OPENS);
1384     case syserr_wrong_type:	return (ERROR_WRONG_TYPE);
1385     case syserr_unused_code:	return (ERROR_UNUSED_CODE);
1386     case syserr_thread_not_terminated:	return (ERROR_THREAD_NOT_TERMINATED);
1387     case syserr_init_routine_failed:	return (ERROR_INIT_ROUTINE_FAILED);
1388     case syserr_module_in_use:	return (ERROR_MODULE_IN_USE);
1389     case syserr_not_enough_watchpoints:	return (ERROR_NOT_ENOUGH_WATCHPOINTS);
1390     case syserr_too_many_posts:	return (ERROR_TOO_MANY_POSTS);
1391     case syserr_already_posted:	return (ERROR_ALREADY_POSTED);
1392     case syserr_already_reset:	return (ERROR_ALREADY_RESET);
1393     case syserr_sem_busy:	return (ERROR_SEM_BUSY);
1394     case syserr_invalid_procid:	return (ERROR_INVALID_PROCID);
1395     case syserr_invalid_pdelta:	return (ERROR_INVALID_PDELTA);
1396     case syserr_not_descendant:	return (ERROR_NOT_DESCENDANT);
1397     case syserr_not_session_manager:	return (ERROR_NOT_SESSION_MANAGER);
1398     case syserr_invalid_pclass:	return (ERROR_INVALID_PCLASS);
1399     case syserr_invalid_scope:	return (ERROR_INVALID_SCOPE);
1400     case syserr_invalid_threadid:	return (ERROR_INVALID_THREADID);
1401     case syserr_dossub_shrink:	return (ERROR_DOSSUB_SHRINK);
1402     case syserr_dossub_nomem:	return (ERROR_DOSSUB_NOMEM);
1403     case syserr_dossub_overlap:	return (ERROR_DOSSUB_OVERLAP);
1404     case syserr_dossub_badsize:	return (ERROR_DOSSUB_BADSIZE);
1405     case syserr_dossub_badflag:	return (ERROR_DOSSUB_BADFLAG);
1406     case syserr_dossub_badselector:	return (ERROR_DOSSUB_BADSELECTOR);
1407     case syserr_mr_msg_too_long:	return (ERROR_MR_MSG_TOO_LONG);
1408     case syserr_mr_mid_not_found:	return (ERROR_MR_MID_NOT_FOUND);
1409     case syserr_mr_un_acc_msgf:	return (ERROR_MR_UN_ACC_MSGF);
1410     case syserr_mr_inv_msgf_format:	return (ERROR_MR_INV_MSGF_FORMAT);
1411     case syserr_mr_inv_ivcount:	return (ERROR_MR_INV_IVCOUNT);
1412     case syserr_mr_un_perform:	return (ERROR_MR_UN_PERFORM);
1413     case syserr_ts_wakeup:	return (ERROR_TS_WAKEUP);
1414     case syserr_ts_semhandle:	return (ERROR_TS_SEMHANDLE);
1415     case syserr_ts_notimer:	return (ERROR_TS_NOTIMER);
1416     case syserr_ts_handle:	return (ERROR_TS_HANDLE);
1417     case syserr_ts_datetime:	return (ERROR_TS_DATETIME);
1418     case syserr_sys_internal:	return (ERROR_SYS_INTERNAL);
1419     case syserr_que_current_name:	return (ERROR_QUE_CURRENT_NAME);
1420     case syserr_que_proc_not_owned:	return (ERROR_QUE_PROC_NOT_OWNED);
1421     case syserr_que_proc_owned:	return (ERROR_QUE_PROC_OWNED);
1422     case syserr_que_duplicate:	return (ERROR_QUE_DUPLICATE);
1423     case syserr_que_element_not_exist:	return (ERROR_QUE_ELEMENT_NOT_EXIST);
1424     case syserr_que_no_memory:	return (ERROR_QUE_NO_MEMORY);
1425     case syserr_que_invalid_name:	return (ERROR_QUE_INVALID_NAME);
1426     case syserr_que_invalid_priority:	return (ERROR_QUE_INVALID_PRIORITY);
1427     case syserr_que_invalid_handle:	return (ERROR_QUE_INVALID_HANDLE);
1428     case syserr_que_link_not_found:	return (ERROR_QUE_LINK_NOT_FOUND);
1429     case syserr_que_memory_error:	return (ERROR_QUE_MEMORY_ERROR);
1430     case syserr_que_prev_at_end:	return (ERROR_QUE_PREV_AT_END);
1431     case syserr_que_proc_no_access:	return (ERROR_QUE_PROC_NO_ACCESS);
1432     case syserr_que_empty:	return (ERROR_QUE_EMPTY);
1433     case syserr_que_name_not_exist:	return (ERROR_QUE_NAME_NOT_EXIST);
1434     case syserr_que_not_initialized:	return (ERROR_QUE_NOT_INITIALIZED);
1435     case syserr_que_unable_to_access:	return (ERROR_QUE_UNABLE_TO_ACCESS);
1436     case syserr_que_unable_to_add:	return (ERROR_QUE_UNABLE_TO_ADD);
1437     case syserr_que_unable_to_init:	return (ERROR_QUE_UNABLE_TO_INIT);
1438     case syserr_vio_invalid_mask:	return (ERROR_VIO_INVALID_MASK);
1439     case syserr_vio_ptr:	return (ERROR_VIO_PTR);
1440     case syserr_vio_aptr:	return (ERROR_VIO_APTR);
1441     case syserr_vio_rptr:	return (ERROR_VIO_RPTR);
1442     case syserr_vio_cptr:	return (ERROR_VIO_CPTR);
1443     case syserr_vio_lptr:	return (ERROR_VIO_LPTR);
1444     case syserr_vio_mode:	return (ERROR_VIO_MODE);
1445     case syserr_vio_width:	return (ERROR_VIO_WIDTH);
1446     case syserr_vio_attr:	return (ERROR_VIO_ATTR);
1447     case syserr_vio_row:	return (ERROR_VIO_ROW);
1448     case syserr_vio_col:	return (ERROR_VIO_COL);
1449     case syserr_vio_toprow:	return (ERROR_VIO_TOPROW);
1450     case syserr_vio_botrow:	return (ERROR_VIO_BOTROW);
1451     case syserr_vio_rightcol:	return (ERROR_VIO_RIGHTCOL);
1452     case syserr_vio_leftcol:	return (ERROR_VIO_LEFTCOL);
1453     case syserr_scs_call:	return (ERROR_SCS_CALL);
1454     case syserr_scs_value:	return (ERROR_SCS_VALUE);
1455     case syserr_vio_wait_flag:	return (ERROR_VIO_WAIT_FLAG);
1456     case syserr_vio_unlock:	return (ERROR_VIO_UNLOCK);
1457     case syserr_sgs_not_session_mgr:	return (ERROR_SGS_NOT_SESSION_MGR);
1458     case syserr_smg_invalid_session_id:	return (ERROR_SMG_INVALID_SESSION_ID);
1459     case syserr_smg_no_sessions:	return (ERROR_SMG_NO_SESSIONS);
1460     case syserr_smg_session_not_found:	return (ERROR_SMG_SESSION_NOT_FOUND);
1461     case syserr_smg_set_title:	return (ERROR_SMG_SET_TITLE);
1462     case syserr_kbd_parameter:	return (ERROR_KBD_PARAMETER);
1463     case syserr_kbd_no_device:	return (ERROR_KBD_NO_DEVICE);
1464     case syserr_kbd_invalid_iowait:	return (ERROR_KBD_INVALID_IOWAIT);
1465     case syserr_kbd_invalid_length:	return (ERROR_KBD_INVALID_LENGTH);
1466     case syserr_kbd_invalid_echo_mask:	return (ERROR_KBD_INVALID_ECHO_MASK);
1467     case syserr_kbd_invalid_input_mask:	return (ERROR_KBD_INVALID_INPUT_MASK);
1468     case syserr_mon_invalid_parms:	return (ERROR_MON_INVALID_PARMS);
1469     case syserr_mon_invalid_devname:	return (ERROR_MON_INVALID_DEVNAME);
1470     case syserr_mon_invalid_handle:	return (ERROR_MON_INVALID_HANDLE);
1471     case syserr_mon_buffer_too_small:	return (ERROR_MON_BUFFER_TOO_SMALL);
1472     case syserr_mon_buffer_empty:	return (ERROR_MON_BUFFER_EMPTY);
1473     case syserr_mon_data_too_large:	return (ERROR_MON_DATA_TOO_LARGE);
1474     case syserr_mouse_no_device:	return (ERROR_MOUSE_NO_DEVICE);
1475     case syserr_mouse_inv_handle:	return (ERROR_MOUSE_INV_HANDLE);
1476     case syserr_mouse_inv_parms:	return (ERROR_MOUSE_INV_PARMS);
1477     case syserr_mouse_cant_reset:	return (ERROR_MOUSE_CANT_RESET);
1478     case syserr_mouse_display_parms:	return (ERROR_MOUSE_DISPLAY_PARMS);
1479     case syserr_mouse_inv_module:	return (ERROR_MOUSE_INV_MODULE);
1480     case syserr_mouse_inv_entry_pt:	return (ERROR_MOUSE_INV_ENTRY_PT);
1481     case syserr_mouse_inv_mask:	return (ERROR_MOUSE_INV_MASK);
1482     case syserr_mouse_no_data:	return (NO_ERROR_MOUSE_NO_DATA);
1483     case syserr_mouse_ptr_drawn:	return (NO_ERROR_MOUSE_PTR_DRAWN);
1484     case syserr_invalid_frequency:	return (ERROR_INVALID_FREQUENCY);
1485     case syserr_nls_no_country_file:	return (ERROR_NLS_NO_COUNTRY_FILE);
1486     case syserr_nls_open_failed:	return (ERROR_NLS_OPEN_FAILED);
1487 #ifdef ERROR_NO_COUNTRY_OR_CODEPAGE
1488     case syserr_no_country_or_codepage:	return (ERROR_NO_COUNTRY_OR_CODEPAGE);
1489 #endif
1490     case syserr_nls_table_truncated:	return (ERROR_NLS_TABLE_TRUNCATED);
1491     case syserr_nls_bad_type:	return (ERROR_NLS_BAD_TYPE);
1492     case syserr_nls_type_not_found:	return (ERROR_NLS_TYPE_NOT_FOUND);
1493     case syserr_vio_smg_only:	return (ERROR_VIO_SMG_ONLY);
1494     case syserr_vio_invalid_asciiz:	return (ERROR_VIO_INVALID_ASCIIZ);
1495     case syserr_vio_deregister:	return (ERROR_VIO_DEREGISTER);
1496     case syserr_vio_no_popup:	return (ERROR_VIO_NO_POPUP);
1497     case syserr_vio_existing_popup:	return (ERROR_VIO_EXISTING_POPUP);
1498     case syserr_kbd_smg_only:	return (ERROR_KBD_SMG_ONLY);
1499     case syserr_kbd_invalid_asciiz:	return (ERROR_KBD_INVALID_ASCIIZ);
1500     case syserr_kbd_invalid_mask:	return (ERROR_KBD_INVALID_MASK);
1501     case syserr_kbd_register:	return (ERROR_KBD_REGISTER);
1502     case syserr_kbd_deregister:	return (ERROR_KBD_DEREGISTER);
1503     case syserr_mouse_smg_only:	return (ERROR_MOUSE_SMG_ONLY);
1504     case syserr_mouse_invalid_asciiz:	return (ERROR_MOUSE_INVALID_ASCIIZ);
1505     case syserr_mouse_invalid_mask:	return (ERROR_MOUSE_INVALID_MASK);
1506     case syserr_mouse_register:	return (ERROR_MOUSE_REGISTER);
1507     case syserr_mouse_deregister:	return (ERROR_MOUSE_DEREGISTER);
1508     case syserr_smg_bad_action:	return (ERROR_SMG_BAD_ACTION);
1509     case syserr_smg_invalid_call:	return (ERROR_SMG_INVALID_CALL);
1510     case syserr_scs_sg_notfound:	return (ERROR_SCS_SG_NOTFOUND);
1511     case syserr_scs_not_shell:	return (ERROR_SCS_NOT_SHELL);
1512     case syserr_vio_invalid_parms:	return (ERROR_VIO_INVALID_PARMS);
1513     case syserr_vio_function_owned:	return (ERROR_VIO_FUNCTION_OWNED);
1514     case syserr_vio_return:	return (ERROR_VIO_RETURN);
1515     case syserr_scs_invalid_function:	return (ERROR_SCS_INVALID_FUNCTION);
1516     case syserr_scs_not_session_mgr:	return (ERROR_SCS_NOT_SESSION_MGR);
1517     case syserr_vio_register:	return (ERROR_VIO_REGISTER);
1518     case syserr_vio_no_mode_thread:	return (ERROR_VIO_NO_MODE_THREAD);
1519     case syserr_vio_no_save_restore_thd:	return (ERROR_VIO_NO_SAVE_RESTORE_THD);
1520     case syserr_vio_in_bg:	return (ERROR_VIO_IN_BG);
1521     case syserr_vio_illegal_during_popup:	return (ERROR_VIO_ILLEGAL_DURING_POPUP);
1522     case syserr_smg_not_baseshell:	return (ERROR_SMG_NOT_BASESHELL);
1523     case syserr_smg_bad_statusreq:	return (ERROR_SMG_BAD_STATUSREQ);
1524     case syserr_que_invalid_wait:	return (ERROR_QUE_INVALID_WAIT);
1525     case syserr_vio_lock:	return (ERROR_VIO_LOCK);
1526     case syserr_mouse_invalid_iowait:	return (ERROR_MOUSE_INVALID_IOWAIT);
1527     case syserr_vio_invalid_handle:	return (ERROR_VIO_INVALID_HANDLE);
1528     case syserr_vio_illegal_during_lock:	return (ERROR_VIO_ILLEGAL_DURING_LOCK);
1529     case syserr_vio_invalid_length:	return (ERROR_VIO_INVALID_LENGTH);
1530     case syserr_kbd_invalid_handle:	return (ERROR_KBD_INVALID_HANDLE);
1531     case syserr_kbd_no_more_handle:	return (ERROR_KBD_NO_MORE_HANDLE);
1532     case syserr_kbd_cannot_create_kcb:	return (ERROR_KBD_CANNOT_CREATE_KCB);
1533     case syserr_kbd_codepage_load_incompl:	return (ERROR_KBD_CODEPAGE_LOAD_INCOMPL);
1534     case syserr_kbd_invalid_codepage_id:	return (ERROR_KBD_INVALID_CODEPAGE_ID);
1535     case syserr_kbd_no_codepage_support:	return (ERROR_KBD_NO_CODEPAGE_SUPPORT);
1536     case syserr_kbd_focus_required:	return (ERROR_KBD_FOCUS_REQUIRED);
1537     case syserr_kbd_focus_already_active:	return (ERROR_KBD_FOCUS_ALREADY_ACTIVE);
1538     case syserr_kbd_keyboard_busy:	return (ERROR_KBD_KEYBOARD_BUSY);
1539     case syserr_kbd_invalid_codepage:	return (ERROR_KBD_INVALID_CODEPAGE);
1540     case syserr_kbd_unable_to_focus:	return (ERROR_KBD_UNABLE_TO_FOCUS);
1541     case syserr_smg_session_non_select:	return (ERROR_SMG_SESSION_NON_SELECT);
1542     case syserr_smg_session_not_foregrnd:	return (ERROR_SMG_SESSION_NOT_FOREGRND);
1543     case syserr_smg_session_not_parent:	return (ERROR_SMG_SESSION_NOT_PARENT);
1544     case syserr_smg_invalid_start_mode:	return (ERROR_SMG_INVALID_START_MODE);
1545     case syserr_smg_invalid_related_opt:	return (ERROR_SMG_INVALID_RELATED_OPT);
1546     case syserr_smg_invalid_bond_option:	return (ERROR_SMG_INVALID_BOND_OPTION);
1547     case syserr_smg_invalid_select_opt:	return (ERROR_SMG_INVALID_SELECT_OPT);
1548     case syserr_smg_start_in_background:	return (ERROR_SMG_START_IN_BACKGROUND);
1549     case syserr_smg_invalid_stop_option:	return (ERROR_SMG_INVALID_STOP_OPTION);
1550     case syserr_smg_bad_reserve:	return (ERROR_SMG_BAD_RESERVE);
1551     case syserr_smg_process_not_parent:	return (ERROR_SMG_PROCESS_NOT_PARENT);
1552     case syserr_smg_invalid_data_length:	return (ERROR_SMG_INVALID_DATA_LENGTH);
1553     case syserr_smg_not_bound:	return (ERROR_SMG_NOT_BOUND);
1554     case syserr_smg_retry_sub_alloc:	return (ERROR_SMG_RETRY_SUB_ALLOC);
1555     case syserr_kbd_detached:	return (ERROR_KBD_DETACHED);
1556     case syserr_vio_detached:	return (ERROR_VIO_DETACHED);
1557     case syserr_mou_detached:	return (ERROR_MOU_DETACHED);
1558     case syserr_vio_font:	return (ERROR_VIO_FONT);
1559     case syserr_vio_user_font:	return (ERROR_VIO_USER_FONT);
1560     case syserr_vio_bad_cp:	return (ERROR_VIO_BAD_CP);
1561     case syserr_vio_no_cp:	return (ERROR_VIO_NO_CP);
1562     case syserr_vio_na_cp:	return (ERROR_VIO_NA_CP);
1563     case syserr_invalid_code_page:	return (ERROR_INVALID_CODE_PAGE);
1564     case syserr_cplist_too_small:	return (ERROR_CPLIST_TOO_SMALL);
1565     case syserr_cp_not_moved:	return (ERROR_CP_NOT_MOVED);
1566     case syserr_mode_switch_init:	return (ERROR_MODE_SWITCH_INIT);
1567     case syserr_code_page_not_found:	return (ERROR_CODE_PAGE_NOT_FOUND);
1568     case syserr_unexpected_slot_returned:	return (ERROR_UNEXPECTED_SLOT_RETURNED);
1569     case syserr_smg_invalid_trace_option:	return (ERROR_SMG_INVALID_TRACE_OPTION);
1570     case syserr_vio_internal_resource:	return (ERROR_VIO_INTERNAL_RESOURCE);
1571     case syserr_vio_shell_init:	return (ERROR_VIO_SHELL_INIT);
1572     case syserr_smg_no_hard_errors:	return (ERROR_SMG_NO_HARD_ERRORS);
1573     case syserr_cp_switch_incomplete:	return (ERROR_CP_SWITCH_INCOMPLETE);
1574     case syserr_vio_transparent_popup:	return (ERROR_VIO_TRANSPARENT_POPUP);
1575     case syserr_critsec_overflow:	return (ERROR_CRITSEC_OVERFLOW);
1576     case syserr_critsec_underflow:	return (ERROR_CRITSEC_UNDERFLOW);
1577     case syserr_vio_bad_reserve:	return (ERROR_VIO_BAD_RESERVE);
1578     case syserr_invalid_address:	return (ERROR_INVALID_ADDRESS);
1579     case syserr_zero_selectors_requested:	return (ERROR_ZERO_SELECTORS_REQUESTED);
1580     case syserr_not_enough_selectors_ava:	return (ERROR_NOT_ENOUGH_SELECTORS_AVA);
1581     case syserr_invalid_selector:	return (ERROR_INVALID_SELECTOR);
1582     case syserr_smg_invalid_program_type:	return (ERROR_SMG_INVALID_PROGRAM_TYPE);
1583     case syserr_smg_invalid_pgm_control:	return (ERROR_SMG_INVALID_PGM_CONTROL);
1584     case syserr_smg_invalid_inherit_opt:	return (ERROR_SMG_INVALID_INHERIT_OPT);
1585     case syserr_vio_extended_sg:	return (ERROR_VIO_EXTENDED_SG);
1586     case syserr_vio_not_pres_mgr_sg:	return (ERROR_VIO_NOT_PRES_MGR_SG);
1587     case syserr_vio_shield_owned:	return (ERROR_VIO_SHIELD_OWNED);
1588     case syserr_vio_no_more_handles:	return (ERROR_VIO_NO_MORE_HANDLES);
1589     case syserr_vio_see_error_log:	return (ERROR_VIO_SEE_ERROR_LOG);
1590     case syserr_vio_associated_dc:	return (ERROR_VIO_ASSOCIATED_DC);
1591     case syserr_kbd_no_console:	return (ERROR_KBD_NO_CONSOLE);
1592     case syserr_mouse_no_console:	return (ERROR_MOUSE_NO_CONSOLE);
1593     case syserr_mouse_invalid_handle:	return (ERROR_MOUSE_INVALID_HANDLE);
1594     case syserr_smg_invalid_debug_parms:	return (ERROR_SMG_INVALID_DEBUG_PARMS);
1595     case syserr_kbd_extended_sg:	return (ERROR_KBD_EXTENDED_SG);
1596     case syserr_mou_extended_sg:	return (ERROR_MOU_EXTENDED_SG);
1597     case syserr_smg_invalid_icon_file:	return (ERROR_SMG_INVALID_ICON_FILE);
1598     case syserr_trc_pid_non_existent:	return (ERROR_TRC_PID_NON_EXISTENT);
1599     case syserr_trc_count_active:	return (ERROR_TRC_COUNT_ACTIVE);
1600     case syserr_trc_suspended_by_count:	return (ERROR_TRC_SUSPENDED_BY_COUNT);
1601     case syserr_trc_count_inactive:	return (ERROR_TRC_COUNT_INACTIVE);
1602     case syserr_trc_count_reached:	return (ERROR_TRC_COUNT_REACHED);
1603     case syserr_no_mc_trace:	return (ERROR_NO_MC_TRACE);
1604     case syserr_mc_trace:	return (ERROR_MC_TRACE);
1605     case syserr_trc_count_zero:	return (ERROR_TRC_COUNT_ZERO);
1606     case syserr_smg_too_many_dds:	return (ERROR_SMG_TOO_MANY_DDS);
1607     case syserr_smg_invalid_notification:	return (ERROR_SMG_INVALID_NOTIFICATION);
1608     case syserr_lf_invalid_function:	return (ERROR_LF_INVALID_FUNCTION);
1609     case syserr_lf_not_avail:	return (ERROR_LF_NOT_AVAIL);
1610     case syserr_lf_suspended:	return (ERROR_LF_SUSPENDED);
1611     case syserr_lf_buf_too_small:	return (ERROR_LF_BUF_TOO_SMALL);
1612     case syserr_lf_buffer_full:	return (ERROR_LF_BUFFER_FULL);
1613     case syserr_lf_invalid_record:	return (ERROR_LF_INVALID_RECORD);
1614     case syserr_lf_invalid_service:	return (ERROR_LF_INVALID_SERVICE);
1615     case syserr_lf_general_failure:	return (ERROR_LF_GENERAL_FAILURE);
1616     case syserr_lf_invalid_id:	return (ERROR_LF_INVALID_ID);
1617     case syserr_lf_invalid_handle:	return (ERROR_LF_INVALID_HANDLE);
1618     case syserr_lf_no_id_avail:	return (ERROR_LF_NO_ID_AVAIL);
1619     case syserr_lf_template_area_full:	return (ERROR_LF_TEMPLATE_AREA_FULL);
1620     case syserr_lf_id_in_use:	return (ERROR_LF_ID_IN_USE);
1621     case syserr_mou_not_initialized:	return (ERROR_MOU_NOT_INITIALIZED);
1622     case syserr_mouinitreal_done:	return (ERROR_MOUINITREAL_DONE);
1623     case syserr_dossub_corrupted:	return (ERROR_DOSSUB_CORRUPTED);
1624     case syserr_mouse_caller_not_subsys:	return (ERROR_MOUSE_CALLER_NOT_SUBSYS);
1625     case syserr_arithmetic_overflow:	return (ERROR_ARITHMETIC_OVERFLOW);
1626     case syserr_tmr_no_device:	return (ERROR_TMR_NO_DEVICE);
1627     case syserr_tmr_invalid_time:	return (ERROR_TMR_INVALID_TIME);
1628     case syserr_pvw_invalid_entity:	return (ERROR_PVW_INVALID_ENTITY);
1629     case syserr_pvw_invalid_entity_type:	return (ERROR_PVW_INVALID_ENTITY_TYPE);
1630     case syserr_pvw_invalid_spec:	return (ERROR_PVW_INVALID_SPEC);
1631     case syserr_pvw_invalid_range_type:	return (ERROR_PVW_INVALID_RANGE_TYPE);
1632     case syserr_pvw_invalid_counter_blk:	return (ERROR_PVW_INVALID_COUNTER_BLK);
1633     case syserr_pvw_invalid_text_blk:	return (ERROR_PVW_INVALID_TEXT_BLK);
1634     case syserr_prf_not_initialized:	return (ERROR_PRF_NOT_INITIALIZED);
1635     case syserr_prf_already_initialized:	return (ERROR_PRF_ALREADY_INITIALIZED);
1636     case syserr_prf_not_started:	return (ERROR_PRF_NOT_STARTED);
1637     case syserr_prf_already_started:	return (ERROR_PRF_ALREADY_STARTED);
1638     case syserr_prf_timer_out_of_range:	return (ERROR_PRF_TIMER_OUT_OF_RANGE);
1639     case syserr_prf_timer_reset:	return (ERROR_PRF_TIMER_RESET);
1640     case syserr_vdd_lock_useage_denied:	return (ERROR_VDD_LOCK_USEAGE_DENIED);
1641     case syserr_timeout:	return (ERROR_TIMEOUT);
1642     case syserr_vdm_down:	return (ERROR_VDM_DOWN);
1643     case syserr_vdm_limit:	return (ERROR_VDM_LIMIT);
1644     case syserr_vdd_not_found:	return (ERROR_VDD_NOT_FOUND);
1645     case syserr_invalid_caller:	return (ERROR_INVALID_CALLER);
1646     case syserr_pid_mismatch:	return (ERROR_PID_MISMATCH);
1647     case syserr_invalid_vdd_handle:	return (ERROR_INVALID_VDD_HANDLE);
1648     case syserr_vlpt_no_spooler:	return (ERROR_VLPT_NO_SPOOLER);
1649     case syserr_vcom_device_busy:	return (ERROR_VCOM_DEVICE_BUSY);
1650     case syserr_vlpt_device_busy:	return (ERROR_VLPT_DEVICE_BUSY);
1651     case syserr_nesting_too_deep:	return (ERROR_NESTING_TOO_DEEP);
1652     case syserr_vdd_missing:	return (ERROR_VDD_MISSING);
1653     case syserr_bidi_invalid_length:	return (ERROR_BIDI_INVALID_LENGTH);
1654     case syserr_bidi_invalid_increment:	return (ERROR_BIDI_INVALID_INCREMENT);
1655     case syserr_bidi_invalid_combination:	return (ERROR_BIDI_INVALID_COMBINATION);
1656     case syserr_bidi_invalid_reserved:	return (ERROR_BIDI_INVALID_RESERVED);
1657     case syserr_bidi_invalid_effect:	return (ERROR_BIDI_INVALID_EFFECT);
1658     case syserr_bidi_invalid_csdrec:	return (ERROR_BIDI_INVALID_CSDREC);
1659     case syserr_bidi_invalid_csdstate:	return (ERROR_BIDI_INVALID_CSDSTATE);
1660     case syserr_bidi_invalid_level:	return (ERROR_BIDI_INVALID_LEVEL);
1661     case syserr_bidi_invalid_type_support:	return (ERROR_BIDI_INVALID_TYPE_SUPPORT);
1662     case syserr_bidi_invalid_orientation:	return (ERROR_BIDI_INVALID_ORIENTATION);
1663     case syserr_bidi_invalid_num_shape:	return (ERROR_BIDI_INVALID_NUM_SHAPE);
1664     case syserr_bidi_invalid_csd:	return (ERROR_BIDI_INVALID_CSD);
1665     case syserr_bidi_no_support:	return (ERROR_BIDI_NO_SUPPORT);
1666     case syserr_bidi_rw_incomplete:	return (NO_ERROR_BIDI_RW_INCOMPLETE);
1667     case syserr_imp_invalid_parm:	return (ERROR_IMP_INVALID_PARM);
1668     case syserr_imp_invalid_length:	return (ERROR_IMP_INVALID_LENGTH);
1669 #ifdef MSG_HPFS_DISK_ERROR_WARN
1670     case syserr_hpfs_disk_error_warn:	return (MSG_HPFS_DISK_ERROR_WARN);
1671 #endif
1672     case syserr_mon_bad_buffer:	return (ERROR_MON_BAD_BUFFER);
1673     case syserr_module_corrupted:	return (ERROR_MODULE_CORRUPTED);
1674     case syserr_sm_outof_swapfile:	return (ERROR_SM_OUTOF_SWAPFILE);
1675     case syserr_lf_timeout:	return (ERROR_LF_TIMEOUT);
1676     case syserr_lf_suspend_success:	return (ERROR_LF_SUSPEND_SUCCESS);
1677     case syserr_lf_resume_success:	return (ERROR_LF_RESUME_SUCCESS);
1678     case syserr_lf_redirect_success:	return (ERROR_LF_REDIRECT_SUCCESS);
1679     case syserr_lf_redirect_failure:	return (ERROR_LF_REDIRECT_FAILURE);
1680     case syserr_swapper_not_active:	return (ERROR_SWAPPER_NOT_ACTIVE);
1681     case syserr_invalid_swapid:	return (ERROR_INVALID_SWAPID);
1682     case syserr_ioerr_swap_file:	return (ERROR_IOERR_SWAP_FILE);
1683     case syserr_swap_table_full:	return (ERROR_SWAP_TABLE_FULL);
1684     case syserr_swap_file_full:	return (ERROR_SWAP_FILE_FULL);
1685     case syserr_cant_init_swapper:	return (ERROR_CANT_INIT_SWAPPER);
1686     case syserr_swapper_already_init:	return (ERROR_SWAPPER_ALREADY_INIT);
1687     case syserr_pmm_insufficient_memory:	return (ERROR_PMM_INSUFFICIENT_MEMORY);
1688     case syserr_pmm_invalid_flags:	return (ERROR_PMM_INVALID_FLAGS);
1689     case syserr_pmm_invalid_address:	return (ERROR_PMM_INVALID_ADDRESS);
1690     case syserr_pmm_lock_failed:	return (ERROR_PMM_LOCK_FAILED);
1691     case syserr_pmm_unlock_failed:	return (ERROR_PMM_UNLOCK_FAILED);
1692     case syserr_pmm_move_incomplete:	return (ERROR_PMM_MOVE_INCOMPLETE);
1693     case syserr_ucom_drive_renamed:	return (ERROR_UCOM_DRIVE_RENAMED);
1694     case syserr_ucom_filename_truncated:	return (ERROR_UCOM_FILENAME_TRUNCATED);
1695     case syserr_ucom_buffer_length:	return (ERROR_UCOM_BUFFER_LENGTH);
1696     case syserr_mon_chain_handle:	return (ERROR_MON_CHAIN_HANDLE);
1697     case syserr_mon_not_registered:	return (ERROR_MON_NOT_REGISTERED);
1698     case syserr_smg_already_top:	return (ERROR_SMG_ALREADY_TOP);
1699     case syserr_pmm_arena_modified:	return (ERROR_PMM_ARENA_MODIFIED);
1700     case syserr_smg_printer_open:	return (ERROR_SMG_PRINTER_OPEN);
1701     case syserr_pmm_set_flags_failed:	return (ERROR_PMM_SET_FLAGS_FAILED);
1702     case syserr_invalid_dos_dd:	return (ERROR_INVALID_DOS_DD);
1703     case syserr_blocked:	return (ERROR_BLOCKED);
1704     case syserr_noblock:	return (ERROR_NOBLOCK);
1705     case syserr_instance_shared:	return (ERROR_INSTANCE_SHARED);
1706     case syserr_no_object:	return (ERROR_NO_OBJECT);
1707     case syserr_partial_attach:	return (ERROR_PARTIAL_ATTACH);
1708     case syserr_incache:	return (ERROR_INCACHE);
1709     case syserr_swap_io_problems:	return (ERROR_SWAP_IO_PROBLEMS);
1710     case syserr_crosses_object_boundary:	return (ERROR_CROSSES_OBJECT_BOUNDARY);
1711     case syserr_longlock:	return (ERROR_LONGLOCK);
1712     case syserr_shortlock:	return (ERROR_SHORTLOCK);
1713     case syserr_uvirtlock:	return (ERROR_UVIRTLOCK);
1714     case syserr_aliaslock:	return (ERROR_ALIASLOCK);
1715     case syserr_alias:	return (ERROR_ALIAS);
1716     case syserr_no_more_handles:	return (ERROR_NO_MORE_HANDLES);
1717     case syserr_scan_terminated:	return (ERROR_SCAN_TERMINATED);
1718     case syserr_terminator_not_found:	return (ERROR_TERMINATOR_NOT_FOUND);
1719     case syserr_not_direct_child:	return (ERROR_NOT_DIRECT_CHILD);
1720     case syserr_delay_free:	return (ERROR_DELAY_FREE);
1721     case syserr_guardpage:	return (ERROR_GUARDPAGE);
1722     case syserr_swaperror:	return (ERROR_SWAPERROR);
1723     case syserr_ldrerror:	return (ERROR_LDRERROR);
1724     case syserr_nomemory:	return (ERROR_NOMEMORY);
1725     case syserr_noaccess:	return (ERROR_NOACCESS);
1726     case syserr_no_dll_term:	return (ERROR_NO_DLL_TERM);
1727     case syserr_cpsio_code_page_invalid:	return (ERROR_CPSIO_CODE_PAGE_INVALID);
1728     case syserr_cpsio_no_spooler:	return (ERROR_CPSIO_NO_SPOOLER);
1729     case syserr_cpsio_font_id_invalid:	return (ERROR_CPSIO_FONT_ID_INVALID);
1730     case syserr_cpsio_internal_error:	return (ERROR_CPSIO_INTERNAL_ERROR);
1731     case syserr_cpsio_invalid_ptr_name:	return (ERROR_CPSIO_INVALID_PTR_NAME);
1732     case syserr_cpsio_not_active:	return (ERROR_CPSIO_NOT_ACTIVE);
1733     case syserr_cpsio_pid_full:	return (ERROR_CPSIO_PID_FULL);
1734     case syserr_cpsio_pid_not_found:	return (ERROR_CPSIO_PID_NOT_FOUND);
1735     case syserr_cpsio_read_ctl_seq:	return (ERROR_CPSIO_READ_CTL_SEQ);
1736     case syserr_cpsio_read_fnt_def:	return (ERROR_CPSIO_READ_FNT_DEF);
1737     case syserr_cpsio_write_error:	return (ERROR_CPSIO_WRITE_ERROR);
1738     case syserr_cpsio_write_full_error:	return (ERROR_CPSIO_WRITE_FULL_ERROR);
1739     case syserr_cpsio_write_handle_bad:	return (ERROR_CPSIO_WRITE_HANDLE_BAD);
1740     case syserr_cpsio_swit_load:	return (ERROR_CPSIO_SWIT_LOAD);
1741     case syserr_cpsio_inv_command:	return (ERROR_CPSIO_INV_COMMAND);
1742     case syserr_cpsio_no_font_swit:	return (ERROR_CPSIO_NO_FONT_SWIT);
1743     case syserr_entry_is_callgate:	return (ERROR_ENTRY_IS_CALLGATE);
1744 
1745 #ifndef DISABLE_SOCKET_SUPPORT
1746     case syserr_socket_perm:		return (SOCEPERM);
1747     case syserr_socket_srch:		return (SOCESRCH);
1748     case syserr_socket_intr:		return (SOCEINTR);
1749     case syserr_socket_nxio:		return (SOCENXIO);
1750     case syserr_socket_badf:		return (SOCEBADF);
1751     case syserr_socket_acces:		return (SOCEACCES);
1752     case syserr_socket_fault:		return (SOCEFAULT);
1753     case syserr_socket_inval:		return (SOCEINVAL);
1754     case syserr_socket_mfile:		return (SOCEMFILE);
1755     case syserr_socket_pipe:		return (SOCEPIPE);
1756     case syserr_socket_os2err:		return (SOCEOS2ERR);
1757     case syserr_socket_wouldblock:	return (SOCEWOULDBLOCK);
1758     case syserr_socket_inprogress:	return (SOCEINPROGRESS);
1759     case syserr_socket_already:		return (SOCEALREADY);
1760     case syserr_socket_notsock:		return (SOCENOTSOCK);
1761     case syserr_socket_destaddrreq:	return (SOCEDESTADDRREQ);
1762     case syserr_socket_msgsize:		return (SOCEMSGSIZE);
1763     case syserr_socket_prototype:	return (SOCEPROTOTYPE);
1764     case syserr_socket_noprotoopt:	return (SOCENOPROTOOPT);
1765     case syserr_socket_protonosupport:	return (SOCEPROTONOSUPPORT);
1766     case syserr_socket_socktnosupport:	return (SOCESOCKTNOSUPPORT);
1767     case syserr_socket_opnotsupp:	return (SOCEOPNOTSUPP);
1768     case syserr_socket_pfnosupport:	return (SOCEPFNOSUPPORT);
1769     case syserr_socket_afnosupport:	return (SOCEAFNOSUPPORT);
1770     case syserr_socket_addrinuse:	return (SOCEADDRINUSE);
1771     case syserr_socket_addrnotavail:	return (SOCEADDRNOTAVAIL);
1772     case syserr_socket_netdown:		return (SOCENETDOWN);
1773     case syserr_socket_netunreach:	return (SOCENETUNREACH);
1774     case syserr_socket_netreset:	return (SOCENETRESET);
1775     case syserr_socket_connaborted:	return (SOCECONNABORTED);
1776     case syserr_socket_connreset:	return (SOCECONNRESET);
1777     case syserr_socket_nobufs:		return (SOCENOBUFS);
1778     case syserr_socket_isconn:		return (SOCEISCONN);
1779     case syserr_socket_notconn:		return (SOCENOTCONN);
1780     case syserr_socket_shutdown:	return (SOCESHUTDOWN);
1781     case syserr_socket_toomanyrefs:	return (SOCETOOMANYREFS);
1782     case syserr_socket_timedout:	return (SOCETIMEDOUT);
1783     case syserr_socket_connrefused:	return (SOCECONNREFUSED);
1784     case syserr_socket_loop:		return (SOCELOOP);
1785     case syserr_socket_nametoolong:	return (SOCENAMETOOLONG);
1786     case syserr_socket_hostdown:	return (SOCEHOSTDOWN);
1787     case syserr_socket_hostunreach:	return (SOCEHOSTUNREACH);
1788     case syserr_socket_notempty:	return (SOCENOTEMPTY);
1789 #endif /* not DISABLE_SOCKET_SUPPORT */
1790 
1791     default:	return (NO_ERROR);
1792     }
1793 }
1794 
1795 #ifdef __GCC2__
1796 /* Grumble... stupid linking bug.  */
1797 #define dos_error_message(rc) 0
1798 #else /* not __GCC2__ */
1799 
1800 static const char *
dos_error_message(APIRET rc)1801 dos_error_message (APIRET rc)
1802 {
1803   unsigned int blength_increment = 64;
1804   unsigned int blength = blength_increment;
1805   char * buffer = (OS2_malloc_noerror (blength));
1806   ULONG mlength;
1807 
1808   if (buffer == 0)
1809     return (0);
1810   while (1)
1811     {
1812       if ((dos_get_message
1813 	   (0, 0, buffer, blength, rc, "OSO001.MSG", (&mlength)))
1814 	  != NO_ERROR)
1815 	{
1816 	  OS_free (buffer);
1817 	  return (0);
1818 	}
1819       if (mlength < blength)
1820 	{
1821 	  while ((mlength > 0) && (isspace (buffer [mlength - 1])))
1822 	    mlength -= 1;
1823 	  buffer = (OS2_realloc_noerror (buffer, (mlength + 1)));
1824 	  if (buffer != 0)
1825 	    (buffer[mlength]) = '\0';
1826 	  return (buffer);
1827 	}
1828       blength += blength_increment;
1829       buffer = (OS2_realloc_noerror (buffer, (blength)));
1830       if (buffer == 0)
1831 	return (0);
1832     }
1833 }
1834 
1835 #endif /* not __GCC2__ */
1836 
1837 const char *
OS_error_code_to_message(unsigned int syserr)1838 OS_error_code_to_message (unsigned int syserr)
1839 {
1840   static const char * last_message = 0;
1841   APIRET code = (syserr_to_error_code ((enum syserr_names) syserr));
1842   if (code == NO_ERROR)
1843     return (0);
1844   if (last_message != 0)
1845     OS_free ((void *) last_message);
1846   last_message = (dos_error_message (code));
1847   /* Many of OS/2's error messages are terminated with a period, but
1848      the runtime system is assuming that the messages have no period,
1849      and adding its own.  */
1850   if (last_message != 0)
1851     {
1852       unsigned int length = (strlen (last_message));
1853       if ((length > 0) && ((last_message [length - 1]) == '.'))
1854 	(((char *) last_message) [length - 1]) = '\0';
1855     }
1856   return (last_message);
1857 }
1858 
1859 /* Machine-generated table, do not edit: */
1860 static char * syserr_names_table [] =
1861 {
1862   "invalid-function",
1863   "file-not-found",
1864   "path-not-found",
1865   "too-many-open-files",
1866   "access-denied",
1867   "invalid-handle",
1868   "arena-trashed",
1869   "not-enough-memory",
1870   "invalid-block",
1871   "bad-environment",
1872   "bad-format",
1873   "invalid-access",
1874   "invalid-data",
1875   "invalid-drive",
1876   "current-directory",
1877   "not-same-device",
1878   "no-more-files",
1879   "write-protect",
1880   "bad-unit",
1881   "not-ready",
1882   "bad-command",
1883   "crc",
1884   "bad-length",
1885   "seek",
1886   "not-dos-disk",
1887   "sector-not-found",
1888   "out-of-paper",
1889   "write-fault",
1890   "read-fault",
1891   "gen-failure",
1892   "sharing-violation",
1893   "lock-violation",
1894   "wrong-disk",
1895   "fcb-unavailable",
1896   "sharing-buffer-exceeded",
1897   "code-page-mismatched",
1898   "handle-eof",
1899   "handle-disk-full",
1900   "not-supported",
1901   "rem-not-list",
1902   "dup-name",
1903   "bad-netpath",
1904   "network-busy",
1905   "dev-not-exist",
1906   "too-many-cmds",
1907   "adap-hdw-err",
1908   "bad-net-resp",
1909   "unexp-net-err",
1910   "bad-rem-adap",
1911   "printq-full",
1912   "no-spool-space",
1913   "print-cancelled",
1914   "netname-deleted",
1915   "network-access-denied",
1916   "bad-dev-type",
1917   "bad-net-name",
1918   "too-many-names",
1919   "too-many-sess",
1920   "sharing-paused",
1921   "req-not-accep",
1922   "redir-paused",
1923   "sbcs-att-write-prot",
1924   "sbcs-general-failure",
1925   "xga-out-memory",
1926   "file-exists",
1927   "dup-fcb",
1928   "cannot-make",
1929   "fail-i24",
1930   "out-of-structures",
1931   "already-assigned",
1932   "invalid-password",
1933   "invalid-parameter",
1934   "net-write-fault",
1935   "no-proc-slots",
1936   "not-frozen",
1937   "tstovfl",
1938   "tstdup",
1939   "no-items",
1940   "interrupt",
1941   "device-in-use",
1942   "too-many-semaphores",
1943   "excl-sem-already-owned",
1944   "sem-is-set",
1945   "too-many-sem-requests",
1946   "invalid-at-interrupt-time",
1947   "sem-owner-died",
1948   "sem-user-limit",
1949   "disk-change",
1950   "drive-locked",
1951   "broken-pipe",
1952   "open-failed",
1953   "buffer-overflow",
1954   "disk-full",
1955   "no-more-search-handles",
1956   "invalid-target-handle",
1957   "protection-violation",
1958   "viokbd-request",
1959   "invalid-category",
1960   "invalid-verify-switch",
1961   "bad-driver-level",
1962   "call-not-implemented",
1963   "sem-timeout",
1964   "insufficient-buffer",
1965   "invalid-name",
1966   "invalid-level",
1967   "no-volume-label",
1968   "mod-not-found",
1969   "proc-not-found",
1970   "wait-no-children",
1971   "child-not-complete",
1972   "direct-access-handle",
1973   "negative-seek",
1974   "seek-on-device",
1975   "is-join-target",
1976   "is-joined",
1977   "is-substed",
1978   "not-joined",
1979   "not-substed",
1980   "join-to-join",
1981   "subst-to-subst",
1982   "join-to-subst",
1983   "subst-to-join",
1984   "busy-drive",
1985   "same-drive",
1986   "dir-not-root",
1987   "dir-not-empty",
1988   "is-subst-path",
1989   "is-join-path",
1990   "path-busy",
1991   "is-subst-target",
1992   "system-trace",
1993   "invalid-event-count",
1994   "too-many-muxwaiters",
1995   "invalid-list-format",
1996   "label-too-long",
1997   "too-many-tcbs",
1998   "signal-refused",
1999   "discarded",
2000   "not-locked",
2001   "bad-threadid-addr",
2002   "bad-arguments",
2003   "bad-pathname",
2004   "signal-pending",
2005   "uncertain-media",
2006   "max-thrds-reached",
2007   "monitors-not-supported",
2008   "unc-driver-not-installed",
2009   "lock-failed",
2010   "swapio-failed",
2011   "swapin-failed",
2012   "busy",
2013   "cancel-violation",
2014   "atomic-lock-not-supported",
2015   "read-locks-not-supported",
2016   "invalid-segment-number",
2017   "invalid-callgate",
2018   "invalid-ordinal",
2019   "already-exists",
2020   "no-child-process",
2021   "child-alive-nowait",
2022   "invalid-flag-number",
2023   "sem-not-found",
2024   "invalid-starting-codeseg",
2025   "invalid-stackseg",
2026   "invalid-moduletype",
2027   "invalid-exe-signature",
2028   "exe-marked-invalid",
2029   "bad-exe-format",
2030   "iterated-data-exceeds-64k",
2031   "invalid-minallocsize",
2032   "dynlink-from-invalid-ring",
2033   "iopl-not-enabled",
2034   "invalid-segdpl",
2035   "autodataseg-exceeds-64k",
2036   "ring2seg-must-be-movable",
2037   "reloc-chain-xeeds-seglim",
2038   "infloop-in-reloc-chain",
2039   "envvar-not-found",
2040   "not-current-ctry",
2041   "no-signal-sent",
2042   "filename-exced-range",
2043   "ring2-stack-in-use",
2044   "meta-expansion-too-long",
2045   "invalid-signal-number",
2046   "thread-1-inactive",
2047   "info-not-avail",
2048   "locked",
2049   "bad-dynalink",
2050   "too-many-modules",
2051   "nesting-not-allowed",
2052   "cannot-shrink",
2053   "zombie-process",
2054   "stack-in-high-memory",
2055   "invalid-exitroutine-ring",
2056   "getbuf-failed",
2057   "flushbuf-failed",
2058   "transfer-too-long",
2059   "forcenoswap-failed",
2060   "smg-no-target-window",
2061   "no-children",
2062   "invalid-screen-group",
2063   "bad-pipe",
2064   "pipe-busy",
2065   "no-data",
2066   "pipe-not-connected",
2067   "more-data",
2068   "vc-disconnected",
2069   "circularity-requested",
2070   "directory-in-cds",
2071   "invalid-fsd-name",
2072   "invalid-path",
2073   "invalid-ea-name",
2074   "ea-list-inconsistent",
2075   "ea-list-too-long",
2076   "no-meta-match",
2077   "findnotify-timeout",
2078   "no-more-items",
2079   "search-struc-reused",
2080   "char-not-found",
2081   "too-much-stack",
2082   "invalid-attr",
2083   "invalid-starting-ring",
2084   "invalid-dll-init-ring",
2085   "cannot-copy",
2086   "directory",
2087   "oplocked-file",
2088   "oplock-thread-exists",
2089   "volume-changed",
2090   "findnotify-handle-in-use",
2091   "findnotify-handle-closed",
2092   "notify-object-removed",
2093   "already-shutdown",
2094   "eas-didnt-fit",
2095   "ea-file-corrupt",
2096   "ea-table-full",
2097   "invalid-ea-handle",
2098   "no-cluster",
2099   "create-ea-file",
2100   "cannot-open-ea-file",
2101   "eas-not-supported",
2102   "need-eas-found",
2103   "duplicate-handle",
2104   "duplicate-name",
2105   "empty-muxwait",
2106   "mutex-owned",
2107   "not-owner",
2108   "param-too-small",
2109   "too-many-handles",
2110   "too-many-opens",
2111   "wrong-type",
2112   "unused-code",
2113   "thread-not-terminated",
2114   "init-routine-failed",
2115   "module-in-use",
2116   "not-enough-watchpoints",
2117   "too-many-posts",
2118   "already-posted",
2119   "already-reset",
2120   "sem-busy",
2121   "invalid-procid",
2122   "invalid-pdelta",
2123   "not-descendant",
2124   "not-session-manager",
2125   "invalid-pclass",
2126   "invalid-scope",
2127   "invalid-threadid",
2128   "dossub-shrink",
2129   "dossub-nomem",
2130   "dossub-overlap",
2131   "dossub-badsize",
2132   "dossub-badflag",
2133   "dossub-badselector",
2134   "mr-msg-too-long",
2135   "mr-mid-not-found",
2136   "mr-un-acc-msgf",
2137   "mr-inv-msgf-format",
2138   "mr-inv-ivcount",
2139   "mr-un-perform",
2140   "ts-wakeup",
2141   "ts-semhandle",
2142   "ts-notimer",
2143   "ts-handle",
2144   "ts-datetime",
2145   "sys-internal",
2146   "que-current-name",
2147   "que-proc-not-owned",
2148   "que-proc-owned",
2149   "que-duplicate",
2150   "que-element-not-exist",
2151   "que-no-memory",
2152   "que-invalid-name",
2153   "que-invalid-priority",
2154   "que-invalid-handle",
2155   "que-link-not-found",
2156   "que-memory-error",
2157   "que-prev-at-end",
2158   "que-proc-no-access",
2159   "que-empty",
2160   "que-name-not-exist",
2161   "que-not-initialized",
2162   "que-unable-to-access",
2163   "que-unable-to-add",
2164   "que-unable-to-init",
2165   "vio-invalid-mask",
2166   "vio-ptr",
2167   "vio-aptr",
2168   "vio-rptr",
2169   "vio-cptr",
2170   "vio-lptr",
2171   "vio-mode",
2172   "vio-width",
2173   "vio-attr",
2174   "vio-row",
2175   "vio-col",
2176   "vio-toprow",
2177   "vio-botrow",
2178   "vio-rightcol",
2179   "vio-leftcol",
2180   "scs-call",
2181   "scs-value",
2182   "vio-wait-flag",
2183   "vio-unlock",
2184   "sgs-not-session-mgr",
2185   "smg-invalid-session-id",
2186   "smg-no-sessions",
2187   "smg-session-not-found",
2188   "smg-set-title",
2189   "kbd-parameter",
2190   "kbd-no-device",
2191   "kbd-invalid-iowait",
2192   "kbd-invalid-length",
2193   "kbd-invalid-echo-mask",
2194   "kbd-invalid-input-mask",
2195   "mon-invalid-parms",
2196   "mon-invalid-devname",
2197   "mon-invalid-handle",
2198   "mon-buffer-too-small",
2199   "mon-buffer-empty",
2200   "mon-data-too-large",
2201   "mouse-no-device",
2202   "mouse-inv-handle",
2203   "mouse-inv-parms",
2204   "mouse-cant-reset",
2205   "mouse-display-parms",
2206   "mouse-inv-module",
2207   "mouse-inv-entry-pt",
2208   "mouse-inv-mask",
2209   "mouse-no-data",
2210   "mouse-ptr-drawn",
2211   "invalid-frequency",
2212   "nls-no-country-file",
2213   "nls-open-failed",
2214   "no-country-or-codepage",
2215   "nls-table-truncated",
2216   "nls-bad-type",
2217   "nls-type-not-found",
2218   "vio-smg-only",
2219   "vio-invalid-asciiz",
2220   "vio-deregister",
2221   "vio-no-popup",
2222   "vio-existing-popup",
2223   "kbd-smg-only",
2224   "kbd-invalid-asciiz",
2225   "kbd-invalid-mask",
2226   "kbd-register",
2227   "kbd-deregister",
2228   "mouse-smg-only",
2229   "mouse-invalid-asciiz",
2230   "mouse-invalid-mask",
2231   "mouse-register",
2232   "mouse-deregister",
2233   "smg-bad-action",
2234   "smg-invalid-call",
2235   "scs-sg-notfound",
2236   "scs-not-shell",
2237   "vio-invalid-parms",
2238   "vio-function-owned",
2239   "vio-return",
2240   "scs-invalid-function",
2241   "scs-not-session-mgr",
2242   "vio-register",
2243   "vio-no-mode-thread",
2244   "vio-no-save-restore-thd",
2245   "vio-in-bg",
2246   "vio-illegal-during-popup",
2247   "smg-not-baseshell",
2248   "smg-bad-statusreq",
2249   "que-invalid-wait",
2250   "vio-lock",
2251   "mouse-invalid-iowait",
2252   "vio-invalid-handle",
2253   "vio-illegal-during-lock",
2254   "vio-invalid-length",
2255   "kbd-invalid-handle",
2256   "kbd-no-more-handle",
2257   "kbd-cannot-create-kcb",
2258   "kbd-codepage-load-incompl",
2259   "kbd-invalid-codepage-id",
2260   "kbd-no-codepage-support",
2261   "kbd-focus-required",
2262   "kbd-focus-already-active",
2263   "kbd-keyboard-busy",
2264   "kbd-invalid-codepage",
2265   "kbd-unable-to-focus",
2266   "smg-session-non-select",
2267   "smg-session-not-foregrnd",
2268   "smg-session-not-parent",
2269   "smg-invalid-start-mode",
2270   "smg-invalid-related-opt",
2271   "smg-invalid-bond-option",
2272   "smg-invalid-select-opt",
2273   "smg-start-in-background",
2274   "smg-invalid-stop-option",
2275   "smg-bad-reserve",
2276   "smg-process-not-parent",
2277   "smg-invalid-data-length",
2278   "smg-not-bound",
2279   "smg-retry-sub-alloc",
2280   "kbd-detached",
2281   "vio-detached",
2282   "mou-detached",
2283   "vio-font",
2284   "vio-user-font",
2285   "vio-bad-cp",
2286   "vio-no-cp",
2287   "vio-na-cp",
2288   "invalid-code-page",
2289   "cplist-too-small",
2290   "cp-not-moved",
2291   "mode-switch-init",
2292   "code-page-not-found",
2293   "unexpected-slot-returned",
2294   "smg-invalid-trace-option",
2295   "vio-internal-resource",
2296   "vio-shell-init",
2297   "smg-no-hard-errors",
2298   "cp-switch-incomplete",
2299   "vio-transparent-popup",
2300   "critsec-overflow",
2301   "critsec-underflow",
2302   "vio-bad-reserve",
2303   "invalid-address",
2304   "zero-selectors-requested",
2305   "not-enough-selectors-ava",
2306   "invalid-selector",
2307   "smg-invalid-program-type",
2308   "smg-invalid-pgm-control",
2309   "smg-invalid-inherit-opt",
2310   "vio-extended-sg",
2311   "vio-not-pres-mgr-sg",
2312   "vio-shield-owned",
2313   "vio-no-more-handles",
2314   "vio-see-error-log",
2315   "vio-associated-dc",
2316   "kbd-no-console",
2317   "mouse-no-console",
2318   "mouse-invalid-handle",
2319   "smg-invalid-debug-parms",
2320   "kbd-extended-sg",
2321   "mou-extended-sg",
2322   "smg-invalid-icon-file",
2323   "trc-pid-non-existent",
2324   "trc-count-active",
2325   "trc-suspended-by-count",
2326   "trc-count-inactive",
2327   "trc-count-reached",
2328   "no-mc-trace",
2329   "mc-trace",
2330   "trc-count-zero",
2331   "smg-too-many-dds",
2332   "smg-invalid-notification",
2333   "lf-invalid-function",
2334   "lf-not-avail",
2335   "lf-suspended",
2336   "lf-buf-too-small",
2337   "lf-buffer-full",
2338   "lf-invalid-record",
2339   "lf-invalid-service",
2340   "lf-general-failure",
2341   "lf-invalid-id",
2342   "lf-invalid-handle",
2343   "lf-no-id-avail",
2344   "lf-template-area-full",
2345   "lf-id-in-use",
2346   "mou-not-initialized",
2347   "mouinitreal-done",
2348   "dossub-corrupted",
2349   "mouse-caller-not-subsys",
2350   "arithmetic-overflow",
2351   "tmr-no-device",
2352   "tmr-invalid-time",
2353   "pvw-invalid-entity",
2354   "pvw-invalid-entity-type",
2355   "pvw-invalid-spec",
2356   "pvw-invalid-range-type",
2357   "pvw-invalid-counter-blk",
2358   "pvw-invalid-text-blk",
2359   "prf-not-initialized",
2360   "prf-already-initialized",
2361   "prf-not-started",
2362   "prf-already-started",
2363   "prf-timer-out-of-range",
2364   "prf-timer-reset",
2365   "vdd-lock-useage-denied",
2366   "timeout",
2367   "vdm-down",
2368   "vdm-limit",
2369   "vdd-not-found",
2370   "invalid-caller",
2371   "pid-mismatch",
2372   "invalid-vdd-handle",
2373   "vlpt-no-spooler",
2374   "vcom-device-busy",
2375   "vlpt-device-busy",
2376   "nesting-too-deep",
2377   "vdd-missing",
2378   "bidi-invalid-length",
2379   "bidi-invalid-increment",
2380   "bidi-invalid-combination",
2381   "bidi-invalid-reserved",
2382   "bidi-invalid-effect",
2383   "bidi-invalid-csdrec",
2384   "bidi-invalid-csdstate",
2385   "bidi-invalid-level",
2386   "bidi-invalid-type-support",
2387   "bidi-invalid-orientation",
2388   "bidi-invalid-num-shape",
2389   "bidi-invalid-csd",
2390   "bidi-no-support",
2391   "bidi-rw-incomplete",
2392   "imp-invalid-parm",
2393   "imp-invalid-length",
2394   "hpfs-disk-error-warn",
2395   "mon-bad-buffer",
2396   "module-corrupted",
2397   "sm-outof-swapfile",
2398   "lf-timeout",
2399   "lf-suspend-success",
2400   "lf-resume-success",
2401   "lf-redirect-success",
2402   "lf-redirect-failure",
2403   "swapper-not-active",
2404   "invalid-swapid",
2405   "ioerr-swap-file",
2406   "swap-table-full",
2407   "swap-file-full",
2408   "cant-init-swapper",
2409   "swapper-already-init",
2410   "pmm-insufficient-memory",
2411   "pmm-invalid-flags",
2412   "pmm-invalid-address",
2413   "pmm-lock-failed",
2414   "pmm-unlock-failed",
2415   "pmm-move-incomplete",
2416   "ucom-drive-renamed",
2417   "ucom-filename-truncated",
2418   "ucom-buffer-length",
2419   "mon-chain-handle",
2420   "mon-not-registered",
2421   "smg-already-top",
2422   "pmm-arena-modified",
2423   "smg-printer-open",
2424   "pmm-set-flags-failed",
2425   "invalid-dos-dd",
2426   "blocked",
2427   "noblock",
2428   "instance-shared",
2429   "no-object",
2430   "partial-attach",
2431   "incache",
2432   "swap-io-problems",
2433   "crosses-object-boundary",
2434   "longlock",
2435   "shortlock",
2436   "uvirtlock",
2437   "aliaslock",
2438   "alias",
2439   "no-more-handles",
2440   "scan-terminated",
2441   "terminator-not-found",
2442   "not-direct-child",
2443   "delay-free",
2444   "guardpage",
2445   "swaperror",
2446   "ldrerror",
2447   "nomemory",
2448   "noaccess",
2449   "no-dll-term",
2450   "cpsio-code-page-invalid",
2451   "cpsio-no-spooler",
2452   "cpsio-font-id-invalid",
2453   "cpsio-internal-error",
2454   "cpsio-invalid-ptr-name",
2455   "cpsio-not-active",
2456   "cpsio-pid-full",
2457   "cpsio-pid-not-found",
2458   "cpsio-read-ctl-seq",
2459   "cpsio-read-fnt-def",
2460   "cpsio-write-error",
2461   "cpsio-write-full-error",
2462   "cpsio-write-handle-bad",
2463   "cpsio-swit-load",
2464   "cpsio-inv-command",
2465   "cpsio-no-font-swit",
2466   "entry-is-callgate",
2467 
2468   /* socket errors: */
2469   "soceperm",
2470   "socesrch",
2471   "soceintr",
2472   "socenxio",
2473   "socebadf",
2474   "soceacces",
2475   "socefault",
2476   "soceinval",
2477   "socemfile",
2478   "socepipe",
2479   "soceos2err",
2480   "socewouldblock",
2481   "soceinprogress",
2482   "socealready",
2483   "socenotsock",
2484   "socedestaddrreq",
2485   "socemsgsize",
2486   "soceprototype",
2487   "socenoprotoopt",
2488   "soceprotonosupport",
2489   "socesocktnosupport",
2490   "soceopnotsupp",
2491   "socepfnosupport",
2492   "soceafnosupport",
2493   "soceaddrinuse",
2494   "soceaddrnotavail",
2495   "socenetdown",
2496   "socenetunreach",
2497   "socenetreset",
2498   "soceconnaborted",
2499   "soceconnreset",
2500   "socenobufs",
2501   "soceisconn",
2502   "socenotconn",
2503   "soceshutdown",
2504   "socetoomanyrefs",
2505   "socetimedout",
2506   "soceconnrefused",
2507   "soceloop",
2508   "socenametoolong",
2509   "socehostdown",
2510   "socehostunreach",
2511   "socenotempty",
2512 
2513   "unknown"
2514 };
2515 
2516 void
OS_syserr_names(unsigned long * length,const char *** names)2517 OS_syserr_names (unsigned long * length, const char *** names)
2518 {
2519   (*length) = ((sizeof (syserr_names_table)) / (sizeof (char *)));
2520   (*names) = syserr_names_table;
2521 }
2522 
2523 void
OS_syscall_names(unsigned long * length,const char *** names)2524 OS_syscall_names (unsigned long * length, const char *** names)
2525 {
2526   (*length) = ((sizeof (syscall_names_table)) / (sizeof (char *)));
2527   (*names) = syscall_names_table;
2528 }
2529 
2530 void
OS_expect_sequential_access(void * start,void * end)2531 OS_expect_sequential_access (void *start, void *end)
2532 {
2533   (void) start;                 /* ignore */
2534   (void) end;                   /* ignore */
2535 }
2536 
2537 void
OS_expect_normal_access(void * start,void * end)2538 OS_expect_normal_access (void *start, void *end)
2539 {
2540   (void) start;                 /* ignore */
2541   (void) end;                   /* ignore */
2542 }
2543 
2544 void
OS_free_pages(void * start,void * end)2545 OS_free_pages (void *start, void *end)
2546 {
2547   (void) start;                 /* ignore */
2548   (void) end;                   /* ignore */
2549 }
2550