#ifndef _H_CSSMINT
#define _H_CSSMINT
#include <Security/cssm.h>
#include <Security/cssmspi.h>
#include <Security/utilities.h>
#include <Security/cssmalloc.h>
#include <Security/threading.h>
class CssmManager;
class Module;
class Attachment;
typedef CSSM_RETURN CSSMSPI
CSSM_SPI_ModuleLoadFunction (const CSSM_GUID *CssmGuid,
const CSSM_GUID *ModuleGuid,
CSSM_SPI_ModuleEventHandler CssmNotifyCallback,
void *CssmNotifyCallbackCtx);
typedef CSSM_RETURN CSSMSPI
CSSM_SPI_ModuleUnloadFunction (const CSSM_GUID *CssmGuid,
const CSSM_GUID *ModuleGuid,
CSSM_SPI_ModuleEventHandler CssmNotifyCallback,
void *CssmNotifyCallbackCtx);
typedef CSSM_RETURN CSSMSPI
CSSM_SPI_ModuleAttachFunction (const CSSM_GUID *ModuleGuid,
const CSSM_VERSION *Version,
uint32 SubserviceID,
CSSM_SERVICE_TYPE SubServiceType,
CSSM_ATTACH_FLAGS AttachFlags,
CSSM_MODULE_HANDLE ModuleHandle,
CSSM_KEY_HIERARCHY KeyHierarchy,
const CSSM_GUID *CssmGuid,
const CSSM_GUID *ModuleManagerGuid,
const CSSM_GUID *CallerGuid,
const CSSM_UPCALLS *Upcalls,
CSSM_MODULE_FUNCS_PTR *FuncTbl);
typedef CSSM_RETURN CSSMSPI
CSSM_SPI_ModuleDetachFunction (CSSM_MODULE_HANDLE ModuleHandle);
#endif //_H_CSSMINT