diff options
Diffstat (limited to 'usr/src/uts/common/sys')
| -rw-r--r-- | usr/src/uts/common/sys/autoconf.h | 3 | ||||
| -rw-r--r-- | usr/src/uts/common/sys/ddi_implfuncs.h | 3 | ||||
| -rw-r--r-- | usr/src/uts/common/sys/modctl.h | 10 |
3 files changed, 12 insertions, 4 deletions
diff --git a/usr/src/uts/common/sys/autoconf.h b/usr/src/uts/common/sys/autoconf.h index babda9d22a..5aa9351981 100644 --- a/usr/src/uts/common/sys/autoconf.h +++ b/usr/src/uts/common/sys/autoconf.h @@ -43,6 +43,7 @@ extern "C" { #include <sys/thread.h> #include <sys/obpdefs.h> #include <sys/systm.h> +#include <sys/hwconf.h> struct devnames { char *dn_name; /* Name of this driver */ @@ -234,9 +235,9 @@ extern krwlock_t devinfo_tree_lock; /* obsolete */ extern void impl_rem_dev_props(dev_info_t *); extern void add_class(char *, char *); -struct bind; extern int make_mbind(char *, int, char *, struct bind **); extern void delete_mbind(char *, struct bind **); +extern void purge_mbind(int, struct bind **); extern void configure(void); #if defined(__sparc) diff --git a/usr/src/uts/common/sys/ddi_implfuncs.h b/usr/src/uts/common/sys/ddi_implfuncs.h index 8a2bbca780..fc9a42f587 100644 --- a/usr/src/uts/common/sys/ddi_implfuncs.h +++ b/usr/src/uts/common/sys/ddi_implfuncs.h @@ -20,7 +20,7 @@ */ /* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved. + * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -234,6 +234,7 @@ void i_ddi_set_node_state(dev_info_t *, ddi_node_state_t); int i_ddi_detach_installed_driver(major_t, int); void i_ddi_set_binding_name(dev_info_t *, char *); void i_ddi_bind_devs(); +int i_ddi_unbind_devs_by_alias(major_t, char *); void i_ddi_unbind_devs(major_t); ddi_prop_list_t *i_ddi_prop_list_create(ddi_prop_t *); struct devnames; diff --git a/usr/src/uts/common/sys/modctl.h b/usr/src/uts/common/sys/modctl.h index ed0811c580..592b3d11fe 100644 --- a/usr/src/uts/common/sys/modctl.h +++ b/usr/src/uts/common/sys/modctl.h @@ -19,7 +19,7 @@ * CDDL HEADER END */ /* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved. + * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -276,6 +276,7 @@ struct modlinkage { #define MODUNRETIRE 41 #define MODISRETIRED 42 #define MODDEVEMPTYDIR 43 +#define MODREMDRVALIAS 44 /* * sub cmds for MODEVENTS @@ -315,6 +316,7 @@ struct modconfig { char drvname[MAXMODCONFNAME]; char drvclass[MAXMODCONFNAME]; int major; + int flags; int num_aliases; struct aliases *ap; }; @@ -331,12 +333,16 @@ struct modconfig32 { char drvname[MAXMODCONFNAME]; char drvclass[MAXMODCONFNAME]; int32_t major; + int32_t flags; int32_t num_aliases; caddr32_t ap; }; #endif /* _SYSCALL32 */ +/* flags for modconfig */ +#define MOD_UNBIND_OVERRIDE 0x01 /* fail unbind if in use */ + /* * Max module path length */ @@ -592,7 +598,6 @@ extern void mod_rele_dev_by_devi(dev_info_t *); extern int make_devname(char *, major_t); extern int gmatch(const char *, const char *); -struct bind; extern void make_aliases(struct bind **); extern int read_binding_file(char *, struct bind **, int (*line_parser)(char *, int, char *, struct bind **)); @@ -661,6 +666,7 @@ extern int modctl(int, ...); #define MODDEBUG_ERRMSG 0x40000000 /* print detailed error msgs */ #define MODDEBUG_LOADMSG2 0x20000000 /* print 2nd level msgs */ #define MODDEBUG_RETIRE 0x10000000 /* print retire msgs */ +#define MODDEBUG_BINDING 0x00040000 /* driver/alias binding */ #define MODDEBUG_FINI_EBUSY 0x00020000 /* pretend fini returns EBUSY */ #define MODDEBUG_NOAUL_IPP 0x00010000 /* no Autounloading ipp mods */ #define MODDEBUG_NOAUL_DACF 0x00008000 /* no Autounloading dacf mods */ |
