Index: kern/kern_stub.c =================================================================== RCS file: /cvsroot/src/sys/kern/kern_stub.c,v retrieving revision 1.47 diff -p -u -r1.47 kern_stub.c --- kern/kern_stub.c 27 Jan 2019 02:55:26 -0000 1.47 +++ kern/kern_stub.c 7 Oct 2019 03:34:15 -0000 @@ -232,6 +232,8 @@ enodev(void) return (ENODEV); } +__strong_alias(devenodev,enodev); +__strong_alias(ttyenodev,enodev); /* * Unconfigured device function; driver not configured. @@ -275,6 +277,7 @@ eopnotsupp(void) return (EOPNOTSUPP); } +__strong_alias(deveopnotsupp,eopnotsupp); /* * Generic null operation, void return value. @@ -283,6 +286,7 @@ void voidop(void) { } +__strong_alias(ttyvenodev,voidop); /* * Generic null operation, always returns success. Index: sys/conf.h =================================================================== RCS file: /cvsroot/src/sys/sys/conf.h,v retrieving revision 1.151 diff -p -u -r1.151 conf.h --- sys/conf.h 17 Dec 2016 03:46:52 -0000 1.151 +++ sys/conf.h 7 Oct 2019 03:34:15 -0000 @@ -126,30 +126,35 @@ devmajor_t cdevsw_lookup_major(const str #define dev_type_kqfilter(n) int n (dev_t, struct knote *) #define dev_type_discard(n) int n (dev_t, off_t, off_t) -#define noopen ((dev_type_open((*)))enodev) -#define noclose ((dev_type_close((*)))enodev) -#define noread ((dev_type_read((*)))enodev) -#define nowrite ((dev_type_write((*)))enodev) -#define noioctl ((dev_type_ioctl((*)))enodev) -#define nostop ((dev_type_stop((*)))enodev) +int devenodev(dev_t, ...); +int deveopnotsupp(dev_t, ...); +int ttyenodev(struct tty *, ...); +void ttyvenodev(struct tty *, ...); + +#define noopen ((dev_type_open((*)))devenodev) +#define noclose ((dev_type_close((*)))devenodev) +#define noread ((dev_type_read((*)))devenodev) +#define nowrite ((dev_type_write((*)))devenodev) +#define noioctl ((dev_type_ioctl((*)))devenodev) +#define nostop ((dev_type_stop((*)))ttyvenodev) #define notty NULL #define nopoll seltrue paddr_t nommap(dev_t, off_t, int); -#define nodump ((dev_type_dump((*)))enodev) +#define nodump ((dev_type_dump((*)))devenodev) #define nosize NULL #define nokqfilter seltrue_kqfilter -#define nodiscard ((dev_type_discard((*)))enodev) +#define nodiscard ((dev_type_discard((*)))devenodev) -#define nullopen ((dev_type_open((*)))nullop) -#define nullclose ((dev_type_close((*)))nullop) -#define nullread ((dev_type_read((*)))nullop) -#define nullwrite ((dev_type_write((*)))nullop) -#define nullioctl ((dev_type_ioctl((*)))nullop) -#define nullstop ((dev_type_stop((*)))nullop) -#define nullpoll ((dev_type_poll((*)))nullop) -#define nulldump ((dev_type_dump((*)))nullop) -#define nullkqfilter ((dev_type_kqfilter((*)))eopnotsupp) -#define nulldiscard ((dev_type_discard((*)))nullop) +#define nullopen ((dev_type_open((*)))devenodev) +#define nullclose ((dev_type_close((*)))devenodev) +#define nullread ((dev_type_read((*)))devenodev) +#define nullwrite ((dev_type_write((*)))devenodev) +#define nullioctl ((dev_type_ioctl((*)))devenodev) +#define nullstop ((dev_type_stop((*)))ttyvenodev) +#define nullpoll ((dev_type_poll((*)))devenodev) +#define nulldump ((dev_type_dump((*)))devenodev) +#define nullkqfilter ((dev_type_kqfilter((*)))deveopnotsupp) +#define nulldiscard ((dev_type_discard((*)))devenodev) /* device access wrappers. */ @@ -216,11 +221,10 @@ struct linesw *ttyldisc_default(void); void ttyldisc_release(struct linesw *); /* For those defining their own line disciplines: */ -#define ttynodisc ((int (*)(dev_t, struct tty *))enodev) -#define ttyerrclose ((int (*)(struct tty *, int))enodev) -#define ttyerrio ((int (*)(struct tty *, struct uio *, int))enodev) -#define ttyerrinput ((int (*)(int, struct tty *))enodev) -#define ttyerrstart ((int (*)(struct tty *))enodev) +#define ttynodisc ((int (*)(dev_t, struct tty *))devenodev) +#define ttyerrclose ((int (*)(struct tty *, int))ttyenodev) +#define ttyerrio ((int (*)(struct tty *, struct uio *, int))ttyenodev) +#define ttyerrstart ((int (*)(struct tty *))ttyenodev) int ttyerrpoll (struct tty *, int, struct lwp *); int ttynullioctl(struct tty *, u_long, void *, int, struct lwp *);