kunkee@ficc.ferranti.com (randy kunkee) (06/15/91)
I have Intel Xenix 3.5, which is basically a modified system III kernal running on 80286 mode. I'm trying to write a program which will allow me to access the u area for every process running on the system, but there seems to be some magic going on. I expected the ADDR field of ps -l to point directly to the U area, but it does not. Apparently it points to a 7 to 9 byte structure which then points to the U area. This is small structure is what is referenced by proc.p_caddr. Can anybody tell me how to convert this into the actual address of the U area? Then, can you tell me how to convert that into an offset in /dev/mem? -- Randy Kunkee Ferranti International Controls Corporation 12808 W. Airport Blvd. Sugar Land, TX 77478 UUCP: uupsi!ficc!kunkee ph: (713) 274-5132 INTERNET: kunkee@ficc.ferranti.com
curt@cynic.wimsey.bc.ca (Curt Sampson) (06/15/91)
In article <8D-B4F1@xds13.ferranti.com> kunkee@ficc.ferranti.com (randy kunkee) writes: > I expected the ADDR field of ps -l to point directly to the U area, but > it does not. Apparently it points to a 7 to 9 byte structure which > then points to the U area. This is small structure is what is referenced > by proc.p_caddr. It's probably a little trickier than that, actually. My device driver handbook that came with my 286 SCO Xenix indicates that a u_area can be swapped out (specifically, it warns against interupt routines attempting to modify the u_area of any process). cjs -- | "This sound system comes to you with fuel injection. Curt Sampson | Toes tapping, the unthinking masses dance to a new curt@cynic.uucp | tune. . . . Undress yourself to this bastard. Suck curt@cynic.wimsey.bc.ca | on this plan of noise, bimbo!" --Gary Clail