当前位置: 首页>>代码示例>>C++>>正文


C++ ddi_soft_state_fini函数代码示例

本文整理汇总了C++中ddi_soft_state_fini函数的典型用法代码示例。如果您正苦于以下问题:C++ ddi_soft_state_fini函数的具体用法?C++ ddi_soft_state_fini怎么用?C++ ddi_soft_state_fini使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了ddi_soft_state_fini函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: _init

int
_init(void)
{
	int	ret;

	ret = ddi_soft_state_init(&emul64_state, sizeof (struct emul64),
	    EMUL64_INITIAL_SOFT_SPACE);
	if (ret != 0)
		return (ret);

	if ((ret = scsi_hba_init(&modlinkage)) != 0) {
		ddi_soft_state_fini(&emul64_state);
		return (ret);
	}

	/* Set the number of task threads to the number of CPUs */
	if (boot_max_ncpus == -1) {
		emul64_task_nthreads = max_ncpus;
	} else {
		emul64_task_nthreads = boot_max_ncpus;
	}

	emul64_bsd_init();

	ret = mod_install(&modlinkage);
	if (ret != 0) {
		emul64_bsd_fini();
		scsi_hba_fini(&modlinkage);
		ddi_soft_state_fini(&emul64_state);
	}

	return (ret);
}
开发者ID:apprisi,项目名称:illumos-gate,代码行数:33,代码来源:emul64.c

示例2: _init

/*
 *
 * --- DDI/DKI entry points
 *
 */
int
_init(void)
{
	int    error;

#ifndef NPROBE
	(void) tnf_mod_load();
#endif
	error = ddi_soft_state_init(&av1394_statep, sizeof (av1394_inst_t), 1);
	if (error != 0) {
#ifndef NPROBE
		(void) tnf_mod_unload(&av1394_modlinkage);
#endif
		return (error);
	}

	if ((error = mod_install(&av1394_modlinkage)) != 0) {
		ddi_soft_state_fini(&av1394_statep);
#ifndef NPROBE
		(void) tnf_mod_unload(&av1394_modlinkage);
#endif
	}

	return (error);
}
开发者ID:MatiasNAmendola,项目名称:AuroraUX-SunOS,代码行数:30,代码来源:av1394.c

示例3: _init

int
_init(void)
{
	int err;
	uint64_t majornum;
	uint64_t minornum;

	/*
	 * Check HV intr group api versioning.
	 * Note that cnex assumes interrupt cookies is
	 * in version 1.0 of the intr group api.
	 */
	if ((err = hsvc_version(HSVC_GROUP_INTR, &majornum, &minornum)) != 0) {
		cmn_err(CE_WARN, "cnex: failed to get intr api "
		    "group versioning errno=%d", err);
		return (err);
	} else if ((majornum != 1) && (majornum != 2)) {
		cmn_err(CE_WARN, "cnex: unsupported intr api group: "
		    "maj:0x%lx, min:0x%lx", majornum, minornum);
		return (ENOTSUP);
	}

	if ((err = ddi_soft_state_init(&cnex_state,
	    sizeof (cnex_soft_state_t), 0)) != 0) {
		return (err);
	}
	if ((err = mod_install(&modlinkage)) != 0) {
		ddi_soft_state_fini(&cnex_state);
		return (err);
	}
	return (0);
}
开发者ID:MatiasNAmendola,项目名称:AuroraUX-SunOS,代码行数:32,代码来源:cnex.c

示例4: _init

/**
 * Initializes a loadable module. It calls `mod_install' to install the
 * `modlinkage' and `modldrv' structures.
 */
int _init(void)
{
  int error;
  error = ddi_soft_state_init(&quantis_soft_state_p,
                              sizeof(quantis_soft_state_t),
                              0);
  if (error != 0)
  {
    QUANTIS_ERROR("Could not initialize the soft state tree.\n");
    return error;
  }

  error = mod_install(&modlinkage);
  if (error != 0)
  {
    QUANTIS_ERROR("Could not install the modlinkage structure.\n");
    ddi_soft_state_fini(&quantis_soft_state_p);
    return error;
  }

  mutex_init(&quantis_mutex, NULL, MUTEX_DRIVER, NULL);
  card_count = 0;

  LOG_DEBUG0("Initialized the quantis driver\n");

  return error;
}
开发者ID:leifj,项目名称:quantispci,代码行数:31,代码来源:quantis_pci_solaris.c

