Annotation of 43BSDReno/sys/hpux/hpux.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Copyright (c) 1988 University of Utah.
                      3:  * Copyright (c) 1990 The Regents of the University of California.
                      4:  * All rights reserved.
                      5:  *
                      6:  * This code is derived from software contributed to Berkeley by
                      7:  * the Systems Programming Group of the University of Utah Computer
                      8:  * Science Department.
                      9:  *
                     10:  * Redistribution is only permitted until one year after the first shipment
                     11:  * of 4.4BSD by the Regents.  Otherwise, redistribution and use in source and
                     12:  * binary forms are permitted provided that: (1) source distributions retain
                     13:  * this entire copyright notice and comment, and (2) distributions including
                     14:  * binaries display the following acknowledgement:  This product includes
                     15:  * software developed by the University of California, Berkeley and its
                     16:  * contributors'' in the documentation or other materials provided with the
                     17:  * distribution and in all advertising materials mentioning features or use
                     18:  * of this software.  Neither the name of the University nor the names of
                     19:  * its contributors may be used to endorse or promote products derived from
                     20:  * this software without specific prior written permission.
                     21:  * THIS SOFTWARE IS PROVIDED AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
                     22:  * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
                     23:  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                     24:  *
                     25:  * from: Utah $Hdr: hpux.h 1.15 89/09/25$
                     26:  *
                     27:  *     @(#)hpux.h      7.1 (Berkeley) 5/8/90
                     28:  */
                     29: 
                     30: #include "hpux_exec.h"
                     31: 
                     32: /* HP-UX style UTSNAME struct used by uname syscall */
                     33: 
                     34: struct hpuxutsname {
                     35:        char    sysname[9];
                     36:        char    nodename[9];
                     37:        char    release[9];
                     38:        char    version[9];
                     39:        char    machine[9];
                     40:        char    idnumber[15];
                     41: };
                     42: 
                     43: /* HP-UX style "old" IOCTLs */
                     44: 
                     45: struct hpuxsgttyb {
                     46:        char    sg_ispeed;
                     47:        char    sg_ospeed;
                     48:        char    sg_erase;
                     49:        char    sg_kill;
                     50:        int     sg_flags;       /* only a short in BSD */
                     51: };
                     52: 
                     53: #define V7_HUPCL       00001
                     54: #define V7_XTABS       00002
                     55: #define V7_NOAL                04000
                     56: 
                     57: #define        HPUXTIOCGETP    _IOR('t', 8, struct hpuxsgttyb)
                     58: #define        HPUXTIOCSETP    _IOW('t', 9, struct hpuxsgttyb)
                     59: 
                     60: /* 6.5 job control related ioctls which need to be mapped */
                     61: 
                     62: #define        HPUXTIOCSLTC    _IOW('T', 23, struct ltchars)
                     63: #define        HPUXTIOCGLTC    _IOR('T', 24, struct ltchars)
                     64: #define        HPUXTIOCLBIS    _IOW('T', 25, int)
                     65: #define        HPUXTIOCLBIC    _IOW('T', 26, int)
                     66: #define        HPUXTIOCLSET    _IOW('T', 27, int)
                     67: #define        HPUXTIOCLGET    _IOR('T', 28, int)
                     68: #      define HPUXLTOSTOP      0000001
                     69: #define        HPUXTIOCSPGRP   _IOW('T', 29, int)
                     70: #define        HPUXTIOCGPGRP   _IOR('T', 30, int)
                     71: #define HPUXTIOCCONS   _IO('t', 104)
                     72: 
                     73: /* HP-UX directory stuff */
                     74: 
                     75: #define HPUXNSIZ       14
                     76: #define HPUXPSIZ       10
                     77: #define HPUXDSIZ       sizeof(struct hpuxdirect)
                     78: 
                     79: struct hpuxdirect {
                     80:        u_long  hpuxd_ino;
                     81:        u_short hpuxd_reclen;
                     82:        u_short hpuxd_namlen;
                     83:        char    hpuxd_name[HPUXNSIZ];
                     84:        char    hpuxd_pad[HPUXPSIZ];
                     85: };
                     86: 
                     87: /* HP-UX stat structure */
                     88: 
                     89: #define bsdtohpuxdev(d)        ((major(d) << 24) | minor(d))
                     90: 
                     91: struct hpuxstat {
                     92:        long    hst_dev;
                     93:        u_long  hst_ino;
                     94:        u_short hst_mode;
                     95:        short   hst_nlink;
                     96:        u_short hst_uid;
                     97:        u_short hst_gid;
                     98:        long    hst_rdev;
                     99:        off_t   hst_size;
                    100:        time_t  hst_atime;
                    101:        int     hst_spare1;
                    102:        time_t  hst_mtime;
                    103:        int     hst_spare2;
                    104:        time_t  hst_ctime;
                    105:        int     hst_spare3;
                    106:        long    hst_blksize;
                    107:        long    hst_blocks;
                    108:        u_int   hst_remote;
                    109:        long    hst_netdev;     
                    110:        u_long  hst_netino;
                    111:        long    hst_spare4[9];
                    112: };
                    113: 
                    114: /*
                    115:  * Skeletal 6.X HP-UX user structure info for ptrace() mapping.
                    116:  * Yes, this is as bogus as it gets...
                    117:  */
                    118: 
                    119: /* 6.0/6.2 offsets */
                    120: #define oHU_AROFF      0x004
                    121: #define oHU_TSOFF      0x092
                    122: #define oHU_EDOFF      0x91E
                    123: #define oHU_FPOFF      0xA66
                    124: 
                    125: /* 6.5 offsets */
                    126: #define HU_AROFF       0x004
                    127: #define HU_TSOFF       0x0B2
                    128: #define HU_EDOFF       0x93A
                    129: #define HU_FPOFF       0xA86
                    130: 
                    131: #define HU_PAD1        (HU_AROFF)
                    132: #define HU_PAD2        (HU_TSOFF-HU_AROFF-4)
                    133: #define HU_PAD3        (HU_EDOFF-HU_TSOFF-12)
                    134: #define HU_PAD4        (HU_FPOFF-HU_EDOFF-sizeof(struct hpux_exec))
                    135: 
                    136: struct hpuxuser {
                    137:        u_char  whocares1[HU_PAD1];     /* +0x000 */
                    138:        int     *hpuxu_ar0;             /* +0x004 */
                    139:        u_char  whocares2[HU_PAD2];     /* +0x008 */
                    140:        int     hpuxu_tsize;            /* +0x0B2 */
                    141:        int     hpuxu_dsize;            /* +0x0B6 */
                    142:        int     hpuxu_ssize;            /* +0x0BA */
                    143:        u_char  whocares3[HU_PAD3];     /* +0x0BE */
                    144:        struct  hpux_exec hpuxu_exdata; /* +0x93A */
                    145:        u_char  whocares4[HU_PAD4];     /* +0x95E */
                    146:        struct  hpuxfp {                /* +0xA66 */
                    147:                int hpfp_save[54];
                    148:                int hpfp_ctrl[3];
                    149:                int hpfp_reg[24];
                    150:        } hpuxu_fp;
                    151:        short   hpuxu_dragon;           /* +0xBCA */
                    152: };
                    153: 
                    154: /* HP-UX compat file flags */
                    155: #define HPUXFCREAT     00000400
                    156: #define        HPUXFTRUNC      00001000
                    157: #define        HPUXFEXCL       00002000
                    158: #define HPUXFSYNCIO    00100000
                    159: #define HPUXFREMOTE    01000000
                    160: #define FUSECACHE      04000000
                    161: 
                    162: /* HP-UX only sysV shmctl() commands */
                    163: #define SHM_LOCK       3       /* Lock segment in core */
                    164: #define SHM_UNLOCK     4       /* Unlock segment */
                    165: 
                    166: /* HP-UX rtprio values */
                    167: #define RTPRIO_MIN     0
                    168: #define RTPRIO_MAX     127
                    169: #define RTPRIO_NOCHG   1000
                    170: #define RTPRIO_RTOFF   1001
                    171: 
                    172: /* HP-UX only sigvec sv_flags values */
                    173: #define HPUXSV_RESET   000000004
                    174: 
                    175: /*
                    176:  * HP-UX returns SIGILL instead of SIGFPE for the CHK and TRAPV exceptions.
                    177:  * It also returns different u_code values for certain illegal instruction
                    178:  * and floating point exceptions.  Here are the proper HP-UX u_code values
                    179:  * (numbers from hpux 6.2 manual pages).
                    180:  */
                    181: 
                    182: /* SIGILL codes */
                    183: #define        HPUX_ILL_ILLINST_TRAP   0       /* T_ILLINST+USER */
                    184: #define        HPUX_ILL_CHK_TRAP       6       /* T_CHKINST+USER */
                    185: #define        HPUX_ILL_TRAPV_TRAP     7       /* T_TRAPVINST+USER */
                    186: #define        HPUX_ILL_PRIV_TRAP      8       /* T_PRIVINST+USER */
                    187: 
                    188: /* SIGFPE codes */
                    189: #define        HPUX_FPE_INTDIV_TRAP    5       /* T_ZERODIV+USER */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.