1 /* vi:set ts=8 sts=4 sw=4 noet: 2 * 3 * VIM - Vi IMproved by Bram Moolenaar 4 * 5 * Do ":help uganda" in Vim to read copying and usage conditions. 6 * Do ":help credits" in Vim to see a list of people who contributed. 7 */ 8 9 /* 10 * os_unixx.h -- include files that are only used in os_unix.c 11 */ 12 13 /* 14 * Stuff for signals 15 */ 16 #if defined(HAVE_SIGSET) && !defined(signal) 17 # define signal sigset 18 #endif 19 20 // Sun's sys/ioctl.h redefines symbols from termio world 21 #if defined(HAVE_SYS_IOCTL_H) && !defined(SUN_SYSTEM) 22 # include <sys/ioctl.h> 23 #endif 24 25 #ifndef USE_SYSTEM // use fork/exec to start the shell 26 27 # if defined(HAVE_SYS_WAIT_H) || defined(HAVE_UNION_WAIT) 28 # include <sys/wait.h> 29 # endif 30 31 # ifndef WEXITSTATUS 32 # ifdef HAVE_UNION_WAIT 33 # define WEXITSTATUS(stat_val) ((stat_val).w_T.w_Retcode) 34 # else 35 # define WEXITSTATUS(stat_val) (((stat_val) >> 8) & 0377) 36 # endif 37 # endif 38 39 # ifndef WIFEXITED 40 # ifdef HAVE_UNION_WAIT 41 # define WIFEXITED(stat_val) ((stat_val).w_T.w_Termsig == 0) 42 # else 43 # define WIFEXITED(stat_val) (((stat_val) & 255) == 0) 44 # endif 45 # endif 46 47 #endif // !USE_SYSTEM 48 49 #ifdef HAVE_STROPTS_H 50 # ifdef sinix 51 # define buf_T __system_buf_t__ 52 # endif 53 # include <stropts.h> 54 # ifdef sinix 55 # undef buf_T 56 # endif 57 #endif 58 59 #ifdef HAVE_STRING_H 60 # include <string.h> 61 #endif 62 63 #ifdef HAVE_SYS_STREAM_H 64 # include <sys/stream.h> 65 #endif 66 67 #ifdef HAVE_SYS_UTSNAME_H 68 # include <sys/utsname.h> 69 #endif 70 71 #ifdef HAVE_SYS_SYSTEMINFO_H 72 // <sys/systeminfo.h> uses SYS_NMLN but it may not be defined (CrayT3E). 73 # ifndef SYS_NMLN 74 # define SYS_NMLN 32 75 # endif 76 77 # include <sys/systeminfo.h> // for sysinfo 78 #endif 79 80 /* 81 * We use termios.h if both termios.h and termio.h are available. 82 * Termios is supposed to be a superset of termio.h. Don't include them both, 83 * it may give problems on some systems (e.g. hpux). 84 * I don't understand why we don't want termios.h for apollo. 85 */ 86 #if defined(HAVE_TERMIOS_H) && !defined(apollo) 87 # include <termios.h> 88 #else 89 # ifdef HAVE_TERMIO_H 90 # include <termio.h> 91 # else 92 # ifdef HAVE_SGTTY_H 93 # include <sgtty.h> 94 # endif 95 # endif 96 #endif 97 98 #ifdef HAVE_SYS_PTEM_H 99 # include <sys/ptem.h> // must be after termios.h for Sinix 100 # ifndef _IO_PTEM_H // For UnixWare that should check for _IO_PT_PTEM_H 101 # define _IO_PTEM_H 102 # endif 103 #endif 104 105 // shared library access 106 #if defined(HAVE_DLFCN_H) && defined(USE_DLOPEN) 107 # if defined(__MVS__) && !defined (__SUSV3) 108 // needed to define RTLD_LAZY (Anthony Giorgio) 109 # define __SUSV3 110 # endif 111 # include <dlfcn.h> 112 #else 113 # if defined(HAVE_DL_H) && defined(HAVE_SHL_LOAD) 114 # include <dl.h> 115 # endif 116 #endif 117