RF_CREATE_THREAD(recon_thr_handle, rf_ReconKernelThread, NULL);
RF_CREATE_THREAD(recon_thr_handle, rf_ReconKernelThread, NULL, "raid_recon");
rf_ConfigureReconstruction(listp)	RF_ShutdownList_t **listp;{	int     rc;	RF_FREELIST_CREATE(rf_recond_freelist, RF_MAX_FREE_RECOND,	    RF_RECOND_INC, sizeof(RF_RaidReconDesc_t));	if (rf_recond_freelist == NULL)		return (ENOMEM);	RF_FREELIST_CREATE(rf_rdp_freelist, RF_MAX_FREE_RDP,	    RF_RDP_INC, sizeof(RF_ReconDoneProc_t));	if (rf_rdp_freelist == NULL) {		RF_FREELIST_DESTROY(rf_recond_freelist, next, (RF_RaidReconDesc_t *));		return (ENOMEM);	}	rc = rf_ShutdownCreate(listp, rf_ShutdownReconstruction, NULL);	if (rc) {		RF_ERRORMSG3("Unable to add to shutdown list file %s line %d rc=%d\n",		    __FILE__, __LINE__, rc);		rf_ShutdownReconstruction(NULL);		return (rc);	}	if (!recon_thread_initialized) {		RF_CREATE_THREAD(recon_thr_handle, rf_ReconKernelThread, NULL);		recon_thread_initialized = 1;	}	return (0);}