diff options
| author | Drahflow <drahflow@gmx.de> | 2014-05-28 00:24:11 +0200 |
|---|---|---|
| committer | Drahflow <drahflow@gmx.de> | 2014-05-28 00:24:11 +0200 |
| commit | 6a30e7af5bea561a0fdcc0aa030c1ef233affcf1 (patch) | |
| tree | 2b1bc10a5b4c82e8e86a8b93cfb0236797bc1d1c | |
| parent | 5431c7fd4d5a1abfcee1548e2e372f8b1300c88f (diff) | |
ioctl and munmap calls
| -rw-r--r-- | elymas/lib/sys/linux.ey | 59 |
1 files changed, 58 insertions, 1 deletions
diff --git a/elymas/lib/sys/linux.ey b/elymas/lib/sys/linux.ey index d81995d..d16a483 100644 --- a/elymas/lib/sys/linux.ey +++ b/elymas/lib/sys/linux.ey @@ -109,7 +109,7 @@ # 208 ==:IOGETEVENTS # 206 ==:IOSETUP # 209 ==:IOSUBMIT - # 16 ==:IOCTL + 16 ==:IOCTL # 173 ==:IOPERM # 172 ==:IOPL # 252 ==:IOPRIOGET @@ -461,6 +461,59 @@ buf parseStatStruct -02 } /fstat deffd + < + { IOCTL sys .asm .syscall =errno } /raw deffd + + 2 ==:ICANON + 8 ==:ECHO + + 21505 ==:TCGETS + 21506 ==:TCSETS + + # 0 -> file descriptor + # 0 <- raw return value + # 1 <- current attributes + { # ==fd + TCGETS + 60 str .alloc _ ==buf + 0 0 0 raw + buf + < + ->u32 ==iflag + ->u32 ==oflag + ->u32 ==cflag + ->u32 ==lflag + ->u8 ==line + _ 32 -01 str .prefix ==cc + 32 -01 str .postfix + ->u8 -- + ->u8 -- + ->u8 -- + ->u32 ==ispeed + ->u32 ==ospeed + > -02 + } /tcgets deffd + + # 0 -> new attributes + # 1 -> file descriptor + # 0 <- raw return value + { ":" via # ==fd + TCSETS + "" + :iflag <-u32 + :oflag <-u32 + :cflag <-u32 + :lflag <-u32 + :line <-u8 + :cc cat + 0 <-u8 + 0 <-u8 + 0 <-u8 + :ispeed <-u32 + :ospeed <-u32 + 0 0 0 raw } /tcsets deffd + > /ioctl defvd + { 0 0 0 0 KILL } /kill defStdSyscall { 0 0 0 0 LISTEN } /listen defStdSyscall @@ -490,6 +543,10 @@ # 5 -> address { MMAP } /mmap defStdSyscall + # 0 -> addr + # 1 -> length + { 0 0 0 0 MUNMAP } /munmap defStdSyscall + { 0 0 0 0 RENAME } /rename defStdSyscall 1 ==:AFUNIX |
