Last active
October 10, 2023 18:46
-
-
Save lparkes/bea894126a860562fecebd3c645b51cb to your computer and use it in GitHub Desktop.
A patch to modularise the owtemp driver
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff -r f342fcb013e6 distrib/sets/lists/modules/mi | |
--- a/distrib/sets/lists/modules/mi Fri Nov 18 16:01:00 2022 +0000 | |
+++ b/distrib/sets/lists/modules/mi Mon Nov 21 09:05:12 2022 +1300 | |
@@ -361,6 +361,8 @@ | |
./@MODULEDIR@/opencrypto/opencrypto.kmod modules-base-kernel kmod | |
./@MODULEDIR@/overlay modules-base-kernel kmod | |
./@MODULEDIR@/overlay/overlay.kmod modules-base-kernel kmod | |
+./@MODULEDIR@/owtemp modules-base-kernel kmod | |
+./@MODULEDIR@/owtemp/owtemp.kmod modules-base-kernel kmod | |
./@MODULEDIR@/pad modules-base-kernel kmod | |
./@MODULEDIR@/pad/pad.kmod modules-base-kernel kmod | |
./@MODULEDIR@/pciverbose modules-base-kernel kmod | |
diff -r f342fcb013e6 sys/dev/onewire/owtemp.c | |
--- a/sys/dev/onewire/owtemp.c Fri Nov 18 16:01:00 2022 +0000 | |
+++ b/sys/dev/onewire/owtemp.c Mon Nov 21 09:05:12 2022 +1300 | |
@@ -58,6 +58,7 @@ | |
#include <sys/device.h> | |
#include <sys/kernel.h> | |
#include <sys/proc.h> | |
+#include <sys/module.h> | |
#include <dev/sysmon/sysmonvar.h> | |
@@ -316,3 +317,37 @@ | |
/* convert to uK */ | |
return (temp + 273150000); | |
} | |
+ | |
+MODULE(MODULE_CLASS_DRIVER, owtemp, "onewire"); | |
+ | |
+#ifdef _MODULE | |
+#include "ioconf.c" | |
+#endif | |
+ | |
+static int | |
+owtemp_modcmd(modcmd_t cmd, void *opaque) | |
+{ | |
+ int error; | |
+ | |
+ error = 0; | |
+ switch (cmd) { | |
+ case MODULE_CMD_INIT: | |
+#ifdef _MODULE | |
+ error = config_init_component(cfdriver_ioconf_owtemp, | |
+ cfattach_ioconf_owtemp, cfdata_ioconf_owtemp); | |
+ if (error) | |
+ aprint_error("%s: unable to init component\n", | |
+ owtemp_cd.cd_name); | |
+#endif | |
+ break; | |
+ case MODULE_CMD_FINI: | |
+#ifdef _MODULE | |
+ config_fini_component(cfdriver_ioconf_owtemp, | |
+ cfattach_ioconf_owtemp, cfdata_ioconf_owtemp); | |
+#endif | |
+ break; | |
+ default: | |
+ error = ENOTTY; | |
+ } | |
+ return error; | |
+} | |
diff -r f342fcb013e6 sys/modules/Makefile | |
--- a/sys/modules/Makefile Fri Nov 18 16:01:00 2022 +0000 | |
+++ b/sys/modules/Makefile Mon Nov 21 09:05:12 2022 +1300 | |
@@ -136,6 +136,7 @@ | |
SUBDIR+= onewire | |
SUBDIR+= opencrypto | |
SUBDIR+= overlay | |
+SUBDIR+= owtemp | |
SUBDIR+= pad | |
SUBDIR+= pciverbose | |
SUBDIR+= pf | |
diff -r f342fcb013e6 sys/modules/owtemp/Makefile | |
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 | |
+++ b/sys/modules/owtemp/Makefile Mon Nov 21 09:05:12 2022 +1300 | |
@@ -0,0 +1,13 @@ | |
+# $NetBSD$ | |
+ | |
+.include "../Makefile.inc" | |
+ | |
+.PATH: ${S}/dev/onewire | |
+ | |
+KMOD= owtemp | |
+IOCONF= owtemp.ioconf | |
+SRCS= owtemp.c | |
+ | |
+CPPFLAGS+= -I${S}/onewire | |
+ | |
+.include <bsd.kmodule.mk> | |
diff -r f342fcb013e6 sys/modules/owtemp/owtemp.ioconf | |
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 | |
+++ b/sys/modules/owtemp/owtemp.ioconf Mon Nov 21 09:05:12 2022 +1300 | |
@@ -0,0 +1,8 @@ | |
+# $NetBSD$ | |
+ | |
+ioconf owtemp | |
+ | |
+include "conf/files" | |
+ | |
+pseudo-root onewire* | |
+owtemp* at onewire? | |
+1300 | |
@@ -58,6 +58,7 @@ | |
#include <sys/device.h> | |
#include <sys/kernel.h> | |
#include <sys/proc.h> | |
+#include <sys/module.h> | |
#include <dev/sysmon/sysmonvar.h> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment