summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/sys
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/common/sys')
-rw-r--r--usr/src/uts/common/sys/autoconf.h3
-rw-r--r--usr/src/uts/common/sys/ddi_implfuncs.h3
-rw-r--r--usr/src/uts/common/sys/modctl.h10
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 */