BarryServer : Git

All the code for all my projects
// BarryServer : Git / OrionLibC / commit / 03048a95d88cc7a78171393371f5c22a0250a014 / time

// Related

OrionLibC

Barry Importing existing Orion LibC 03048a9 (2 years, 2 months ago)
diff --git a/time/sleep.c b/time/sleep.c
new file mode 100644
index 0000000..dd01751
--- /dev/null
+++ b/time/sleep.c
@@ -0,0 +1,16 @@
+#include <sys/syscall.h>
+#include <time.h>
+#include <errno.h>
+
+/* Sleep for a specified time (milliseconds) */
+int
+sleep(uint32_t ms)
+{
+	int ret;
+	asm volatile("int $0x80" : "=a" (ret) : "0" (SYSCALL_SLEEP),
+	             "c" (1), "S" (&ms));
+	if (ret >= 0)
+		return ret;
+	errno = -ret;
+	return -1;
+}
diff --git a/time/time.c b/time/time.c
new file mode 100644
index 0000000..dd43c31
--- /dev/null
+++ b/time/time.c
@@ -0,0 +1,30 @@
+#include <sys/syscall.h>
+#include <sys/times.h>
+#include <time.h>
+#include <errno.h>
+
+/* Get epoch time */
+time_t
+time(time_t *tloc)
+{
+	int ret;
+	asm volatile("int $0x80" : "=a" (ret) : "0" (SYSCALL_TIME),
+	             "c" (1), "S" (&tloc));
+	if (ret >= 0)
+		return ret;
+	errno = -ret;
+	return -1;
+}
+
+/* Get process times */
+clock_t
+times(Times *buf)
+{
+	int ret;
+	asm volatile("int $0x80" : "=a" (ret) : "0" (SYSCALL_TIMES),
+	             "c" (1), "S" (&buf));
+	if (ret >= 0)
+		return ret;
+	errno = -ret;
+	return -1;
+}