this has autoconf(9) allocatethe todr struct thing as part of a softc
instead of allocting it separately during attach.
no functional change, just a shuffling of the deck chairs.
ok?
Index: prtc.c
===================================================================
RCS file: /cvs/src/sys/arch/sparc64/dev/prtc.c,v
retrieving revision 1.4
diff -u -p -r1.4 prtc.c
--- prtc.c 28 Aug 2018 00:00:42 -0000 1.4
+++ prtc.c 28 Aug 2018 23:52:40 -0000
@@ -35,11 +35,17 @@
extern todr_chip_handle_t todr_handle;
+struct prtc_softc {
+ struct device sc_dev;
+ struct todr_chip_handle
+ sc_todr_chip;
+};
+
int prtc_match(struct device *, void *, void *);
void prtc_attach(struct device *, struct device *, void *);
struct cfattach prtc_ca = {
- sizeof(struct device), prtc_match, prtc_attach
+ sizeof(struct prtc_softc), prtc_match, prtc_attach
};
struct cfdriver prtc_cd = {
@@ -66,7 +72,8 @@ prtc_match(struct device *parent, void *
void
prtc_attach(struct device *parent, struct device *self, void *aux)
{
- todr_chip_handle_t handle;
+ struct prtc_softc *sc = (struct prtc_softc *)self;
+ todr_chip_handle_t handle = &sc->sc_todr_chip;
char buf[32];
int opl;
@@ -78,11 +85,7 @@ prtc_attach(struct device *parent, struc
printf("\n");
- handle = malloc(sizeof(struct todr_chip_handle), M_DEVBUF, M_NOWAIT);
- if (handle == NULL)
- panic("couldn't allocate todr_handle");
-
- handle->cookie = self;
+ handle->cookie = sc;
if (opl) {
handle->todr_gettime = prtc_opl_gettime;
handle->todr_settime = prtc_opl_settime;