示例5: _init

/*************************************************************************
 * _init(9e), _info(9e), _fini(9e)
 * 
 * ローダブルカーネルモジュールのエントリーポイント
 *************************************************************************/
int
_init()
{
    int err;
    
    cmn_err(CE_CONT, "%s Filesystem Ver %s \n", PACKAGE_NAME, PACKAGE_VERSION);        

    /*
     * デバイス管理構造体の管理用の iumfscntl_soft_root を初期化
     * iumfscntl のデバイス管理構造体は iumfscntl_soft_t として定義されている。
     */
    if (ddi_soft_state_init(&iumfscntl_soft_root, sizeof (iumfscntl_soft_t), 1) != 0) {
        return (DDI_FAILURE);
    }

    err = mod_install(&modlinkage);
    if (err != 0) {
        ddi_soft_state_fini(&iumfscntl_soft_root);
        cmn_err(CE_CONT, "_init: mod_install returned with error %d", err);
    }

    /*
     * グローバルロックを初期化
     */
    mutex_init(&iumfs_global_lock, NULL, MUTEX_DEFAULT, NULL);
    
    return (err);
}
开发者ID:kaizawa,项目名称:iumfs,代码行数:33,代码来源:iumfs_vfsops.c

示例6: _init

int
_init(void)
{
	int    error;

	if ((error = ddi_soft_state_init(&sbbcp,
		sizeof (sbbc_softstate_t), 1)) != 0)
		return (error);

	if ((error = mod_install(&modlinkage)) != 0) {
		ddi_soft_state_fini(&sbbcp);
		return (error);
	}

	/*
	 * Initialise the global 'chosen' IOSRAM mutex
	 */
	mutex_init(&chosen_lock, NULL, MUTEX_DEFAULT, NULL);

	/*
	 * Initialise the iosram driver
	 */
	iosram_init();

	/*
	 * Initialize the mailbox
	 */
	sbbc_mbox_init();

	return (error);

}
开发者ID:andreiw,项目名称:polaris,代码行数:32,代码来源:sgsbbc.c

示例7: _init

/*
 * Module initialization routines.
 */
int
_init(void)
{
	int error;

	/* Initialize soft state pointer. */
	if ((error = ddi_soft_state_init(&acpinex_softstates,
	    sizeof (acpinex_softstate_t), 8)) != 0) {
		cmn_err(CE_WARN,
		    "acpinex: failed to initialize soft state structure.");
		return (error);
	}

	/* Initialize event subsystem. */
	acpinex_event_init();

	/* Install the module. */
	if ((error = mod_install(&modlinkage)) != 0) {
		cmn_err(CE_WARN, "acpinex: failed to install module.");
		ddi_soft_state_fini(&acpinex_softstates);
		return (error);
	}

	mutex_init(&acpinex_lock, NULL, MUTEX_DRIVER, NULL);

	return (0);
}
开发者ID:metricinc,项目名称:illumos-gate,代码行数:30,代码来源:acpinex_drv.c

示例8: _fini

/*
 * One-time module-wide cleanup, after last detach is done.
 */
int
_fini(void)
{
	int rval;

	/*
	 * Remove the module first as this operation is the only thing here
	 * which can fail.
	 */
	rval = mod_remove(&ml);
	if (rval != DDI_SUCCESS)
		return (rval);

	if (iospc_leaf_grps != NULL) {
		iospc_kstat_fini();
		mutex_enter(&iospc_mutex);
		iospc_kstat_inited = 0;
		(void) rfios_unbind_group();
		iospc_leaf_grps = NULL;
		mutex_exit(&iospc_mutex);
	}

	mutex_destroy(&iospc_mutex);

	/* Free px soft state */
	ddi_soft_state_fini(&iospc_state_p);

	return (DDI_SUCCESS);
}
开发者ID:apprisi,项目名称:illumos-gate,代码行数:32,代码来源:iospc.c

