1959 return (DDI_SUCCESS);
1960 }
1961
1962
1963 /*
1964 * ========== Module Loading Data & Entry Points ==========
1965 */
1966
1967 #undef RGE_DBG
1968 #define RGE_DBG RGE_DBG_INIT /* debug flag for this code */
1969 DDI_DEFINE_STREAM_OPS(rge_dev_ops, nulldev, nulldev, rge_attach, rge_detach,
1970 nodev, NULL, D_MP, NULL, rge_quiesce);
1971
1972 static struct modldrv rge_modldrv = {
1973 &mod_driverops, /* Type of module. This one is a driver */
1974 rge_ident, /* short description */
1975 &rge_dev_ops /* driver specific ops */
1976 };
1977
1978 static struct modlinkage modlinkage = {
1979 MODREV_1, (void *)&rge_modldrv, NULL
1980 };
1981
1982
1983 int
1984 _info(struct modinfo *modinfop)
1985 {
1986 return (mod_info(&modlinkage, modinfop));
1987 }
1988
1989 int
1990 _init(void)
1991 {
1992 int status;
1993
1994 mac_init_ops(&rge_dev_ops, "rge");
1995 status = mod_install(&modlinkage);
1996 if (status == DDI_SUCCESS)
1997 mutex_init(rge_log_mutex, NULL, MUTEX_DRIVER, NULL);
1998 else
1999 mac_fini_ops(&rge_dev_ops);
|
1959 return (DDI_SUCCESS);
1960 }
1961
1962
1963 /*
1964 * ========== Module Loading Data & Entry Points ==========
1965 */
1966
1967 #undef RGE_DBG
1968 #define RGE_DBG RGE_DBG_INIT /* debug flag for this code */
1969 DDI_DEFINE_STREAM_OPS(rge_dev_ops, nulldev, nulldev, rge_attach, rge_detach,
1970 nodev, NULL, D_MP, NULL, rge_quiesce);
1971
1972 static struct modldrv rge_modldrv = {
1973 &mod_driverops, /* Type of module. This one is a driver */
1974 rge_ident, /* short description */
1975 &rge_dev_ops /* driver specific ops */
1976 };
1977
1978 static struct modlinkage modlinkage = {
1979 MODREV_1, { (void *)&rge_modldrv, NULL }
1980 };
1981
1982
1983 int
1984 _info(struct modinfo *modinfop)
1985 {
1986 return (mod_info(&modlinkage, modinfop));
1987 }
1988
1989 int
1990 _init(void)
1991 {
1992 int status;
1993
1994 mac_init_ops(&rge_dev_ops, "rge");
1995 status = mod_install(&modlinkage);
1996 if (status == DDI_SUCCESS)
1997 mutex_init(rge_log_mutex, NULL, MUTEX_DRIVER, NULL);
1998 else
1999 mac_fini_ops(&rge_dev_ops);
|