indirect kernel api

This commit is contained in:
dzavalishin 2015-06-29 15:13:26 +03:00
parent b996583cac
commit b5763c3e61
6 changed files with 34 additions and 5 deletions

View File

@ -1 +1,3 @@
MAKEFLAGS += --no-print-directory MAKEFLAGS += --no-print-directory
#CC=C:/MinGW/bin/mingw32-gcc.exe

View File

@ -0,0 +1,22 @@
include ../../config.mk
LIB=libopenpod_kernel.a
# TODO move pod_local_types.h from here and tests to some common place
CFLAGS += -I../../openpod -I../..
all: $(LIB)
install::
# TODO
clean::
-rm *.o
-rm *.a
-rm *.~c
-rm *.~h
$(LIB): link.o
ar crsv $@ *.o
cp $@ ..

View File

@ -1,4 +1,5 @@
#include <pod_kernel_ap.h> #include <openpod.h>
#include <pod_kernel_api.h>
#include <errno.h> #include <errno.h>
@ -11,7 +12,7 @@ pod_dev_link( struct pod_driver *drv, struct pod_device *dev )
{ {
if( (0 == drv) || (0 == drv->kernel_driver_api) || (0 == drv->kernel_driver_api->pod_dev_link) ) return ENOSYS; if( (0 == drv) || (0 == drv->kernel_driver_api) || (0 == drv->kernel_driver_api->pod_dev_link) ) return ENOSYS;
return drv->kernel_driver_api->pod_dev_link( dev, dev ); return drv->kernel_driver_api->pod_dev_link( drv, dev );
} }
@ -20,5 +21,6 @@ pod_dev_unlink( struct pod_driver *drv, struct pod_device *dev )
{ {
if( (0 == drv) || (0 == drv->kernel_driver_api) || (0 == drv->kernel_driver_api->pod_dev_unlink) ) return ENOSYS; if( (0 == drv) || (0 == drv->kernel_driver_api) || (0 == drv->kernel_driver_api->pod_dev_unlink) ) return ENOSYS;
return drv->kernel_driver_api->pod_dev_unlink( dev, dev ); return drv->kernel_driver_api->pod_dev_unlink( drv, dev );
} }

View File

@ -1,7 +1,7 @@
include ../../config.mk include ../../config.mk
# TODO move pod_local_types.h from here and tests to some common place # TODO move pod_local_types.h from here and tests to some common place
CFLAGS += -I../../openpod -I. CFLAGS += -I../../openpod -I../..
all: libopenpod_helpers.a all: libopenpod_helpers.a

View File

@ -69,6 +69,9 @@ errno_t (*pod_awake)( struct pod_driver *drv );
typedef struct kernel_f typedef struct kernel_f
{ {
errno_t (*pod_dev_link)( struct pod_driver *drv, struct pod_device *dev );
errno_t (*pod_dev_unlink)( struct pod_driver *drv, struct pod_device *dev );
} kernel_f; } kernel_f;
//------------------------------------------------------------------- //-------------------------------------------------------------------