示例9: _fini

int _fini(void)
{
    LogFlow((DEVICE_NAME ":_fini flow\n"));
    cmn_err(CE_NOTE, DEVICE_NAME ":_fini\n");
    int rc = mod_remove(&g_VBoxVideoSolarisModLinkage);
    ddi_soft_state_fini(&g_pVBoxVideoSolarisState);
    return rc;
}
开发者ID:Rootkitsmm,项目名称:virtualbox-org-svn-vbox-trunk,代码行数:8,代码来源:vboxvideo_drm.c

示例10: _fini

int
_fini(void)
{
	int e;

	if ((e = mod_remove(&modlinkage)) == 0)
		ddi_soft_state_fini(&ppb_state);
	return (e);
}
开发者ID:apprisi,项目名称:illumos-gate,代码行数:9,代码来源:pci_pci.c

示例11: _init

int
_init(void)
{
	int e;
	if ((e = ddi_soft_state_init(&ppb_state, sizeof (ppb_devstate_t),
	    1)) == 0 && (e = mod_install(&modlinkage)) != 0)
		ddi_soft_state_fini(&ppb_state);
	return (e);
}
开发者ID:apprisi,项目名称:illumos-gate,代码行数:9,代码来源:pci_pci.c

示例12: _fini

int
_fini(void)
{
	int err;

	if ((err = mod_remove(&modlinkage)) != 0)
		return (err);
	ddi_soft_state_fini(&cnex_state);
	return (0);
}
开发者ID:MatiasNAmendola,项目名称:AuroraUX-SunOS,代码行数:10,代码来源:cnex.c

示例13: _fini

int
_fini(void)
{
	int	ret;

	if ((ret = mod_remove(&modlinkage)) == 0) {
		ddi_soft_state_fini(&agptarget_glob_soft_handle);
	}
	return (ret);
}
开发者ID:andreiw,项目名称:polaris,代码行数:10,代码来源:agptarget.c

示例14: _fini

int
_fini(void)
{
	int error;

	if ((error = mod_remove(&modlinkage)) == 0) {
		ddi_soft_state_fini(&sbusmem_state_head);
	}
	return (error);
}
开发者ID:MatiasNAmendola,项目名称:AuroraUX-SunOS,代码行数:10,代码来源:sbusmem.c

示例15: _init

/**
 * Kernel entry points
 */
int _init(void)
{
    int rc;

    LogFunc((DEVICE_NAME ":_init\n"));

    g_pDip = NULL;

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

    /*
     * Initialize IPRT R0 driver, which internally calls OS-specific r0 init.
     */
    rc = RTR0Init(0);
    if (RT_SUCCESS(rc))
    {
        /*
         * Initialize global mutex.
         */
        mutex_init(&g_VBoxUSBMonSolarisMtx, NULL, MUTEX_DRIVER, NULL);
        rc = VBoxUSBFilterInit();
        if (RT_SUCCESS(rc))
        {
            rc = ddi_soft_state_init(&g_pVBoxUSBMonSolarisState, sizeof(vboxusbmon_state_t), 1);
            if (!rc)
            {
                rc = mod_install(&g_VBoxUSBMonSolarisModLinkage);
                if (!rc)
                    return rc;

                LogRel((DEVICE_NAME ":mod_install failed! rc=%d\n", rc));
                ddi_soft_state_fini(&g_pVBoxUSBMonSolarisState);
            }
            else
                LogRel((DEVICE_NAME ":ddi_soft_state_init failed! rc=%d\n", rc));
        }
        else
            LogRel((DEVICE_NAME ":VBoxUSBFilterInit failed! rc=%d\n", rc));

        mutex_destroy(&g_VBoxUSBMonSolarisMtx);
        RTR0Term();
    }
    else
        LogRel((DEVICE_NAME ":RTR0Init failed! rc=%d\n", rc));

    return -1;
}
开发者ID:leopucci,项目名称:VirtualMonitor,代码行数:57,代码来源:VBoxUSBMon-solaris.c


注:本文中的ddi_soft_state_fini函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。