BSD 3 release
[unix-history] / usr / src / cmd / sdb / defs.h
/*
*
* UNIX debugger - common definitions
*
*/
/* Layout of a.out file (fsym):
*
* header of 8 longwords
* magic number 410
* text size )
* data size ) padded with 0 to multiple of 4 bytes
* bss size )
* symbol table size
* entry address
* size of text relocation info
* size of data relocation info
*
*
* header: 0
* text: 32
* data: 32+textsize
* text reloc: 32+textsize+datasize
* data reloc: 32+textsize+datasize+textreloc
* symbol table: 32+textsize+datasize+textreloc+datareloc
*
*/
#include <sys/param.h>
#include <sys/dir.h>
#include <sys/psl.h>
#include <sys/user.h>
#include "mac.h"
#include "mode.h"
#define VARB 11
#define VARD 13
#define VARE 14
#define VARM 22
#define VARS 28
#define VART 29
#define COREMAGIC 0140000
/* access modes */
#define RD 0
#define WT 1
/* access spaces */
#define NSP 0
#define ISP 1
#define DSP 2
#define STAR 4
#define STARCOM 0200
#define DSYM 4
#define ISYM 4
#define ASYM 2
#define NSYM 0
#define ESYM (-1)
#define BKPTSET 1
#define BKPTEXEC 2
#define SYMSIZ 100
#define MAXSIG 20
#define USERPS PSL
#define USERPC PC
#define BPT 03
#define TBIT 020
#define FD 0200
/* ptracew modes */
#define SETTRC 0
#define RDUSER 2
#define RIUSER 1
#define WDUSER 5
#define WIUSER 4
#define RUREGS 3
#define WUREGS 6
#define CONTIN 7
#define EXIT 8
#define SINGLE 9
#define FROFF (&(0->fpsr))
#define FRLEN 25
#define FRMAX 6
/* the quantities involving ctob() are located in the kernel stack.
/* the others are in the pcb.
*/
#define KSP 0
#define ESP 4
#define SSP 8
#ifdef VAX135
#define USP (ctob(UPAGES)-5*4)
#define R0 (ctob(UPAGES)-18*4)
#define R1 (ctob(UPAGES)-17*4)
#define R2 (ctob(UPAGES)-16*4)
#define R3 (ctob(UPAGES)-15*4)
#define R4 (ctob(UPAGES)-14*4)
#define R5 (ctob(UPAGES)-13*4)
#define R6 (ctob(UPAGES)-12*4)
#define R7 (ctob(UPAGES)-11*4)
#define R8 (ctob(UPAGES)-10*4)
#define R9 (ctob(UPAGES)-9*4)
#define R10 (ctob(UPAGES)-8*4)
#define R11 (ctob(UPAGES)-7*4)
#define AP (ctob(UPAGES)-21*4)
#define FP (ctob(UPAGES)-20*4)
#define PC (ctob(UPAGES)-2*4)
#define PSL (ctob(UPAGES)-1*4)
#else
#define USP (ctob(UPAGES)-5*4)
#define R0 (ctob(UPAGES)-19*4)
#define R1 (ctob(UPAGES)-18*4)
#define R2 (ctob(UPAGES)-17*4)
#define R3 (ctob(UPAGES)-16*4)
#define R4 (ctob(UPAGES)-15*4)
#define R5 (ctob(UPAGES)-14*4)
#define R6 (ctob(UPAGES)-13*4)
#define R7 (ctob(UPAGES)-12*4)
#define R8 (ctob(UPAGES)-11*4)
#define R9 (ctob(UPAGES)-10*4)
#define R10 (ctob(UPAGES)-9*4)
#define R11 (ctob(UPAGES)-8*4)
#define AP (ctob(UPAGES)-7*4)
#define FP (ctob(UPAGES)-6*4)
#define PC (ctob(UPAGES)-2*4)
#define PSL (ctob(UPAGES)-1*4)
#endif
#define P0BR 80
#define P0LR 84
#define P1BR 88
#define P1LR 92
#define MAXOFF 255
#define MAXPOS 80
#define MAXLIN 128
#define EOR '\n'
#define SP ' '
#define TB '\t'
#define QUOTE 0200
#define STRIP 0177
#define LOBYTE 0377
#define EVEN -2
#ifndef vax
#define leng(a) ((long)((unsigned)(a)))
#define shorten(a) ((int)(a))
#define itol(a,b) (itolws.I[0]=(a), itolws.I[1]=(b), itolws.L)
#else
#define leng(a) itol(0,a)
#define shorten(a) ((short)(a))
#define itol(a,b) (itolws.I[0]=(b), itolws.I[1]=(a), itolws.L)
#endif
/* result type declarations */
L_INT inkdot();
SYMPTR lookupsym();
SYMPTR symget();
POS get();
POS chkget();
STRING exform();
L_INT round();
BKPTR scanbkpt();
VOID fault();
INT mkfault;
INT executing;
L_INT maxoff;
L_INT maxpos;
ADDR sigint;
ADDR sigqit;
INT wtflag;
L_INT maxfile;
L_INT maxstor;
L_INT txtsiz;
L_INT datsiz;
L_INT datbas;
L_INT stksiz;
STRING errflg;
INT magic;
L_INT entrypt;
CHAR lastc;
STRING symfil;
STRING corfil;
MAP txtmap;
MAP datmap;