Annotation of Net2/arch/hp300/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 and use in source and binary forms, with or without
                     11:  * modification, are permitted provided that the following conditions
                     12:  * are met:
                     13:  * 1. Redistributions of source code must retain the above copyright
                     14:  *    notice, this list of conditions and the following disclaimer.
                     15:  * 2. Redistributions in binary form must reproduce the above copyright
                     16:  *    notice, this list of conditions and the following disclaimer in the
                     17:  *    documentation and/or other materials provided with the distribution.
                     18:  * 3. All advertising materials mentioning features or use of this software
                     19:  *    must display the following acknowledgement:
                     20:  *     This product includes software developed by the University of
                     21:  *     California, Berkeley and its contributors.
                     22:  * 4. Neither the name of the University nor the names of its contributors
                     23:  *    may be used to endorse or promote products derived from this software
                     24:  *    without specific prior written permission.
                     25:  *
                     26:  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
                     27:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
                     28:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
                     29:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
                     30:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
                     31:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
                     32:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
                     33:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
                     34:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
                     35:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
                     36:  * SUCH DAMAGE.
                     37:  *
                     38:  * from: Utah $Hdr: hpux.h 1.18 91/02/09$
                     39:  *
                     40:  *     @(#)hpux.h      7.4 (Berkeley) 5/7/91
                     41:  */
                     42: 
                     43: #include "hpux_exec.h"
                     44: 
                     45: /* HP-UX style UTSNAME struct used by uname syscall */
                     46: 
                     47: struct hpuxutsname {
                     48:        char    sysname[9];
                     49:        char    nodename[9];
                     50:        char    release[9];
                     51:        char    version[9];
                     52:        char    machine[9];
                     53:        char    idnumber[15];
                     54: };
                     55: 
                     56: /* HP-UX style "old" IOCTLs */
                     57: 
                     58: struct hpuxsgttyb {
                     59:        char    sg_ispeed;
                     60:        char    sg_ospeed;
                     61:        char    sg_erase;
                     62:        char    sg_kill;
                     63:        int     sg_flags;       /* only a short in BSD */
                     64: };
                     65: 
                     66: #define V7_HUPCL       00001
                     67: #define V7_XTABS       00002
                     68: #define V7_NOAL                04000
                     69: 
                     70: #define        HPUXTIOCGETP    _IOR('t', 8, struct hpuxsgttyb)
                     71: #define        HPUXTIOCSETP    _IOW('t', 9, struct hpuxsgttyb)
                     72: 
                     73: /* 6.5 job control related ioctls which need to be mapped */
                     74: 
                     75: #define        HPUXTIOCSLTC    _IOW('T', 23, struct ltchars)
                     76: #define        HPUXTIOCGLTC    _IOR('T', 24, struct ltchars)
                     77: #define        HPUXTIOCLBIS    _IOW('T', 25, int)
                     78: #define        HPUXTIOCLBIC    _IOW('T', 26, int)
                     79: #define        HPUXTIOCLSET    _IOW('T', 27, int)
                     80: #define        HPUXTIOCLGET    _IOR('T', 28, int)
                     81: #      define HPUXLTOSTOP      0000001
                     82: #define        HPUXTIOCSPGRP   _IOW('T', 29, int)
                     83: #define        HPUXTIOCGPGRP   _IOR('T', 30, int)
                     84: #define HPUXTIOCCONS   _IO('t', 104)
                     85: 
                     86: /* non-blocking IO--doesn't interfere with O_NDELAY */
                     87: #define HPUXFIOSNBIO   _IOW('f', 126, int)
                     88: 
                     89: /* HP-UX stat structure */
                     90: 
                     91: #define bsdtohpuxdev(d)        ((major(d) << 24) | minor(d))
                     92: 
                     93: struct hpuxstat {
                     94:        long    hst_dev;
                     95:        u_long  hst_ino;
                     96:        u_short hst_mode;
                     97:        short   hst_nlink;
                     98:        u_short hst_uid;
                     99:        u_short hst_gid;
                    100:        long    hst_rdev;
                    101:        off_t   hst_size;
                    102:        time_t  hst_atime;
                    103:        int     hst_spare1;
                    104:        time_t  hst_mtime;
                    105:        int     hst_spare2;
                    106:        time_t  hst_ctime;
                    107:        int     hst_spare3;
                    108:        long    hst_blksize;
                    109:        long    hst_blocks;
                    110:        u_int   hst_remote;
                    111:        long    hst_netdev;     
                    112:        u_long  hst_netino;
                    113:        long    hst_spare4[9];
                    114: };
                    115: 
                    116: /*
                    117:  * Skeletal 6.X HP-UX user structure info for ptrace() mapping.
                    118:  * Yes, this is as bogus as it gets...
                    119:  */
                    120: 
                    121: /* 6.0/6.2 offsets */
                    122: #define ooHU_AROFF     0x004
                    123: #define ooHU_TSOFF     0x092
                    124: #define ooHU_EDOFF     0x91E
                    125: #define ooHU_FPOFF     0xA66
                    126: 
                    127: /* 6.5 offsets */
                    128: #define oHU_AROFF      0x004
                    129: #define oHU_TSOFF      0x0B2
                    130: #define oHU_EDOFF      0x93A
                    131: #define oHU_FPOFF      0xA86
                    132: 
                    133: /* 7.X offsets */
                    134: #define HU_AROFF       0x004
                    135: #define HU_TSOFF       0x0B4
                    136: #define HU_EDOFF       0x8C8
                    137: #define HU_FPOFF       0xA28
                    138: 
                    139: #define HU_PAD1        (HU_AROFF)
                    140: #define HU_PAD2        (HU_TSOFF-HU_AROFF-4)
                    141: #define HU_PAD3        (HU_EDOFF-HU_TSOFF-12)
                    142: #define HU_PAD4        (HU_FPOFF-HU_EDOFF-sizeof(struct hpux_exec))
                    143: 
                    144: struct hpuxuser {
                    145:        u_char  whocares1[HU_PAD1];     /* +0x000 */
                    146:        int     *hpuxu_ar0;             /* +0x004 */
                    147:        u_char  whocares2[HU_PAD2];     /* +0x008 */
                    148:        int     hpuxu_tsize;            /* +0x0B2 */
                    149:        int     hpuxu_dsize;            /* +0x0B6 */
                    150:        int     hpuxu_ssize;            /* +0x0BA */
                    151:        u_char  whocares3[HU_PAD3];     /* +0x0BE */
                    152:        struct  hpux_exec hpuxu_exdata; /* +0x93A */
                    153:        u_char  whocares4[HU_PAD4];     /* +0x95E */
                    154:        struct  hpuxfp {                /* +0xA66 */
                    155:                int hpfp_save[54];
                    156:                int hpfp_ctrl[3];
                    157:                int hpfp_reg[24];
                    158:        } hpuxu_fp;
                    159:        short   hpuxu_dragon;           /* +0xBCA */
                    160: };
                    161: 
                    162: /* HP-UX compat file flags */
                    163: #define HPUXFCREAT     00000400
                    164: #define        HPUXFTRUNC      00001000
                    165: #define        HPUXFEXCL       00002000
                    166: #define HPUXFSYNCIO    00100000
                    167: #define HPUXFREMOTE    01000000
                    168: #define FUSECACHE      04000000
                    169: 
                    170: /* HP-UX only sysV shmctl() commands */
                    171: #define SHM_LOCK       3       /* Lock segment in core */
                    172: #define SHM_UNLOCK     4       /* Unlock segment */
                    173: 
                    174: /* HP-UX rtprio values */
                    175: #define RTPRIO_MIN     0
                    176: #define RTPRIO_MAX     127
                    177: #define RTPRIO_NOCHG   1000
                    178: #define RTPRIO_RTOFF   1001
                    179: 
                    180: /* HP-UX only sigvec sv_flags values */
                    181: #define HPUXSV_RESET   000000004
                    182: 
                    183: /*
                    184:  * HP-UX returns SIGILL instead of SIGFPE for the CHK and TRAPV exceptions.
                    185:  * It also returns different u_code values for certain illegal instruction
                    186:  * and floating point exceptions.  Here are the proper HP-UX u_code values
                    187:  * (numbers from hpux 6.2 manual pages).
                    188:  */
                    189: 
                    190: /* SIGILL codes */
                    191: #define        HPUX_ILL_ILLINST_TRAP   0       /* T_ILLINST+USER */
                    192: #define        HPUX_ILL_CHK_TRAP       6       /* T_CHKINST+USER */
                    193: #define        HPUX_ILL_TRAPV_TRAP     7       /* T_TRAPVINST+USER */
                    194: #define        HPUX_ILL_PRIV_TRAP      8       /* T_PRIVINST+USER */
                    195: 
                    196: /* SIGFPE codes */
                    197: #define        HPUX_FPE_INTDIV_TRAP    5       /* T_ZERODIV+USER */
                    198: 
                    199: /* HP-UX POSIX signal stuff implementation */
                    200: typedef struct __hpuxsigset_t { long sigset[8]; } hpuxsigset_t;
                    201: struct hpuxsigaction {
                    202:        void            (*sa_handler)();
                    203:        hpuxsigset_t    sa_mask;
                    204:        int             sa_flags;
                    205: };
                    206: #define HPUXSA_ONSTACK         1
                    207: #define HPUXSA_RESETHAND       4
                    208: #define HPUXSA_NOCLDSTOP       8
                    209: 
                    210: #define        HPUXSIG_BLOCK   0       /* block specified signal set */
                    211: #define        HPUXSIG_UNBLOCK 1       /* unblock specified signal set */
                    212: #define        HPUXSIG_SETMASK 2       /* set specified signal set */

unix.superglobalmegacorp.com

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