OrionLibC
Barry Importing existing Orion LibC 03048a9 (3 years, 3 months ago)
diff --git a/sys/stat.c b/sys/stat.c
new file mode 100644
index 0000000..3c42fd9
--- /dev/null
+++ b/sys/stat.c
@@ -0,0 +1,31 @@
+#include <sys/stat.h>
+#include <sys/syscall.h>
+#include <errno.h>
+
+/* Get file status */
+int
+stat(const char *pathname, struct stat *statbuf)
+{
+ int ret;
+ asm volatile("int $0x80" : "=a" (ret) : "0" (SYSCALL_STAT),
+ "c" (2), "S" (&pathname));
+ if (ret >= 0)
+ return ret;
+ errno = -ret;
+ return -1;
+
+}
+
+/* Get file status by file descriptor */
+int
+fstat(int fd, struct stat *statbuf)
+{
+ int ret;
+ asm volatile("int $0x80" : "=a" (ret) : "0" (SYSCALL_FSTAT),
+ "c" (2), "S" (&fd));
+ if (ret >= 0)
+ return ret;
+ errno = -ret;
+ return -1;
+
+}