1*29624Ssam /* Aprober.c 1.1 86/07/20 */ 2*29624Ssam 3*29624Ssam #include "../tahoealign/align.h" 4*29624Ssam 5*29624Ssam #define PSL_USER PSL_CURMOD 6*29624Ssam prober(infop) process_info *infop; 7*29624Ssam /* 8*29624Ssam /* Probe read accessability. 9*29624Ssam /* 10*29624Ssam /*************************************/ 11*29624Ssam { 12*29624Ssam register long Register_12; /* Has to be first reg ! */ 13*29624Ssam register long Register_11; 14*29624Ssam register long Register_10; 15*29624Ssam register long Register_9; 16*29624Ssam 17*29624Ssam Register_9 = operand(infop,0)->data & 1; /* Required mode */ 18*29624Ssam if (psl & PSL_USER) Register_9 = 1; /* user can't probe as 19*29624Ssam * kernel ! */ 20*29624Ssam Register_10 = operand(infop,1)->address; /* Base address */ 21*29624Ssam Register_11 = operand(infop,2)->data; /* Length */ 22*29624Ssam Register_12=psl; 23*29624Ssam Set_psl(r12); /* restore the user psl */ 24*29624Ssam asm (" prober r9,(r10),r11"); 25*29624Ssam asm (" movpsl r12"); 26*29624Ssam New_cc (Register_12); 27*29624Ssam } 28