mescc: Support gcc-3.0: Implement atexit.
[mes.git] / lib / linux-mini-mes.c
index 95ba97168463a491fd1009ae6cac2a7c50c3604b..f2858a1f3c199d4502a2093f2735279d8c451001 100644 (file)
  */
 
 void
-exit ()
+_exit ()
 {
-  asm ("mov____0x8(%ebp),%ebx !8");
-
   asm ("mov____$i32,%eax SYS_exit");
+  asm ("mov____0x8(%ebp),%ebx !8");
   asm ("int____$0x80");
 }
 
+void (*__call_at_exit) (void);
+
+void
+exit (int code)
+{
+  if (__call_at_exit)
+    (*__call_at_exit) ();
+  _exit (code);
+}
+
 void
 write ()
 {
+  asm ("mov____$i32,%eax SYS_write");
   asm ("mov____0x8(%ebp),%ebx !8");
   asm ("mov____0x8(%ebp),%ecx !12");
   asm ("mov____0x8(%ebp),%edx !16");
-
-  asm ("mov____$i32,%eax SYS_write");
   asm ("int____$0x80");
 }