1
0
Files
2022-09-29 17:59:04 +03:00

262 lines
5.9 KiB
C

#ident "$Header: /proj/irix6.5.7m/isms/stand/arcs/dmon/IP22/include/RCS/saioctl.h,v 1.1 1994/07/20 23:49:06 davidl Exp $"
/* $Copyright: $ */
/*
* saioctl.h -- standalone ioctl definitions
*/
#ifdef LANGUAGE_C
#include "sys/dkio.h"
#include "sys/gen_ioctl.h"
#endif LANGUAGE_C
#ifndef NULL
#define NULL 0
#endif
#define EOF (-1) /* EOF from getc() */
/*
* general ioctl's
*/
#define FIOCNBLOCK (('f'<<8)|1) /* set non-blocking io */
#define FIOCSCAN (('f'<<8)|2) /* scan for input */
/*
* "tty" ioctl's
*/
#define TIOCRAW (('t'<<8)|1) /* no special chars on char devices */
#define TIOCFLUSH (('t'<<8)|2) /* flush input */
#define TIOCPROTO (('t'<<8)|3) /* control pseudo console access */
#define TIOCREOPEN (('t'<<8)|4) /* reopen to effect baud rate chg */
#define TIOCRAWRAW (('t'<<8)|8) /* absolutely no special chars */
/*
* network ioctl's
*/
#define NIOCBIND (('n'<<8)|1) /* bind network address */
/*
* pseudo console ioctl's
*/
#define PIOCENABLE (('p'<<8)|1) /* enable device as console */
#define PIOCDISABLE (('p'<<8)|2) /* disable device as console */
#define PIOCSHOW (('p'<<8)|3) /* show enabled console devices */
/*
* bit field descriptions for printf %r and %R formats
*/
/*
* printf("%r %R", val, reg_descp);
* struct reg_desc *reg_descp;
*
* the %r and %R formats allow formatted print of bit fields. individual
* bit fields are described by a struct reg_desc, multiple bit fields within
* a single word can be described by multiple reg_desc structures.
* %r outputs a string of the format "<bit field descriptions>"
* %R outputs a string of the format "0x%x<bit field descriptions>"
*
* The fields in a reg_desc are:
* unsigned rd_mask; An appropriate mask to isolate the bit field
* within a word, and'ed with val
*
* int rd_shift; A shift amount to be done to the isolated
* bit field. done before printing the isolate
* bit field with rd_format and before searching
* for symbolic value names in rd_values
*
* char *rd_name; If non-null, a bit field name to label any
* out from rd_format or searching rd_values.
* if neither rd_format or rd_values is non-null
* rd_name is printed only if the isolated
* bit field is non-null.
*
* char *rd_format; If non-null, the shifted bit field value
* is printed using this format.
*
* struct reg_values *rd_values; If non-null, a pointer to a table
* matching numeric values with symbolic names.
* rd_values are searched and the symbolic
* value is printed if a match is found, if no
* match is found "???" is printed.
*
*/
/*
* register values
* map between numeric values and symbolic values
*/
#ifdef LANGUAGE_C
struct reg_values {
unsigned rv_value;
char *rv_name;
};
/*
* register descriptors are used for formatted prints of register values
* rd_mask and rd_shift must be defined, other entries may be null
*/
struct reg_desc {
unsigned rd_mask; /* mask to extract field */
int rd_shift; /* shift for extracted value, - >>, + << */
char *rd_name; /* field name */
char *rd_format; /* format to print field */
struct reg_values *rd_values; /* symbolic names of values */
};
#endif LANGUAGE_C
#ifdef LANGUAGE_C
extern int errno; /* just like unix ??? */
#endif LANGUAGE_C
#define EXCEPT_NORM 1
#define EXCEPT_UTLB 2
#define EXCEPT_BRKPT 3
#define EXCEPT_CACHE 4
#define EXCEPT_XTLB 5
/*
* register names
*/
#define R_R0 0
#define R_R1 1
#define R_R2 2
#define R_R3 3
#define R_R4 4
#define R_R5 5
#define R_R6 6
#define R_R7 7
#define R_R8 8
#define R_R9 9
#define R_R10 10
#define R_R11 11
#define R_R12 12
#define R_R13 13
#define R_R14 14
#define R_R15 15
#define R_R16 16
#define R_R17 17
#define R_R18 18
#define R_R19 19
#define R_R20 20
#define R_R21 21
#define R_R22 22
#define R_R23 23
#define R_R24 24
#define R_R25 25
#define R_R26 26
#define R_R27 27
#define R_R28 28
#define R_R29 29
#define R_R30 30
#define R_R31 31
#define R_F0 32
#define R_F1 33
#define R_F2 34
#define R_F3 35
#define R_F4 36
#define R_F5 37
#define R_F6 38
#define R_F7 39
#define R_F8 40
#define R_F9 41
#define R_F10 42
#define R_F11 43
#define R_F12 44
#define R_F13 45
#define R_F14 46
#define R_F15 47
#define R_F16 48
#define R_F17 49
#define R_F18 50
#define R_F19 51
#define R_F20 52
#define R_F21 53
#define R_F22 54
#define R_F23 55
#define R_F24 56
#define R_F25 57
#define R_F26 58
#define R_F27 59
#define R_F28 60
#define R_F29 61
#define R_F30 62
#define R_F31 63
#define R_EPC 64
#define R_MDHI 65
#define R_MDLO 66
#define R_SR 67
#define R_CAUSE 68
#define R_TLBHI 69
#define R_PID R_TLBHI
#define R_TLBLO 70
#define R_BADVADDR 71
#define R_INX 72
#define R_RAND 73
#define R_CTXT 74
#define R_EXCTYPE 75
#define R_C1_EIR 76
#define R_C1_SR 77
#define R_ERROR 78
/* r4000 only registers */
#define R_TLBLO0 R_TLBLO
#define R_TLBLO1 79
#define R_PAGEMASK 80
#define R_WIRED 81
#define R_COUNT 82
#define R_COMPARE 83
#define R_CONFIG 84
#define R_LLADDR 85
#define R_WATCHLO 86
#define R_WATCHHI 87
#define R_XCONTEXT 88
#define R_ECC 89
#define R_CACHEERR 90
#define R_TAGLO 91
#define R_TAGHI 92
#define R_ERROREPC 93
#define NREGS 94
/*
* compiler defined bindings
*/
#define R_ZERO R_R0
#define R_AT R_R1
#define R_V0 R_R2
#define R_V1 R_R3
#define R_A0 R_R4
#define R_A1 R_R5
#define R_A2 R_R6
#define R_A3 R_R7
#define R_T0 R_R8
#define R_T1 R_R9
#define R_T2 R_R10
#define R_T3 R_R11
#define R_T4 R_R12
#define R_T5 R_R13
#define R_T6 R_R14
#define R_T7 R_R15
#define R_S0 R_R16
#define R_S1 R_R17
#define R_S2 R_R18
#define R_S3 R_R19
#define R_S4 R_R20
#define R_S5 R_R21
#define R_S6 R_R22
#define R_S7 R_R23
#define R_T8 R_R24
#define R_T9 R_R25
#define R_K0 R_R26
#define R_K1 R_R27
#define R_GP R_R28
#define R_SP R_R29
#define R_FP R_R30
#define R_RA R_R31
/*
* Stack modes
*/
#define MODE_NORMAL 0 /* executing on normal stack */
#define MODE_FAULT 1 /* executing on fault stack */