Module Name: src Committed By: mrg Date: Sat May 4 23:52:18 UTC 2019
Modified Files: src/sys/dev/usb: ukyopon.c Log Message: don't pass two different softcs that just happen to overlap, but shim the umodem functions directly and call them with the sub-softc. To generate a diff of this commit: cvs rdiff -u -r1.21 -r1.22 src/sys/dev/usb/ukyopon.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/usb/ukyopon.c diff -u src/sys/dev/usb/ukyopon.c:1.21 src/sys/dev/usb/ukyopon.c:1.22 --- src/sys/dev/usb/ukyopon.c:1.21 Sat May 4 08:04:13 2019 +++ src/sys/dev/usb/ukyopon.c Sat May 4 23:52:18 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: ukyopon.c,v 1.21 2019/05/04 08:04:13 mrg Exp $ */ +/* $NetBSD: ukyopon.c,v 1.22 2019/05/04 23:52:18 mrg Exp $ */ /* * Copyright (c) 1998, 2005 The NetBSD Foundation, Inc. @@ -34,7 +34,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ukyopon.c,v 1.21 2019/05/04 08:04:13 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ukyopon.c,v 1.22 2019/05/04 23:52:18 mrg Exp $"); #ifdef _KERNEL_OPT #include "opt_usb.h" @@ -86,27 +86,31 @@ struct ukyopon_softc { #define UKYOPON_MODEM_IFACE_INDEX 0 #define UKYOPON_DATA_IFACE_INDEX 3 -Static void ukyopon_get_status(void *, int, u_char *, u_char *); -Static int ukyopon_ioctl(void *, int, u_long, void *, int, proc_t *); +static void ukyopon_get_status(void *, int, u_char *, u_char *); +static int ukyopon_ioctl(void *, int, u_long, void *, int, proc_t *); +static void ukyopon_set(void *, int, int, int); +static int ukyopon_param(void *, int, struct termios *); +static int ukyopon_open(void *, int); +static void ukyopon_close(void *, int); -Static struct ucom_methods ukyopon_methods = { +static struct ucom_methods ukyopon_methods = { .ucom_get_status = ukyopon_get_status, - .ucom_set = umodem_set, - .ucom_param = umodem_param, + .ucom_set = ukyopon_set, + .ucom_param = ukyopon_param, .ucom_ioctl = ukyopon_ioctl, - .ucom_open = umodem_open, - .ucom_close = umodem_close, + .ucom_open = ukyopon_open, + .ucom_close = ukyopon_close, }; -int ukyopon_match(device_t, cfdata_t, void *); -void ukyopon_attach(device_t, device_t, void *); -int ukyopon_detach(device_t, int); -int ukyopon_activate(device_t, enum devact); +static int ukyopon_match(device_t, cfdata_t, void *); +static void ukyopon_attach(device_t, device_t, void *); +static int ukyopon_detach(device_t, int); +static int ukyopon_activate(device_t, enum devact); extern struct cfdriver ukyopon_cd; CFATTACH_DECL_NEW(ukyopon, sizeof(struct ukyopon_softc), ukyopon_match, ukyopon_attach, ukyopon_detach, ukyopon_activate); -int +static int ukyopon_match(device_t parent, cfdata_t match, void *aux) { struct usbif_attach_arg *uiaa = aux; @@ -120,7 +124,7 @@ ukyopon_match(device_t parent, cfdata_t return UMATCH_NONE; } -void +static void ukyopon_attach(device_t parent, device_t self, void *aux) { struct ukyopon_softc *sc = device_private(self); @@ -138,7 +142,7 @@ ukyopon_attach(device_t parent, device_t return; } -Static void +static void ukyopon_get_status(void *addr, int portno, u_char *lsr, u_char *msr) { struct ukyopon_softc *sc = addr; @@ -153,7 +157,40 @@ ukyopon_get_status(void *addr, int portn umodem_get_status(addr, portno, lsr, msr); } -Static int +static void +ukyopon_set(void *addr, int portno, int reg, int onoff) +{ + struct ukyopon_softc *sc = addr; + + umodem_set(&sc->sc_umodem, portno, reg, onoff); +} + +static int +ukyopon_param(void *addr, int portno, struct termios *t) +{ + struct ukyopon_softc *sc = addr; + + return umodem_param(&sc->sc_umodem, portno, t); +} + +static int +ukyopon_open(void *addr, int portno) +{ + struct ukyopon_softc *sc = addr; + + return umodem_open(&sc->sc_umodem, portno); +} + +static void +ukyopon_close(void *addr, int portno) +{ + struct ukyopon_softc *sc = addr; + + umodem_close(&sc->sc_umodem, portno); +} + + +static int ukyopon_ioctl(void *addr, int portno, u_long cmd, void *data, int flag, proc_t *p) {