xref: /csrg-svn/sys/tahoe/align/Aprober.c (revision 29624)
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