/* Contains the information about where to find the registers.
 * NOTE: This can only be included in symt-unix.c
 */

#include <sys/types.h>
#include <sys/dir.h>
#include <sys/param.h>
#include <sys/user.h>

struct psym {
    char *name;
    int value;
};

#define PSYMTSIZ ((sizeof(psymt)/sizeof(struct psym)) * sizeof(struct nlist))

/* the quantities involving 0x80000000 - n are located in the kernel stack. */
/* the others are in the pcb. */
#define KSP	0
#define ESP	4
#define SSP	8
#define USP	(0x80000000-5*sizeof(int))
#define R0	(0x80000000-18*sizeof(int))
#define R1	(0x80000000-17*sizeof(int))
#define R2	(0x80000000-16*sizeof(int))
#define R3	(0x80000000-15*sizeof(int))
#define R4	(0x80000000-14*sizeof(int))
#define R5	(0x80000000-13*sizeof(int))
#define R6	(0x80000000-12*sizeof(int))
#define R7	(0x80000000-11*sizeof(int))
#define R8	(0x80000000-10*sizeof(int))
#define R9	(0x80000000-9*sizeof(int))
#define R10	(0x80000000-8*sizeof(int))
#define R11	(0x80000000-7*sizeof(int))
#define AP	(0x80000000-21*sizeof(int))
#define FP	(0x80000000-20*sizeof(int))
#define PC	(0x80000000-2*sizeof(int))
#define PSL	(0x80000000-1*sizeof(int))
#define P0BR	80
#define P0LR	84
#define P1BR	88
#define P1LR	92

struct psym psymt[] = {
    "usp", USP,
    "sp", USP,
    "r0", R0,
    "r1", R1,
    "r2", R2,
    "r3", R3,
    "r4", R4,
    "r5", R5,
    "r6", R6,
    "r7", R7,
    "r8", R8,
    "r9", R9,
    "r10", R10,
    "r11", R11,
    "ap", AP,
    "r12", AP,
    "fp", FP,
    "r13", FP,
    "pc", PC,
    "psl", PSL,
};

int ps_ptr = PSL;
int pc_ptr = PC;
