summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta-skeleton/recipes-kernel/kernel-module-slave/files/COPYING15
-rw-r--r--meta-skeleton/recipes-kernel/kernel-module-slave/files/Makefile16
-rw-r--r--meta-skeleton/recipes-kernel/kernel-module-slave/files/slave.c52
-rw-r--r--meta-skeleton/recipes-kernel/kernel-module-slave/kernel-module-slave.bb17
4 files changed, 100 insertions, 0 deletions
diff --git a/meta-skeleton/recipes-kernel/kernel-module-slave/files/COPYING b/meta-skeleton/recipes-kernel/kernel-module-slave/files/COPYING
new file mode 100644
index 00000000000..286d9e8890c
--- /dev/null
+++ b/meta-skeleton/recipes-kernel/kernel-module-slave/files/COPYING
@@ -0,0 +1,15 @@
+Copyright (C) 2020 Hubert CHAUMETTE
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
diff --git a/meta-skeleton/recipes-kernel/kernel-module-slave/files/Makefile b/meta-skeleton/recipes-kernel/kernel-module-slave/files/Makefile
new file mode 100644
index 00000000000..edf12b7f31f
--- /dev/null
+++ b/meta-skeleton/recipes-kernel/kernel-module-slave/files/Makefile
@@ -0,0 +1,16 @@
+SRC := $(shell pwd)
+
+obj-m := slave.o
+# $src is a Kbuild variable. Using $SRC doesn't work.
+ccflags-y := -I$(src)/recipe-sysroot/usr/include/kernel-module-master/
+
+all:
+ $(MAKE) -C $(KERNEL_SRC) M=$(SRC)
+
+modules_install:
+ $(MAKE) -C $(KERNEL_SRC) M=$(SRC) modules_install
+
+clean:
+ rm -f *.o *~ core .depend .*.cmd *.ko *.mod.c
+ rm -f Module.markers Module.symvers modules.order
+ rm -rf .tmp_versions Modules.symvers
diff --git a/meta-skeleton/recipes-kernel/kernel-module-slave/files/slave.c b/meta-skeleton/recipes-kernel/kernel-module-slave/files/slave.c
new file mode 100644
index 00000000000..b1d9b92cc6b
--- /dev/null
+++ b/meta-skeleton/recipes-kernel/kernel-module-slave/files/slave.c
@@ -0,0 +1,52 @@
+/*
+ * External kernel module dependency exemple - slave module
+ *
+ * Copyright (C) 2020 Hubert CHAUMETTE
+ */
+
+#include <linux/module.h>
+#include <master.h>
+
+static int slave_notify(struct notifier_block *self,
+ unsigned long action, void *data);
+
+static struct notifier_block slave_nb = {
+ .notifier_call = slave_notify,
+};
+
+static int slave_notify(struct notifier_block *self,
+ unsigned long action, void *data)
+{
+ struct master_evt_data *d = (struct master_evt_data *)data;
+
+ BUG_ON(data == NULL);
+
+ switch (action) {
+ case MASTER_EVT_READ:
+ pr_info("slave: \"%.*s\" read from master\n", d->count, d->buf);
+ break;
+ case MASTER_EVT_WRITE:
+ pr_info("slave: \"%.*s\" written to master\n", d->count, d->buf);
+ break;
+ default:
+ break;
+ }
+
+ return NOTIFY_DONE;
+}
+
+static int __init slave_init(void)
+{
+ return master_notifier_register(&slave_nb);
+}
+module_init(slave_init);
+
+static void __exit slave_exit(void)
+{
+ master_notifier_unregister(&slave_nb);
+}
+module_exit(slave_exit);
+
+MODULE_AUTHOR("Hubert CHAUMETTE");
+MODULE_DESCRIPTION("External kernel module dependency exemple - slave module");
+MODULE_LICENSE("GPL");
diff --git a/meta-skeleton/recipes-kernel/kernel-module-slave/kernel-module-slave.bb b/meta-skeleton/recipes-kernel/kernel-module-slave/kernel-module-slave.bb
new file mode 100644
index 00000000000..280fa815f3d
--- /dev/null
+++ b/meta-skeleton/recipes-kernel/kernel-module-slave/kernel-module-slave.bb
@@ -0,0 +1,17 @@
+SUMMARY = "External kernel module dependency exemple - slave module"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1c5a04927650c42822bb4b1de4641658"
+
+inherit module
+
+PN = "kernel-module-slave"
+PV = "0.1"
+
+DEPENDS = "kernel-module-master"
+
+SRC_URI = "file://Makefile \
+ file://slave.c \
+ file://COPYING \
+ "
+
+S = "${WORKDIR}"