From b5763c3e61a73a807a283c8b687c8fddf229a816 Mon Sep 17 00:00:00 2001 From: dzavalishin Date: Mon, 29 Jun 2015 15:13:26 +0300 Subject: [PATCH] indirect kernel api --- src/config.mk | 2 ++ src/libs/indirect_kernel/Makefile | 22 +++++++++++++++++++ src/libs/indirect_kernel/link.c | 10 +++++---- src/libs/openpod_helpers/Makefile | 2 +- src/openpod/pod_driver.h | 3 +++ .../openpod_helpers => }/pod_local_types.h | 0 6 files changed, 34 insertions(+), 5 deletions(-) create mode 100755 src/libs/indirect_kernel/Makefile rename src/{libs/openpod_helpers => }/pod_local_types.h (100%) diff --git a/src/config.mk b/src/config.mk index 9239c91..5e0c329 100755 --- a/src/config.mk +++ b/src/config.mk @@ -1 +1,3 @@ MAKEFLAGS += --no-print-directory +#CC=C:/MinGW/bin/mingw32-gcc.exe + diff --git a/src/libs/indirect_kernel/Makefile b/src/libs/indirect_kernel/Makefile new file mode 100755 index 0000000..f178558 --- /dev/null +++ b/src/libs/indirect_kernel/Makefile @@ -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 $@ .. diff --git a/src/libs/indirect_kernel/link.c b/src/libs/indirect_kernel/link.c index ceb7372..f53b3a5 100644 --- a/src/libs/indirect_kernel/link.c +++ b/src/libs/indirect_kernel/link.c @@ -1,4 +1,5 @@ -#include +#include +#include #include @@ -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; - 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; - return drv->kernel_driver_api->pod_dev_unlink( dev, dev ); -} \ No newline at end of file + return drv->kernel_driver_api->pod_dev_unlink( drv, dev ); +} + diff --git a/src/libs/openpod_helpers/Makefile b/src/libs/openpod_helpers/Makefile index 13bfb20..e9c5727 100755 --- a/src/libs/openpod_helpers/Makefile +++ b/src/libs/openpod_helpers/Makefile @@ -1,7 +1,7 @@ include ../../config.mk # 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 diff --git a/src/openpod/pod_driver.h b/src/openpod/pod_driver.h index 9196f2b..9bb6d3a 100755 --- a/src/openpod/pod_driver.h +++ b/src/openpod/pod_driver.h @@ -69,6 +69,9 @@ errno_t (*pod_awake)( struct pod_driver *drv ); 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; //------------------------------------------------------------------- diff --git a/src/libs/openpod_helpers/pod_local_types.h b/src/pod_local_types.h similarity index 100% rename from src/libs/openpod_helpers/pod_local_types.h rename to src/pod_local_types.h