perl 5.002beta1h patch: Configure
[p5sagit/p5-mst-13.2.git] / os2 / os2ish.h
1 #include <signal.h>
2
3 /* HAS_IOCTL:
4  *      This symbol, if defined, indicates that the ioctl() routine is
5  *      available to set I/O characteristics
6  */
7 #define HAS_IOCTL               /**/
8  
9 /* HAS_UTIME:
10  *      This symbol, if defined, indicates that the routine utime() is
11  *      available to update the access and modification times of files.
12  */
13 #define HAS_UTIME               /**/
14
15 #define HAS_KILL
16 #define HAS_WAIT
17
18 #ifndef SIGABRT
19 #    define SIGABRT SIGILL
20 #endif
21 #ifndef SIGILL
22 #    define SIGILL 6         /* blech */
23 #endif
24 #define ABORT() kill(getpid(),SIGABRT);
25
26 /*
27  * fwrite1() should be a routine with the same calling sequence as fwrite(),
28  * but which outputs all of the bytes requested as a single stream (unlike
29  * fwrite() itself, which on some systems outputs several distinct records
30  * if the number_of_items parameter is >1).
31  */
32 #define fwrite1 fwrite
33
34 #define my_getenv(var) getenv(var)
35
36 /*****************************************************************************/
37
38 #include <stdlib.h>     /* before the following definitions */
39 #include <unistd.h>     /* before the following definitions */
40
41 #define chdir   _chdir2
42 #define getcwd  _getcwd2
43
44 /* This guy is needed for quick stdstd  */
45
46 #if defined(USE_STDIO_PTR) && defined(STDIO_PTR_LVALUE) && defined(STDIO_CNT_LVALUE)
47 #  define _filbuf _fill
48         /* Perl uses ungetc only with successful return */
49 #  define ungetc(c,fp) \
50         (FILE_ptr(fp) > FILE_base(fp) && c == (int)*(FILE_ptr(fp) - 1) \
51          ? (--FILE_ptr(fp), ++FILE_cnt(fp), (int)c) : ungetc(c,fp))
52 #endif
53
54 #define OP_BINARY O_BINARY
55
56 #define OS2_STAT_HACK 1
57 #if OS2_STAT_HACK
58
59 #define Stat(fname,bufptr) os2_stat((fname),(bufptr))
60 #define Fstat(fd,bufptr)   fstat((fd),(bufptr))
61
62 #undef S_IFBLK
63 #undef S_ISBLK
64 #define S_IFBLK         0120000
65 #define S_ISBLK(mode)   (((mode) & S_IFMT) == S_IFBLK)
66
67 #else
68
69 #define Stat(fname,bufptr) stat((fname),(bufptr))
70 #define Fstat(fd,bufptr)   fstat((fd),(bufptr))
71
72 #endif