mirror of
https://github.com/A2osX/A2osX.git
synced 2024-10-31 23:09:33 +00:00
138 lines
2.7 KiB
Plaintext
138 lines
2.7 KiB
Plaintext
NEW
|
||
AUTO 3,1
|
||
*/--------------------------------------
|
||
* # GetPWUID
|
||
* ## C
|
||
* `int getpwuid(short int uid, S.PW *passwd);`
|
||
* ## ASM
|
||
* `PUSHB uid`
|
||
* `>PUSHW passwd`
|
||
* `>SYSCALL getpwuid`
|
||
* ## RETURN VALUE
|
||
*\--------------------------------------
|
||
K.GetPWUID
|
||
K.GetGRGID >PULLW FORPNT
|
||
>PULLB ZPPtr1+1
|
||
|
||
jmp K.SYSCALL.JMPX
|
||
*/--------------------------------------
|
||
* # GetPWName
|
||
* ## C
|
||
* `int getpwname(const char* name, S.PW *passwd);`
|
||
* ## ASM
|
||
* `>PUSHW name`
|
||
* `>PUSHW passwd`
|
||
* `>SYSCALL getpwname`
|
||
* ## RETURN VALUE
|
||
*\--------------------------------------
|
||
K.GetPWName
|
||
K.GetGRName >PULLW FORPNT
|
||
>PULLW TXTPTR
|
||
|
||
jmp K.SYSCALL.JMPX
|
||
*/--------------------------------------
|
||
* # PutPW
|
||
* ## C
|
||
* `int putpw( S.PW* passwd );`
|
||
* ## ASM
|
||
* `>PUSHW passwd`
|
||
* `>SYSCALL putpw`
|
||
* ## RETURN VALUE
|
||
*\--------------------------------------
|
||
K.PutPW >PULLW TXTPTR
|
||
|
||
jsr K.SYSCALL.JMPX
|
||
bcc K.FlushEtcPasswd
|
||
rts
|
||
*--------------------------------------
|
||
K.FlushEtcPasswd
|
||
>LDYA PWD.DBSize
|
||
ldx PWD.hDB
|
||
jsr MEM.CopyToMain
|
||
bcs .9
|
||
|
||
stx .8+1
|
||
|
||
>PUSHWI PWD.PWFILE
|
||
>PUSHBI O.WRONLY+O.CREATE
|
||
>PUSHBI S.FI.T.TXT
|
||
>PUSHWZ Aux type
|
||
>SYSCALL2 FOpen
|
||
bcc .1
|
||
|
||
pha
|
||
jsr .8
|
||
pla
|
||
sec
|
||
.9 rts
|
||
|
||
.1 sta .7+1
|
||
|
||
>PUSHW PWD.DBSize
|
||
lda .8+1
|
||
jsr K.getmemptr
|
||
>PUSHYA
|
||
lda .7+1
|
||
>SYSCALL2 FWrite
|
||
bcc .7
|
||
|
||
pha
|
||
jsr .7
|
||
pla
|
||
|
||
sec
|
||
rts
|
||
|
||
.7 lda #$ff SELF MODIFIED
|
||
>SYSCALL2 fclose
|
||
|
||
.8 lda #$ff
|
||
jmp K.freemem SELF MODIFIED
|
||
*/--------------------------------------
|
||
* # GetGRGID
|
||
* ## C
|
||
* `int getgrgid(short int gid, S.GRP *group);`
|
||
* ## ASM
|
||
* `>PUSHB gid`
|
||
* `>PUSHW group`
|
||
* `>SYSCALL getpwname`
|
||
* ## RETURN VALUE
|
||
*\--------------------------------------
|
||
*/--------------------------------------
|
||
* # GetGRName
|
||
* ## C
|
||
* `int getgrgid(const char* name, S.GRP *group);`
|
||
* ## ASM
|
||
* `>PUSHW name`
|
||
* `>PUSHW group`
|
||
* `>SYSCALL getpwname`
|
||
* ## RETURN VALUE
|
||
*\--------------------------------------
|
||
*/--------------------------------------
|
||
* # PutGR
|
||
* ## C
|
||
* `int putgr(S.GRP *group);`
|
||
* ## ASM
|
||
* `>PUSHW group`
|
||
* `>SYSCALL putgr`
|
||
* ## RETURN VALUE
|
||
*\--------------------------------------
|
||
K.PutGR >PULLW TXTPTR
|
||
|
||
jsr K.SYSCALL.JMPX
|
||
bcc K.FlushEtcGroup
|
||
rts
|
||
*--------------------------------------
|
||
K.FlushEtcGroup rts
|
||
*--------------------------------------
|
||
PWD.hDB .BS 1
|
||
PWD.DBPtr .BS 2
|
||
PWD.DBSize .BS 2
|
||
PWD.PWFILE .AZ "${ROOT}etc/passwd"
|
||
PWD.GRFILE .AZ "${ROOT}etc/group"
|
||
*--------------------------------------
|
||
MAN
|
||
SAVE USR/SRC/SYS/KERNEL.S.PWD
|
||
LOAD USR/SRC/SYS/KERNEL.S
|
||
ASM
|