/ OSX / libsecurity_cssm / lib / modload_static.cpp
modload_static.cpp
 1  /*
 2   * Copyright (c) 2000-2001,2003-2004,2011,2014 Apple Inc. All Rights Reserved.
 3   * 
 4   * @APPLE_LICENSE_HEADER_START@
 5   * 
 6   * This file contains Original Code and/or Modifications of Original Code
 7   * as defined in and that are subject to the Apple Public Source License
 8   * Version 2.0 (the 'License'). You may not use this file except in
 9   * compliance with the License. Please obtain a copy of the License at
10   * http://www.opensource.apple.com/apsl/ and read it before using this
11   * file.
12   * 
13   * The Original Code and all software distributed under the License are
14   * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15   * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16   * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17   * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18   * Please see the License for the specific language governing rights and
19   * limitations under the License.
20   * 
21   * @APPLE_LICENSE_HEADER_END@
22   */
23  
24  
25  //
26  // modload_static - pseudo-loading of statically linked plugins
27  //
28  #include "modload_static.h"
29  
30  
31  namespace Security {
32  
33  
34  //
35  // Pass module entry points to the statically linked functions
36  //
37  CSSM_RETURN StaticPlugin::load(const CSSM_GUID *CssmGuid,
38                               const CSSM_GUID *ModuleGuid,
39                               CSSM_SPI_ModuleEventHandler CssmNotifyCallback,
40                               void *CssmNotifyCallbackCtx)
41  {
42  	return entries.load(CssmGuid, ModuleGuid,
43  		CssmNotifyCallback, CssmNotifyCallbackCtx);
44  }
45  
46  CSSM_RETURN StaticPlugin::unload(const CSSM_GUID *CssmGuid,
47                               const CSSM_GUID *ModuleGuid,
48                               CSSM_SPI_ModuleEventHandler CssmNotifyCallback,
49                               void *CssmNotifyCallbackCtx)
50  {
51  	return entries.unload(CssmGuid, ModuleGuid,
52  		CssmNotifyCallback, CssmNotifyCallbackCtx);
53  }
54  
55  CSSM_RETURN StaticPlugin::attach(const CSSM_GUID *ModuleGuid,
56                                 const CSSM_VERSION *Version,
57                                 uint32 SubserviceID,
58                                 CSSM_SERVICE_TYPE SubServiceType,
59                                 CSSM_ATTACH_FLAGS AttachFlags,
60                                 CSSM_MODULE_HANDLE ModuleHandle,
61                                 CSSM_KEY_HIERARCHY KeyHierarchy,
62                                 const CSSM_GUID *CssmGuid,
63                                 const CSSM_GUID *ModuleManagerGuid,
64                                 const CSSM_GUID *CallerGuid,
65                                 const CSSM_UPCALLS *Upcalls,
66                                 CSSM_MODULE_FUNCS_PTR *FuncTbl)
67  {
68  	return entries.attach(ModuleGuid, Version, SubserviceID, SubServiceType,
69  		AttachFlags, ModuleHandle, KeyHierarchy, CssmGuid, ModuleManagerGuid,
70  		CallerGuid, Upcalls, FuncTbl);
71  }
72  
73  CSSM_RETURN StaticPlugin::detach(CSSM_MODULE_HANDLE ModuleHandle)
74  {
75  	return entries.detach(ModuleHandle);
76  }
77  
78  
79  }	// end namespace Security