view 3rdparty/packages/cc/sources/id.a @ 1942:b41df77588b0

printer is now scbbp sio is now scbbt All references changed in various files
author boisy
date Sat, 26 Nov 2005 22:51:50 +0000
parents 0198655f2552
children
line wrap: on
line source

*
* Identity system calls
*
 use ..../defs/os9defs.a

*
* Equates for level one pointers (sorry!)
*
D.Proc equ $4b
P$User equ $9

 psect id_a,0,0,1,0,0

* getpid()
getpid: pshs y save data pointer
 os9 F$ID
 puls y
 bcc getp10
 lbcs _os9err

getp10 tfr a,b
 clra
 rts

* getuid()
getuid: pshs y
 os9 F$ID
 bcc getu10

errexit puls y
 lbra _os9err

getu10 tfr y,d
 puls y,pc

* setuid()
setuid:
 pshs y
 bsr getuid get user id
 std -2,s superuser?
 beq setu10 bra if so
 ldb #E$FNA not allowed
 bra errexit

setu10 ldy 4,s get new user id
 os9 F$SUSER set user id
 bcc setu20 bra if ok

 cmpb #E$UNKSVC illegal code?
 bne errexit bra if not

** Illegal code (sorry) ***
 tfr y,d
 ldy >D.Proc 
 std P$User,y

setu20 clra
 clrb
 puls y,pc
 
 endsect