1 typedef struct MMUMcrChain15 MMUMcrChain15; 2 3 /* Version of the 15 Chain for mcr access */ 4 struct MMUMcrChain15 { 5 uchar rw; /* 1bit */ 6 uchar op1; /* 3 bits */ 7 uchar op2; /* 3 bits */ 8 uchar crn; /* 4 bits */ 9 uchar crm; /* 4 bits */ 10 uchar access; /* 1 bit */ 11 u32int data; /* 32 bits */ 12 }; 13 14 enum { 15 /* other sizes taken from icert.h */ 16 AccessSz = 1, 17 OpSz = 3, 18 CrxSz = 4, 19 }; 20 21 enum{ 22 ARMMCROP = 0xee000010, 23 ARMMRCLFLAG = 0x00100000, 24 }; 25 26 #define C(cr) ((cr)&0x7) 27 #define ARMMCR(cp, op1, rd, crn, crm, op2) (ARMMCROP | \ 28 crm | (op2 << 5) | (cp<<8) | \ 29 (rd<<12) | (crn<<16) | (op1<<21)) 30 31 32 #define ARMMRC(cp, op1, rd, crn, crm, op2) (ARMMRCLFLAG | \ 33 ARMMCR(cp, op1, rd, crn, crm, op2)) 34 35 extern int mmurdregs(JMedium *jmed, MMURegs *regs); 36 extern char * printmmuregs(MMURegs *mmuregs, char *s, int ssz); 37