A2osX/SYS/KERNEL.S.PWD.txt
2020-02-14 08:21:56 +01:00

98 lines
1.8 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

NEW
AUTO 3,1
*/--------------------------------------
* # GetPWUID
* ## C
* `int getpwuid(short int uid, S.PW* passwd );`
* ## ASM
* `>PUSHW passwd`
* `lda uid`
* `>SYSCALL getpwuid`
* ## RETURN VALUE
*\--------------------------------------
K.GetPWUID sta ZPPtr1+1
>PULLW ZPPtr2
jmp K.SYSCALL.JMPX
*/--------------------------------------
* # GetPWName
* ## C
* `int getpwname(const char* name, S.PW* passwd );`
* ## ASM
* `>PUSHW passwd`
* `>LDYA name`
* `>SYSCALL getpwname`
* ## RETURN VALUE
*\--------------------------------------
K.GetPWName >STYA TXTPTR
>PULLW ZPPtr2
jmp K.SYSCALL.JMPX
*/--------------------------------------
* # PutPW
* ## C
* `int putpw( S.PW* passwd );`
* ## ASM
* `>LDYA passwd`
* `>SYSCALL putpw`
* ## RETURN VALUE
*\--------------------------------------
K.PutPW >STYA ZPPtr2
>STYA TXTPTR
jmp K.SYSCALL.JMPX
*--------------------------------------
K.FlushEtcPasswd
>LDYA PWD.DBSize
ldx PWD.hDB
jsr MEM.CopyToMain
bcs .9
stx .8+1
>PUSHWI PWD.FILE
>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
*--------------------------------------
PWD.hDB .BS 1
PWD.DBPtr .BS 2
PWD.DBSize .BS 2
PWD.FILE .AZ "${ROOT}etc/passwd"
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.PWD
LOAD USR/SRC/SYS/KERNEL.S
ASM