Module Name: src Committed By: pgoyette Date: Sat Sep 15 05:56:50 UTC 2018
Modified Files: src/sys/kern [pgoyette-compat]: compat_stub.c src/sys/sys [pgoyette-compat]: compat_stub.h Log Message: Prepare for adding MP-safe stuff. While here, move some header #includes To generate a diff of this commit: cvs rdiff -u -r1.1.2.15 -r1.1.2.16 src/sys/kern/compat_stub.c cvs rdiff -u -r1.1.2.15 -r1.1.2.16 src/sys/sys/compat_stub.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/kern/compat_stub.c diff -u src/sys/kern/compat_stub.c:1.1.2.15 src/sys/kern/compat_stub.c:1.1.2.16 --- src/sys/kern/compat_stub.c:1.1.2.15 Tue Apr 17 07:24:55 2018 +++ src/sys/kern/compat_stub.c Sat Sep 15 05:56:50 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: compat_stub.c,v 1.1.2.15 2018/04/17 07:24:55 pgoyette Exp $ */ +/* $NetBSD: compat_stub.c,v 1.1.2.16 2018/09/15 05:56:50 pgoyette Exp $ */ /*- * Copyright (c) 2018 The NetBSD Foundation, Inc. @@ -39,6 +39,11 @@ #include <sys/systm.h> #include <sys/compat_stub.h> +#ifdef NTP +#include <sys/timespec.h> +#include <sys/timex.h> +#endif + /* * Routine vectors for compat_50___sys_ntp_gettime */ @@ -51,6 +56,11 @@ void (*vec_ntp_gettime)(struct ntptimeva int (*vec_ntp_timestatus)(void) = NULL; #endif +#if NUSB > 0 +#include <dev/usb/usb.h> +#include <dev/usb/usbdi.h> +#endif + /* * ccd device compatability ioctl */ Index: src/sys/sys/compat_stub.h diff -u src/sys/sys/compat_stub.h:1.1.2.15 src/sys/sys/compat_stub.h:1.1.2.16 --- src/sys/sys/compat_stub.h:1.1.2.15 Tue Apr 17 07:24:55 2018 +++ src/sys/sys/compat_stub.h Sat Sep 15 05:56:50 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: compat_stub.h,v 1.1.2.15 2018/04/17 07:24:55 pgoyette Exp $ */ +/* $NetBSD: compat_stub.h,v 1.1.2.16 2018/09/15 05:56:50 pgoyette Exp $ */ /*- * Copyright (c) 2018 The NetBSD Foundation, Inc. @@ -32,12 +32,37 @@ #ifndef _SYS_COMPAT_STUB_H #define _SYS_COMPAT_STUB_H +#include <sys/mutex.h> +#include <sys/localcount.h> +#include <sys/condvar.h> +#include <sys/pserialize.h> + +/* + * Macro for creating MP-safe vectored function calls + */ +#if defined(MODULAR) +#define COMPAT_HOOK(name,type,args) \ +struct __CONCAT(name,_t) { \ + kmutex_t lock; \ + kcondvar_t cv; \ + struct localcount lc; \ + pserialize_t psz; \ + bool hooked; \ + type (*func)(args); \ +} name __cacheline_aligned; +#else /* defined(MODULAR) */ +#define COMPAT_HOOK(name,type.args) \ +struct __CONCAT(name,_t) { \ + bool hooked; \ + type (*func)(args); \ +} name __cacheline_aligned; +#endif /* defined(MODULAR) */ + /* * Routine vectors for compat_50___sys_ntp_gettime */ -#include <sys/timespec.h> -#include <sys/timex.h> +struct ntptimeval; extern void (*vec_ntp_gettime)(struct ntptimeval *); extern int (*vec_ntp_timestatus)(void); @@ -47,7 +72,7 @@ extern int (*vec_ntp_timestatus)(void); */ extern int (*compat_ccd_ioctl_60)(dev_t, u_long, void *, int, struct lwp *, - int (*f)(dev_t, u_long, void *, int, struct lwp *)); +- int (*f)(dev_t, u_long, void *, int, struct lwp *)); /* * Routine vector for dev/clockctl ioctl() @@ -128,9 +153,6 @@ extern int (*compat_vndioctl_30)(u_long, * usb devinfo compatability */ -#include <dev/usb/usb.h> -#include <dev/usb/usbdi.h> - struct usbd_device; struct usb_device_info; struct usb_device_info_old;