Exemplo n.º 1
0
int
_fini(void)
{
	int error;

	if ((error = mod_remove(&modlinkage)) == DDI_SUCCESS) {
		mac_fini_ops(&efe_dev_ops);
	}

	return (error);
}
Exemplo n.º 2
0
int
_fini(void)
{
	int	rc;

	if ((rc = mod_remove(&pcn_modlinkage)) == DDI_SUCCESS) {
		mac_fini_ops(&pcn_devops);
		ddi_soft_state_fini(&pcn_ssp);
	}
	return (rc);
}
Exemplo n.º 3
0
/*
 * Loadable module entry points.
 */
int
_init(void)
{
	int error;

	mac_init_ops(&efe_dev_ops, "efe");
	if ((error = mod_install(&modlinkage)) != DDI_SUCCESS) {
		mac_fini_ops(&efe_dev_ops);
	}

	return (error);
}
Exemplo n.º 4
0
int
_fini(void)
{
	int error;

	error = mod_remove(&virtionet_modlinkage);
	if (error == 0) {
		mac_fini_ops(&virtionet_devops);
		ddi_soft_state_fini(&virtionet_statep);
	}
	return (error);
}
Exemplo n.º 5
0
int _fini(void)
{
    int rc;
    LogFlowFunc((VIRTIOLOGNAME ":_fini\n"));

    rc = mod_remove(&g_VirtioNetModLinkage);
    if (!rc)
    {
        mac_fini_ops(&g_VirtioNetDevOps);
        RTR0Term();
    }
    return rc;
}
Exemplo n.º 6
0
/*
 * DDI entry points
 */
int
_init(void)
{
	int	rc;

	if ((rc = ddi_soft_state_init(&pcn_ssp, sizeof (pcn_t), 1)) != 0)
		return (rc);

	mac_init_ops(&pcn_devops, "pcn");
	if ((rc = mod_install(&pcn_modlinkage)) != DDI_SUCCESS) {
		mac_fini_ops(&pcn_devops);
		ddi_soft_state_fini(&pcn_ssp);
	}
	return (rc);
}
Exemplo n.º 7
0
int
_fini()
{
	int ret;

	if ((ret = mod_remove(&eib_modlinkage)) != 0)
		return (ret);

	eib_debug_fini();

	mac_fini_ops(&eib_ops);
	ddi_soft_state_fini(&eib_state);

	return (ret);
}
Exemplo n.º 8
0
/*
 * Loadable module entry points.
 */
int
_init(void)
{
	int error;

	error = ddi_soft_state_init(&virtionet_statep,
	    sizeof (virtionet_state_t), 0);
	if (error != 0) {
		return (error);
	}

	mac_init_ops(&virtionet_devops, "virtionet");
	error = mod_install(&virtionet_modlinkage);
	if (error != 0) {
		mac_fini_ops(&virtionet_devops);
		ddi_soft_state_fini(&virtionet_statep);
	}
	return (error);
}
Exemplo n.º 9
0
int
_init()
{
	int ret;

	if (ddi_name_to_major(EIB_DRV_NAME) == (major_t)-1)
		return (ENODEV);

	if ((ret = ddi_soft_state_init(&eib_state, sizeof (eib_t), 0)) != 0)
		return (ret);

	mac_init_ops(&eib_ops, EIB_DRV_NAME);
	if ((ret = mod_install(&eib_modlinkage)) != 0) {
		mac_fini_ops(&eib_ops);
		ddi_soft_state_fini(&eib_state);
		return (ret);
	}

	eib_debug_init();

	return (ret);
}
Exemplo n.º 10
0
/**
 * Kernel entry points
 */
int _init(void)
{
    LogFlowFunc((VIRTIOLOGNAME ":_init\n"));

    /*
     * Prevent module autounloading.
     */
    modctl_t *pModCtl = mod_getctl(&g_VirtioNetModLinkage);
    if (pModCtl)
        pModCtl->mod_loadflags |= MOD_NOAUTOUNLOAD;
    else
        LogRel((VIRTIOLOGNAME ":failed to disable autounloading!\n"));

    /*
     * Initialize IPRT.
     */
    int rc = RTR0Init(0);
    if (RT_SUCCESS(rc))
    {
        /*
         * Initialize Solaris specific globals here.
         */
        mac_init_ops(&g_VirtioNetDevOps, DEVICE_NAME);
        rc = mod_install(&g_VirtioNetModLinkage);
        if (!rc)
            return rc;

        LogRel((VIRTIOLOGNAME ":mod_install failed. rc=%d\n", rc));
        mac_fini_ops(&g_VirtioNetDevOps);
        RTR0Term();
        return rc;
    }
    else
        LogRel((VIRTIOLOGNAME ":failed to initialize IPRT (rc=%d)\n", rc));

    return RTErrConvertToErrno(rc);
}