diff --git a/libmaxsi/Makefile b/libmaxsi/Makefile
index 8599ef59..60a9c4d6 100644
--- a/libmaxsi/Makefile
+++ b/libmaxsi/Makefile
@@ -155,14 +155,15 @@ setjmp.o \
setlocale.o \
settermmode.o \
signal.o \
+sleep.o \
sortix-sound.o \
stat.o \
stdio.o \
-thread.o \
time.o \
truncate.o \
umask.o \
unlink.o \
+usleep.o \
vscanf.o \
winsize.o \
write.o \
diff --git a/libmaxsi/include/libmaxsi/thread.h b/libmaxsi/sleep.cpp
similarity index 61%
rename from libmaxsi/include/libmaxsi/thread.h
rename to libmaxsi/sleep.cpp
index b71336cb..b357b606 100644
--- a/libmaxsi/include/libmaxsi/thread.h
+++ b/libmaxsi/sleep.cpp
@@ -1,6 +1,6 @@
-/******************************************************************************
+/*******************************************************************************
- COPYRIGHT(C) JONAS 'SORTIE' TERMANSEN 2011.
+ Copyright(C) Jonas 'Sortie' Termansen 2011, 2012.
This file is part of LibMaxsi.
@@ -11,32 +11,24 @@
LibMaxsi is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
- more details.
+ FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ details.
You should have received a copy of the GNU Lesser General Public License
along with LibMaxsi. If not, see .
- thread.h
- Exposes system calls for thread creation and management.
+ sleep.cpp
+ Blocks the current thread for for at least N seconds.
-******************************************************************************/
+*******************************************************************************/
-#ifndef LIBMAXSI_THREAD_H
-#define LIBMAXSI_THREAD_H
+#include
+#include
-namespace Maxsi
+DEFN_SYSCALL1_VOID(SysSleep, SYSCALL_SLEEP, long);
+
+extern "C" unsigned sleep(unsigned secs)
{
- namespace Thread
- {
- typedef void* (*Entry)(void*);
-
- size_t Create(Entry Start, const void* Parameter, size_t StackSize = SIZE_MAX);
- void Exit(const void* Result);
- void Sleep(long Seconds);
- void USleep(long Microseconds);
- }
+ SysSleep(secs);
+ return 0;
}
-
-#endif
-
diff --git a/libmaxsi/thread.cpp b/libmaxsi/thread.cpp
deleted file mode 100644
index 68e2c519..00000000
--- a/libmaxsi/thread.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-/******************************************************************************
-
- COPYRIGHT(C) JONAS 'SORTIE' TERMANSEN 2011.
-
- This file is part of LibMaxsi.
-
- LibMaxsi is free software: you can redistribute it and/or modify it under
- the terms of the GNU Lesser General Public License as published by the Free
- Software Foundation, either version 3 of the License, or (at your option)
- any later version.
-
- LibMaxsi is distributed in the hope that it will be useful, but WITHOUT ANY
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
- more details.
-
- You should have received a copy of the GNU Lesser General Public License
- along with LibMaxsi. If not, see .
-
- thread.cpp
- Exposes system calls for thread creation and management.
-
-******************************************************************************/
-
-#include
-#include
-#include
-#include
-
-#ifdef SORTIX_KERNEL
-extern "C" void PanicF(const char* Format, ...);
-#endif
-
-namespace Maxsi
-{
- namespace Thread
- {
- typedef void (*SysEntry)(size_t, Entry, void*);
- DEFN_SYSCALL4(size_t, SysCreate, 0, SysEntry, Entry, const void*, size_t);
- DEFN_SYSCALL1_VOID(SysExit, SYSCALL_EXIT, const void*);
- DEFN_SYSCALL1_VOID(SysSleep, SYSCALL_SLEEP, long);
- DEFN_SYSCALL1_VOID(SysUSleep, SYSCALL_USLEEP, long);
-
- void Exit(const void* Result)
- {
- SysExit(Result);
- }
-
- void ThreadStartup(size_t Id, Entry Start, void* Parameter)
- {
- Exit(Start(Parameter));
- }
-
- size_t Create(Entry Start, const void* Parameter, size_t StackSize)
- {
- return SysCreate(&ThreadStartup, Start, Parameter, StackSize);
- }
-
- extern "C" unsigned sleep(unsigned Seconds) { SysSleep(Seconds); return 0; }
-
- // TODO: Thinking about it, there is no need for this to be a long.
- // Sortix will never run for that long time, and shouldn't it be unsigned long?
- void Sleep(long Seconds)
- {
- SysSleep(Seconds);
- }
-
- extern "C" int usleep(useconds_t Microseconds) { SysUSleep(Microseconds); return 0; }
-
- void USleep(long Microseconds)
- {
- SysUSleep(Microseconds);
- }
- }
-}
-
diff --git a/libmaxsi/usleep.cpp b/libmaxsi/usleep.cpp
new file mode 100644
index 00000000..f7cfc4c8
--- /dev/null
+++ b/libmaxsi/usleep.cpp
@@ -0,0 +1,34 @@
+/*******************************************************************************
+
+ Copyright(C) Jonas 'Sortie' Termansen 2011, 2012.
+
+ This file is part of LibMaxsi.
+
+ LibMaxsi is free software: you can redistribute it and/or modify it under
+ the terms of the GNU Lesser General Public License as published by the Free
+ Software Foundation, either version 3 of the License, or (at your option)
+ any later version.
+
+ LibMaxsi is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with LibMaxsi. If not, see .
+
+ usleep.cpp
+ Blocks the current thread for for at least N micro seconds.
+
+*******************************************************************************/
+
+#include
+#include
+
+DEFN_SYSCALL1_VOID(SysUSleep, SYSCALL_USLEEP, long);
+
+extern "C" int usleep(useconds_t usecs)
+{
+ SysUSleep(usecs);
+ return 0;
+}