home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / mitsch75.zip / scheme-7_5_17-src.zip / scheme-7.5.17 / src / microcode / os2.h < prev    next >
C/C++ Source or Header  |  2000-12-05  |  3KB  |  85 lines

  1. /* -*-C-*-
  2.  
  3. $Id: os2.h,v 1.7 2000/12/05 21:23:46 cph Exp $
  4.  
  5. Copyright (c) 1994-2000 Massachusetts Institute of Technology
  6.  
  7. This program is free software; you can redistribute it and/or modify
  8. it under the terms of the GNU General Public License as published by
  9. the Free Software Foundation; either version 2 of the License, or (at
  10. your option) any later version.
  11.  
  12. This program is distributed in the hope that it will be useful, but
  13. WITHOUT ANY WARRANTY; without even the implied warranty of
  14. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  15. General Public License for more details.
  16.  
  17. You should have received a copy of the GNU General Public License
  18. along with this program; if not, write to the Free Software
  19. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  20. */
  21.  
  22. /* OS/2 system include file */
  23.  
  24. #ifndef SCM_OS2_H
  25. #define SCM_OS2_H
  26.  
  27. #include "config.h"
  28. #include "dstack.h"
  29. #include "osscheme.h"
  30. #include "syscall.h"
  31.  
  32. /* Defined by "scheme.h" and conflicts with definition in <os2.h>.
  33.    Scheme's definition not needed in OS/2 files.  */
  34. #ifdef END_OF_CHAIN
  35. #  undef END_OF_CHAIN
  36. #endif
  37.  
  38. #define INCL_BASE
  39. #define INCL_PM
  40. #include <os2.h>
  41. #include <stdio.h>
  42. #include <stdlib.h>
  43. #include <stddef.h>
  44. #include <string.h>
  45. #include <ctype.h>
  46. #include <setjmp.h>
  47. #include <limits.h>
  48.  
  49. #include "os2api.h"
  50. #include "os2msg.h"
  51. #include "os2io.h"
  52. #include "os2thrd.h"
  53. #include "os2ctty.h"
  54. #include "os2cthrd.h"
  55. #include "os2pm.h"
  56.  
  57. #define FILE_ANY                            \
  58.   (FILE_NORMAL | FILE_HIDDEN | FILE_SYSTEM | FILE_DIRECTORY | FILE_ARCHIVED)
  59.  
  60. extern HMTX OS2_create_mutex_semaphore  (PSZ, int);
  61. extern void OS2_close_mutex_semaphore   (HMTX);
  62. extern void OS2_request_mutex_semaphore (HMTX);
  63. extern void OS2_release_mutex_semaphore (HMTX);
  64.  
  65. extern HEV   OS2_create_event_semaphore (PSZ, int);
  66. extern void  OS2_close_event_semaphore  (HEV);
  67. extern int   OS2_post_event_semaphore   (HEV);
  68. extern ULONG OS2_reset_event_semaphore  (HEV);
  69. extern int   OS2_wait_event_semaphore   (HEV, int);
  70.  
  71. extern HQUEUE OS2_create_queue (ULONG);
  72. extern void   OS2_close_queue  (HQUEUE);
  73. extern void   OS2_write_queue  (HQUEUE, ULONG, ULONG, PVOID, ULONG);
  74. extern int    OS2_read_queue   (HQUEUE, ULONG *, ULONG *, PVOID *, HEV);
  75.  
  76. extern ULONG OS2_system_variable (ULONG);
  77.  
  78. /* Logic errors are fatal and can't be caught.  These are errors that
  79.    should never happen, and if one does occur the program cannot
  80.    proceed.  */
  81. #define OS2_logic_error(d) OS2_logic_error_1 ((d), __FILE__, __LINE__)
  82. extern void OS2_logic_error_1 (const char *, const char *, unsigned int);
  83.  
  84. #endif /* SCM_OS2_H */
  85.