blob: 67adfebd95b05be48646b76a94d5b8580ac37805 (
plain) (
tree)
|
|
/*-------------------------------------*/
/* prcb.h */
/* Last change : 11. 1.95 */
/*-------------------------------------*/
/*
* $Id$
*/
#ifndef _PRCB_H_
#define _PRCB_H_
#include "flttbl.h"
#include "cntrltbl.h"
#include "intrtbl.h"
#include "systbl.h"
/* PRocess Control Block
*/
struct PRCB {
FaultTblEntry * faultTbl; /* Fault Table Base */
ControlTblEntry * controlTbl; /* Control Table Base */
unsigned int arithConfig; /* Arithmetic Control Register Image */
unsigned int faultConfig; /* Fault Configuration Word Image */
InterruptTbl * interruptTbl; /* Interrupt Table Base */
SystemTbl * systemTbl; /* System Procedure Table Base */
unsigned int reserved; /* Reserved */
unsigned int * intStackPtr; /* Interrupt Stack Pointer */
unsigned int instCacheConfig; /* Instruction Cache Config */
unsigned int regCacheConfig; /* Register Cache Config */
};
/* Constants for Arithmetic Control Register.
*/
#define INT_OVFL_ENABLE 0
#define INT_OVFL_DISABLE 0x1000
#define PRECISE_FLTS 0x8000
#define IMPRECISE_FLTS 0
/* Constants for Fault Configuration Word.
*/
#define UNLGND_FAULT_ENABLE 0
#define UNLGND_FAULT_DISABLE 0x40000000
/* Constants for Instruction Cache Configuration Word.
*/
#define INST_CACHE_ENABLE 0
#define INST_CACHE_DISABLE 0x10000
/* RAM-based Process Control Block.
*/
extern struct PRCB ram_prcb;
extern struct PRCB rom_prcb;
/* Supervisor Stack. Is defined directly in rom.ld.
*/
extern unsigned int svrStackPtr[];
/* Interrupt Stack. Is defined directly in rom.ld.
*/
extern unsigned int intStackPtr[];
#endif
/*-------------*/
/* End of file */
/*-------------*/
|