core: Support fork, waitpid, execve.
[mes.git] / lib / linux-mes.c
index 75dee3a9bada284373e3a856bf7605cbb08d616b..f525381eee1af06325bc0699426e34543568492e 100644 (file)
  * along with Mes.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+void
+fork ()
+{
+  asm ("mov____$i32,%eax SYS_fork");
+  asm ("int____$0x80");
+}
+
 void
 read ()
 {
@@ -40,6 +47,28 @@ open ()
   asm ("int____$0x80");
 }
 
+void
+waitpid ()
+{
+  asm ("mov____0x8(%ebp),%ebx !8");
+  asm ("mov____0x8(%ebp),%ecx !12");
+  asm ("mov____0x8(%ebp),%edx !16");
+
+  asm ("mov____$i32,%eax SYS_waitpid");
+  asm ("int____$0x80");
+}
+
+void
+execve ()
+{
+  asm ("mov____0x8(%ebp),%ebx !8");
+  asm ("mov____0x8(%ebp),%ecx !12");
+  asm ("mov____0x8(%ebp),%edx !16");
+
+  asm ("mov____$i32,%eax SYS_execve");
+  asm ("int____$0x80");
+}
+
 void
 chmod ()
 {