"pushl %[number]; int $0x30; addl $12, %%esp" \
: "=a" (retval) \
: [number] "i" (NUMBER), \
- [arg0] "g" (ARG0), \
- [arg1] "g" (ARG1) \
+ [arg0] "r" (ARG0), \
+ [arg1] "r" (ARG1) \
: "memory"); \
retval; \
})
"pushl %[number]; int $0x30; addl $16, %%esp" \
: "=a" (retval) \
: [number] "i" (NUMBER), \
- [arg0] "g" (ARG0), \
- [arg1] "g" (ARG1), \
- [arg2] "g" (ARG2) \
+ [arg0] "r" (ARG0), \
+ [arg1] "r" (ARG1), \
+ [arg2] "r" (ARG2) \
: "memory"); \
retval; \
})
return syscall1 (SYS_MKDIR, dir);
}
-void
-lsdir (void)
+bool
+readdir (int fd, char name[READDIR_MAX_LEN + 1])
{
- syscall0 (SYS_LSDIR);
+ return syscall2 (SYS_READDIR, fd, name);
}
+bool
+isdir (int fd)
+{
+ return syscall1 (SYS_ISDIR, fd);
+}
+
+int
+inumber (int fd)
+{
+ return syscall1 (SYS_INUMBER, fd);
+}