|
|
1.1 ! root 1: /* Aprobew.c 1.1 86/07/20 */ ! 2: ! 3: #include "../tahoealign/align.h" ! 4: ! 5: #define PSL_USER PSL_CURMOD ! 6: probew(infop) process_info *infop; ! 7: /* ! 8: /* Probe write accessability. ! 9: /* ! 10: /*************************************/ ! 11: { ! 12: register long Register_12; /* Has to be first reg ! */ ! 13: register long Register_11; ! 14: register long Register_10; ! 15: register long Register_9; ! 16: ! 17: Register_9 = operand(infop,0)->data & 1; /* Required mode */ ! 18: if (psl & PSL_USER) Register_9 = 1; /* user can't probe as ! 19: * kernel ! */ ! 20: Register_10 = operand(infop,1)->address; /* Base address */ ! 21: Register_11 = operand(infop,2)->data; /* Length */ ! 22: Register_12=psl; ! 23: Set_psl(r12); /* restore the user psl */ ! 24: asm (" probew r9,(r10),r11"); ! 25: asm (" movpsl r12"); ! 26: New_cc (Register_12); ! 27: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.