mirror of
https://github.com/A2osX/A2osX.git
synced 2024-11-29 17:50:18 +00:00
166 lines
3.4 KiB
Plaintext
166 lines
3.4 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
|
||
*/--------------------------------------
|
||
* # GetGRGID
|
||
* ## C
|
||
* `int getgrgid(short int gid, S.GRP *group);`
|
||
* ## ASM
|
||
* `>PUSHB gid`
|
||
* `>PUSHW group`
|
||
* `>SYSCALL getpwname`
|
||
* ## RETURN VALUE
|
||
*\--------------------------------------
|
||
K.GetGRGID >PULLW FORPNT
|
||
>PULLB ZPPtr1+1 UID/GID
|
||
|
||
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
|
||
*/--------------------------------------
|
||
* # GetGRName
|
||
* ## C
|
||
* `int getgrgid(const char* name, S.GRP *group);`
|
||
* ## ASM
|
||
* `>PUSHW name`
|
||
* `>PUSHW group`
|
||
* `>SYSCALL getpwname`
|
||
* ## RETURN VALUE
|
||
*\--------------------------------------
|
||
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.UsrDBSize
|
||
ldx PWD.hUsrDB
|
||
jsr MEM.CopyToMain
|
||
bcs .9
|
||
|
||
stx .8+1
|
||
|
||
>PUSHWI PWD.ETCPASSWD
|
||
>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.UsrDBSize
|
||
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
|
||
*/--------------------------------------
|
||
* # 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
|
||
*/--------------------------------------
|
||
* # OpenSession
|
||
* ## C
|
||
* `short int hSID opensession(const char *name, const char *passwd);`
|
||
* ## ASM
|
||
* `>PUSHW name`
|
||
* `>PUSHW passwd`
|
||
* `>SYSCALL OpenSession`
|
||
* ## RETURN VALUE
|
||
*\--------------------------------------
|
||
K.OpenSession >PULLW FORPNT passwd
|
||
>PULLW TXTPTR name
|
||
|
||
jmp K.SYSCALL.JMPX
|
||
*/--------------------------------------
|
||
* # CloseSession
|
||
* ## C
|
||
* `int closesession(short int hSID);`
|
||
* ## ASM
|
||
* `>PUSHB hSID`
|
||
* `>SYSCALL CloseSession`
|
||
* ## RETURN VALUE
|
||
*\--------------------------------------
|
||
K.CloseSession >PULLA
|
||
jmp K.SYSCALL.JMPX
|
||
*--------------------------------------
|
||
PWD.ETCPASSWD .AZ "${ROOT}etc/passwd"
|
||
PWD.hUsrDB .BS 1
|
||
PWD.UsrDBPtr .BS 2
|
||
PWD.UsrDBSize .BS 2
|
||
PWD.ETCGROUP .AZ "${ROOT}etc/group"
|
||
PWD.hGrpDB .BS 1
|
||
PWD.GrpDBPtr .BS 2
|
||
PWD.GrpDBSize .BS 2
|
||
*--------------------------------------
|
||
MAN
|
||
SAVE USR/SRC/SYS/KERNEL.S.PWD
|
||
LOAD USR/SRC/SYS/KERNEL.S
|
||
ASM
|