]> git.sur5r.net Git - u-boot/blobdiff - arch/sandbox/cpu/os.c
Merge tag 'signed-efi-next' of git://github.com/agraf/u-boot
[u-boot] / arch / sandbox / cpu / os.c
index d76d0211a2d58063bfa8db233fe24040d0858ac1..5839932b00571538d3e8291694f3e6a692e14dae 100644 (file)
@@ -7,6 +7,7 @@
 #include <errno.h>
 #include <fcntl.h>
 #include <getopt.h>
+#include <setjmp.h>
 #include <stdio.h>
 #include <stdint.h>
 #include <stdlib.h>
@@ -628,3 +629,25 @@ void os_localtime(struct rtc_time *rt)
        rt->tm_yday = tm->tm_yday;
        rt->tm_isdst = tm->tm_isdst;
 }
+
+int os_setjmp(ulong *jmp, int size)
+{
+       jmp_buf dummy;
+
+       /*
+        * We cannot rely on the struct name that jmp_buf uses, so use a
+        * local variable here
+        */
+       if (size < sizeof(dummy)) {
+               printf("setjmp: jmpbuf is too small (%d bytes, need %d)\n",
+                      size, sizeof(jmp_buf));
+               return -ENOSPC;
+       }
+
+       return setjmp((struct __jmp_buf_tag *)jmp);
+}
+
+void os_longjmp(ulong *jmp, int ret)
+{
+       longjmp((struct __jmp_buf_tag *)jmp, ret);
+}