source: trunk/third/perl/plan9/plan9ish.h @ 14545

Revision 14545, 4.0 KB checked in by ghudson, 24 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r14544, which included commits to RCS files with non-trunk default branches.
Line 
1#ifndef __PLAN9ISH_H__
2#define __PLAN9ISH_H__
3
4/*
5 * The following symbols are defined if your operating system supports
6 * functions by that name.  All Unixes I know of support them, thus they
7 * are not checked by the configuration script, but are directly defined
8 * here.
9 */
10
11/* HAS_IOCTL:
12 *      This symbol, if defined, indicates that the ioctl() routine is
13 *      available to set I/O characteristics
14 */
15#define HAS_IOCTL               /**/
16 
17/* HAS_UTIME:
18 *      This symbol, if defined, indicates that the routine utime() is
19 *      available to update the access and modification times of files.
20 */
21#define HAS_UTIME               /**/
22
23/* HAS_GROUP
24 *      This symbol, if defined, indicates that the getgrnam() and
25 *      getgrgid() routines are available to get group entries.
26 *      The getgrent() has a separate definition, HAS_GETGRENT.
27 */
28/*#define HAS_GROUP             /**/
29
30/* HAS_PASSWD
31 *      This symbol, if defined, indicates that the getpwnam() and
32 *      getpwuid() routines are available to get password entries.
33 *      The getpwent() has a separate definition, HAS_GETPWENT.
34 */
35/*#define HAS_PASSWD            /**/
36
37#define HAS_KILL
38#define HAS_WAIT
39 
40/* UNLINK_ALL_VERSIONS:
41 *      This symbol, if defined, indicates that the program should arrange
42 *      to remove all versions of a file if unlink() is called.  This is
43 *      probably only relevant for VMS.
44 */
45/* #define UNLINK_ALL_VERSIONS          /**/
46
47/* PLAN9:
48 *      This symbol, if defined, indicates that the program is running under
49 *      Plan 9. 
50 */
51#ifndef PLAN9
52#define PLAN9           /**/
53#endif
54
55/* USEMYBINMODE
56 *      This symbol, if defined, indicates that the program should
57 *      use the routine my_binmode(FILE *fp, char iotype, int mode) to insure
58 *      that a file is in "binary" mode -- that is, that no translation
59 *      of bytes occurs on read or write operations.
60 */
61#undef USEMYBINMODE
62
63/* Stat_t:
64 *      This symbol holds the type used to declare buffers for information
65 *      returned by stat().  It's usually just struct stat.  It may be necessary
66 *      to include <sys/stat.h> and <sys/types.h> to get any typedef'ed
67 *      information.
68 */
69#define Stat_t struct stat
70
71/* USE_STAT_RDEV:
72*       This symbol is defined if this system has a stat structure declaring
73*       st_rdev
74*/
75#undef USE_STAT_RDEV            /**/
76
77/* ACME_MESS:
78 *      This symbol, if defined, indicates that error messages should be
79 *      should be generated in a format that allows the use of the Acme
80 *      GUI/editor's autofind feature.
81 */
82#define ACME_MESS       /**/
83
84/* ALTERNATE_SHEBANG:
85 *      This symbol, if defined, contains a "magic" string which may be used
86 *      as the first line of a Perl program designed to be executed directly
87 *      by name, instead of the standard Unix #!.  If ALTERNATE_SHEBANG
88 *      begins with a character other then #, then Perl will only treat
89 *      it as a command line if if finds the string "perl" in the first
90 *      word; otherwise it's treated as the first line of code in the script.
91 *      (IOW, Perl won't hand off to another interpreter via an alternate
92 *      shebang sequence that might be legal Perl code.)
93 */
94/* #define ALTERNATE_SHEBANG "#!" / **/
95
96#if !defined(NSIG) || defined(M_UNIX) || defined(M_XENIX)
97# include <signal.h>
98#endif
99
100#ifndef SIGABRT
101#    define SIGABRT SIGILL
102#endif
103#ifndef SIGILL
104#    define SIGILL 6         /* blech */
105#endif
106#define ABORT() kill(PerlProc_getpid(),SIGABRT);
107
108#define BIT_BUCKET "/dev/null"
109#define PERL_SYS_INIT(c,v)      MALLOC_INIT
110#define dXSUB_SYS
111#define PERL_SYS_TERM()         MALLOC_TERM
112
113/*
114 * fwrite1() should be a routine with the same calling sequence as fwrite(),
115 * but which outputs all of the bytes requested as a single stream (unlike
116 * fwrite() itself, which on some systems outputs several distinct records
117 * if the number_of_items parameter is >1).
118 */
119#define fwrite1 fwrite
120
121#define Stat(fname,bufptr) stat((fname),(bufptr))
122#define Fstat(fd,bufptr)   fstat((fd),(bufptr))
123#define Fflush(fp)         fflush(fp)
124#define Mkdir(path,mode)   mkdir((path),(mode))
125
126/* getenv related stuff */
127#define my_getenv(var) getenv(var)
128/* Plan 9 prefers getenv("home") to getenv("HOME")
129#define HOME home
130
131/* For use by POSIX.xs */
132extern int tcsendbreak(int, int);
133
134#endif /* __PLAN9ISH_H__ */
Note: See TracBrowser for help on using the repository browser.