From f41b81068d8bcc68c4af36218985ac231fb9e6e9 Mon Sep 17 00:00:00 2001 From: Vyacheslav Cherkashin Date: Mon, 1 Jul 2013 11:18:59 +0400 Subject: [PATCH] [REFACTOR] add parser module in build system --- parser/Kbuild | 7 ++++--- parser/Makefile | 14 -------------- parser/Makefile.am | 24 ++++++++++++++++++++++++ parser/swap_message_parser.sh | 17 +++++++++++++++++ parser/swap_message_parser_module.c | 4 ++-- 5 files changed, 47 insertions(+), 19 deletions(-) delete mode 100644 parser/Makefile create mode 100644 parser/Makefile.am create mode 100755 parser/swap_message_parser.sh diff --git a/parser/Kbuild b/parser/Kbuild index c2a3d2e..f457efe 100644 --- a/parser/Kbuild +++ b/parser/Kbuild @@ -1,5 +1,6 @@ -EXTRA_CFLAGS := +EXTRA_CFLAGS := $(extra_cflags) obj-m := swap_message_parser.o - -swap_message_parser-y := swap_message_parser_module.o message_parser.o message_handler.o +swap_message_parser-y := swap_message_parser_module.o \ + message_parser.o \ + message_handler.o diff --git a/parser/Makefile b/parser/Makefile deleted file mode 100644 index 2fe167c..0000000 --- a/parser/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -KERNEL_OBJECTS := swap_message_parser.o swap_message_parser.mod.c swap_message_parser.mod.o swap_message_parser_module.o message_parser.o message_handler.o -#TOOLCHAIN :=/home/alexander/dev/u1_slp/arm-linux-gnueabi-gcc4.4.1-glibc2.11.1/bin/arm-none-linux-gnueabi- -TOOLCHAIN := /home/alexander/dev/qemu/buildroot-2013.02/output/host/usr/bin/arm-buildroot-linux-uclibcgnueabi- -#KERNEL := /home/alexander/dev/u1_slp/kernel_20121005 -#KERNEL := /home/alexander/vanilla_kernels/linux-3.8.6 -KERNEL := /home/alexander/dev/linux-3.4-exynos -CC := /home/alexander/dev/u1_slp/arm-linux-gnueabi-gcc4.4.1-glibc2.11.1/bin/arm-none-linux-gnueabi-gcc -obj-m := swap_parser_module.o - -all: - make ARCH=arm CROSS_COMPILE=$(TOOLCHAIN) -C $(KERNEL) SUBDIRS=$(PWD) modules - -clean: - rm $(KERNEL_OBJECTS) diff --git a/parser/Makefile.am b/parser/Makefile.am new file mode 100644 index 0000000..43c1221 --- /dev/null +++ b/parser/Makefile.am @@ -0,0 +1,24 @@ +board_opt = -DBOARD_@BOARD@ +target_kernel_src = @KERNEL@ +target_arch = @ARCH@ +module_dir = $(realpath $(top_srcdir)/src/modules/parser) +module_name = swap_message_parser +cross_compiler = $(subst gcc,,$(CC)) + +inlude_opt = -I$(realpath $(top_srcdir)/src/modules/) +extra_cflags = "$(inlude_opt) $(board_opt)" + +all-local: + $(MAKE) CROSS_COMPILE=$(cross_compiler) ARCH=$(target_arch) extra_cflags=$(extra_cflags) \ + $(AM_MAKEFLAGS) -C $(target_kernel_src) M=$(module_dir) modules + + echo "generate data for version patching <$(OBJDUMP)><$(READELF)>" + PATH=$(PATH) $(top_srcdir)/src/modules/driver/patchko.sh -g $(module_dir)/$(module_name).ko $(OBJDUMP) $(READELF) + +clean-local: + $(MAKE) CROSS_COMPILE=$(cross_compiler) ARCH=$(target_arch) $(AM_MAKEFLAGS) -C $(target_kernel_src) M=$(module_dir) clean + +install-exec-local: + install -m 644 $(module_dir)/$(module_name).ko $(prefix) + install -m 644 $(module_dir)/$(module_name).ko.addr $(prefix) + install -m 755 $(module_dir)/$(module_name).sh $(prefix) diff --git a/parser/swap_message_parser.sh b/parser/swap_message_parser.sh new file mode 100755 index 0000000..07f5117 --- /dev/null +++ b/parser/swap_message_parser.sh @@ -0,0 +1,17 @@ +#!/bin/sh + +MODULE_NAME=swap_message_parser + +# Check for running module in /proc/modules +RUNNING=`sed "/${MODULE_NAME}/ ! d" /proc/modules` + +if [ "${RUNNING}" = "" ]; then + ./bin/insmod.sh ${MODULE_NAME}.ko + if [ $? -ne 0 ]; then + echo "Error: unable to load ${MODULE_NAME} module!" + exit 1 + fi +else + echo "${MODULE_NAME} module is already running!" + exit 1 +fi diff --git a/parser/swap_message_parser_module.c b/parser/swap_message_parser_module.c index 981d8f6..4db839f 100644 --- a/parser/swap_message_parser_module.c +++ b/parser/swap_message_parser_module.c @@ -4,8 +4,8 @@ #include "message_handler.h" #include "swap_message_parser_errors.h" -#include "/home/alexander/swap_driver/swap_driver_module.h" //TODO Remove hardcode -#include "/home/alexander/swap_driver/ioctl_commands.h" // TODO Remove hardcode +#include +#include int swap_message_parser_handler(unsigned int cmd, void __user *msg) -- 2.7.4