summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/CMakeLists.txt23
-rw-r--r--kernel/cmake/kernel.cmake12
-rw-r--r--kernel/xloop_file_fmt_qcow_main.c1
-rw-r--r--kernel/xloop_file_fmt_raw.c1
-rw-r--r--kernel/xloop_main.c2
5 files changed, 17 insertions, 22 deletions
diff --git a/kernel/CMakeLists.txt b/kernel/CMakeLists.txt
index 0cf209c..1f266f6 100644
--- a/kernel/CMakeLists.txt
+++ b/kernel/CMakeLists.txt
@@ -6,18 +6,6 @@ project(xloop-kernel)
set (CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};${CMAKE_CURRENT_SOURCE_DIR}/cmake")
include(kernel)
-# set Linux kernel directory
-set(KERNEL_DIR "/lib/modules/${CMAKE_SYSTEM_VERSION}"
- CACHE PATH "Path to Linux kernel modules to compile against")
-
-# define xloop device specific options
-set(XLOOP_CTRL_MINOR 15
- CACHE STRING "Minor number for the xloop-control device")
-
-# print configured settings
-message(STATUS "Path to Linux kernel modules to compile against is " ${KERNEL_DIR})
-message(STATUS "Minor number for the xloop-control device is " ${XLOOP_CTRL_MINOR})
-
# set C flags for a Linux kernel module
set(KERNEL_C_FLAGS "-DCONFIG_BLK_DEV_XLOOP_MIN_COUNT=${BLK_DEV_XLOOP_MIN_COUNT} -DXLOOP_MAJOR=${XLOOP_MAJOR} -DXLOOP_CTRL_MINOR=${XLOOP_CTRL_MINOR} -DVERSION=${VERSION}"
CACHE STRING "C flags to be used for building the kernel module")
@@ -36,7 +24,8 @@ set(KERNEL_MODULE_XLOOP_SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/xloop_file_fmt.
set(KERNEL_MODULE_XLOOP_HEADER_FILES ${CMAKE_CURRENT_SOURCE_DIR}/xloop_file_fmt.h
${CMAKE_CURRENT_SOURCE_DIR}/xloop_main.h
${CMAKE_CURRENT_SOURCE_DIR}/uapi)
-add_kernel_module(xloop "${KERNEL_DIR}"
+add_kernel_module(xloop "${KERNEL_BUILD_DIR}"
+ "${KERNEL_INSTALL_DIR}"
"CONFIG_BLK_DEV_XLOOP=m"
"${KERNEL_MODULE_XLOOP_SOURCE_FILES}"
"${KERNEL_MODULE_XLOOP_HEADER_FILES}"
@@ -47,7 +36,8 @@ set(KERNEL_MODULE_XLOOP_RAW_SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/xloop_file_
set(KERNEL_MODULE_XLOOP_RAW_HEADER_FILES ${CMAKE_CURRENT_SOURCE_DIR}/xloop_file_fmt.h
${CMAKE_CURRENT_SOURCE_DIR}/xloop_main.h
${CMAKE_CURRENT_SOURCE_DIR}/uapi)
-add_kernel_module(xloop_file_fmt_raw "${KERNEL_DIR}"
+add_kernel_module(xloop_file_fmt_raw "${KERNEL_BUILD_DIR}"
+ "${KERNEL_INSTALL_DIR}"
"CONFIG_BLK_DEV_XLOOP_FILE_FMT_RAW=m"
"${KERNEL_MODULE_XLOOP_RAW_SOURCE_FILES}"
"${KERNEL_MODULE_XLOOP_RAW_HEADER_FILES}"
@@ -64,7 +54,8 @@ set(KERNEL_MODULE_XLOOP_QCOW_HEADER_FILES ${CMAKE_CURRENT_SOURCE_DIR}/xloop_file
${CMAKE_CURRENT_SOURCE_DIR}/xloop_file_fmt.h
${CMAKE_CURRENT_SOURCE_DIR}/xloop_main.h
${CMAKE_CURRENT_SOURCE_DIR}/uapi)
-add_kernel_module(xloop_file_fmt_qcow "${KERNEL_DIR}"
+add_kernel_module(xloop_file_fmt_qcow "${KERNEL_BUILD_DIR}"
+ "${KERNEL_INSTALL_DIR}"
"CONFIG_BLK_DEV_XLOOP_FILE_FMT_QCOW=m"
"${KERNEL_MODULE_XLOOP_QCOW_SOURCE_FILES}"
"${KERNEL_MODULE_XLOOP_QCOW_HEADER_FILES}"
@@ -77,6 +68,6 @@ endif()
# install udev rules for xloop devices exposed by the xloop kernel module
install(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/udev/50-xloop.rules
- DESTINATION /lib/udev/rules.d
+ DESTINATION /${CMAKE_INSTALL_LIBDIR}/udev/rules.d
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
COMPONENT main)
diff --git a/kernel/cmake/kernel.cmake b/kernel/cmake/kernel.cmake
index 3ac7633..0d843e6 100644
--- a/kernel/cmake/kernel.cmake
+++ b/kernel/cmake/kernel.cmake
@@ -5,7 +5,7 @@
#
# macro to define kernel module targets
-macro(add_kernel_module MODULE_NAME KERNEL_DIR MODULE_MACRO MODULE_SOURCE_FILES MODULE_HEADER_FILES BUILD_SOURCE_FILE)
+macro(add_kernel_module MODULE_NAME KERNEL_BUILD_DIR KERNEL_INSTALL_DIR MODULE_MACRO MODULE_SOURCE_FILES MODULE_HEADER_FILES BUILD_SOURCE_FILE)
# copy build source file
file(COPY ${BUILD_SOURCE_FILE} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/${MODULE_NAME})
# copy source files
@@ -17,12 +17,12 @@ macro(add_kernel_module MODULE_NAME KERNEL_DIR MODULE_MACRO MODULE_SOURCE_FILES
file(COPY ${MODULE_HEADER_FILE} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/${MODULE_NAME})
endforeach()
# check if module depends on another module
- if(NOT ${ARGV6} STREQUAL "")
- set(MODULE_EXTRA_SYMBOLS ${CMAKE_CURRENT_BINARY_DIR}/${ARGV6}/Module.symvers)
+ if(NOT ${ARGV7} STREQUAL "")
+ set(MODULE_EXTRA_SYMBOLS ${CMAKE_CURRENT_BINARY_DIR}/${ARGV7}/Module.symvers)
endif()
# define build command
set(MODULE_BUILD_COMMAND ${CMAKE_MAKE_PROGRAM} ${MODULE_MACRO}
- -C ${KERNEL_DIR}/build
+ -C ${KERNEL_BUILD_DIR}
M=${CMAKE_CURRENT_BINARY_DIR}/${MODULE_NAME} modules
EXTRA_CFLAGS=${KERNEL_C_FLAGS}
KBUILD_EXTRA_SYMBOLS=${MODULE_EXTRA_SYMBOLS})
@@ -31,9 +31,9 @@ macro(add_kernel_module MODULE_NAME KERNEL_DIR MODULE_MACRO MODULE_SOURCE_FILES
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${MODULE_NAME}
DEPENDS ${MODULE_SOURCE_FILES} ${MODULE_HEADER_FILES} ${BUILD_SOURCE_FILE}
VERBATIM)
- add_custom_target(${MODULE_NAME} ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${MODULE_NAME}/${MODULE_NAME}.ko ${ARGV6})
+ add_custom_target(${MODULE_NAME} ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${MODULE_NAME}/${MODULE_NAME}.ko ${ARGV7})
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${MODULE_NAME}/${MODULE_NAME}.ko
- DESTINATION ${KERNEL_DIR}/extra
+ DESTINATION ${KERNEL_INSTALL_DIR}
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
COMPONENT main)
endmacro(add_kernel_module)
diff --git a/kernel/xloop_file_fmt_qcow_main.c b/kernel/xloop_file_fmt_qcow_main.c
index fbc49f5..38fe1af 100644
--- a/kernel/xloop_file_fmt_qcow_main.c
+++ b/kernel/xloop_file_fmt_qcow_main.c
@@ -1280,3 +1280,4 @@ MODULE_LICENSE("GPL");
MODULE_AUTHOR("Manuel Bentele <development@manuel-bentele.de>");
MODULE_DESCRIPTION("xloop device QCOW file format driver");
MODULE_SOFTDEP("pre: xloop");
+MODULE_VERSION(__stringify(VERSION));
diff --git a/kernel/xloop_file_fmt_raw.c b/kernel/xloop_file_fmt_raw.c
index f963e92..76ab39e 100644
--- a/kernel/xloop_file_fmt_raw.c
+++ b/kernel/xloop_file_fmt_raw.c
@@ -473,3 +473,4 @@ MODULE_LICENSE("GPL");
MODULE_AUTHOR("Manuel Bentele <development@manuel-bentele.de>");
MODULE_DESCRIPTION("xloop device RAW file format driver");
MODULE_SOFTDEP("pre: xloop");
+MODULE_VERSION(__stringify(VERSION));
diff --git a/kernel/xloop_main.c b/kernel/xloop_main.c
index 001b759..a3e20a6 100644
--- a/kernel/xloop_main.c
+++ b/kernel/xloop_main.c
@@ -1718,6 +1718,8 @@ MODULE_PARM_DESC(max_xloop, "Maximum number of xloop devices");
module_param(max_part, int, 0444);
MODULE_PARM_DESC(max_part, "Maximum number of partitions per xloop device");
MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Manuel Bentele <development@manuel-bentele.de>");
+MODULE_VERSION(__stringify(VERSION));
MODULE_ALIAS_BLOCKDEV_MAJOR(XLOOP_MAJOR);
int xloop_register_transfer(struct xloop_func_table *funcs)