# HG changeset patch
# User Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
# Date 1401321686 0
# Node ID 4a78dc7642294a3457c8de8fccdbfa7ac01a8f6b
# Parent  28a2965df6aa697c2cc73338178f2278f079d845
OSL: os_drv.c started

diff -r 28a2965df6aa -r 4a78dc764229 gsm-fw/gpf/osl/Makefile
--- a/gsm-fw/gpf/osl/Makefile	Wed May 28 22:51:59 2014 +0000
+++ b/gsm-fw/gpf/osl/Makefile	Thu May 29 00:01:26 2014 +0000
@@ -4,7 +4,7 @@
 XOPTS=	-DRUN_FLASH -mthumb
 
 IOBJS=	os_com_ir.o os_pro_ir.o
-XOBJS=	os_com_fl.o os_isr.o os_pro_fl.o
+XOBJS=	os_com_fl.o os_drv.o os_isr.o os_pro_fl.o
 
 all:	${IOBJS} ${XOBJS}
 
diff -r 28a2965df6aa -r 4a78dc764229 gsm-fw/gpf/osl/os_drv.c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gsm-fw/gpf/osl/os_drv.c	Thu May 29 00:01:26 2014 +0000
@@ -0,0 +1,30 @@
+/*
+ * This C module is a reconstruction based on the disassembly of
+ * os_drv.obj in frame_na7_db_fl.lib from the Leonardo package.
+ */
+
+/* set of included headers from COFF symtab: */
+#include "gpfconf.h"	/* FreeCalypso addition */
+#include "../../nucleus/nucleus.h"
+#include "typedefs.h"
+#include "gdi.h"
+#include "os.h"
+
+typedef unsigned char u_char;
+
+extern OS_HANDLE os_ext_pool_handle;
+
+static u_char *HISR_Stack;
+static T_DRV_SIGNAL *SignalID;
+static void (*DrvCallback)(T_DRV_SIGNAL *);
+static NU_HISR CallBack_HISR;
+
+GLOBAL LONG
+os_ExecuteCallback(OS_HANDLE Caller, void (*Callback)(T_DRV_SIGNAL *),
+			T_DRV_SIGNAL *Signal)
+{
+	DrvCallback = Callback;
+	SignalID = Signal;
+	NU_Activate_HISR(&CallBack_HISR);
+	return(OS_OK);
+}