📄 apictl.h
字号:
Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages. 5. NO WARRANTY EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. 6. DISCLAIMER OF LIABILITY EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 7. GENERAL If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. If Recipient institutes patent litigation against a Contributor with respect to a patent applicable to software (including a cross-claim or counterclaim in a lawsuit), then any patent licenses granted by that Contributor to such Recipient under this Agreement shall terminate as of the date such litigation is filed. In addition, If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed. All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive. Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. IBM is the initial Agreement Steward. IBM may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved. This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation. *//* (C) COPYRIGHT International Business Machines Corp. 2001 */#include <pkcs11types.h>#if defined(AIX)#include <sys/limits.h>#endif#if defined(LINUX)#include <linux/limits.h>#endif#include <local_types.h>#include <stdll.h>#include <slotmgr.h>#ifndef _APILOCAL_H#define _APILOCAL_Htypedef struct { void *Previous; void *Next; CK_SLOT_ID SltId; // Slot ID for indexing into the function list pointer CK_SESSION_HANDLE RealHandle; // Handle returned by the STDLL} Session_Struct_t;#ifdef PK64// 64Bit work... Need to have a pointer to session struct typedef Session_Struct_t * SessStructP ;#endif// SAB Add a linked list of STDLL's loaded to// only load and get list once, but let multiple slots us it.typedef struct{ CK_BOOL DLLoaded; // Flag to indicate if the STDDL has been loaded char *dll_name; // Malloced space to copy the name. void *dlop_p; int dll_load_count;// STDLL_FcnList_t *FcnList; // Function list pointer for the STDLL} DLL_Load_t;typedef struct { CK_BOOL DLLoaded; // Flag to indicate if the STDDL has been loaded void *dlop_p; // Pointer to the value returned from the DL open STDLL_FcnList_t *FcnList; // Function list pointer for the STDLL DLL_Load_t *dll_information; void (*pSTfini)(); // Addition of Final function. void (*pSTcloseall)(); // Addition of close all for leeds code#ifdef PK64 SessStructP Slot_Sess[65535]; // allocate sessions for 2**16 sessions#endif} API_Slot_t;// Per process API structure.// Allocate one per process on the C_Initialize. This will be// a global type for the API and will be used through out.//typedef struct { pid_t Pid; pthread_mutex_t ProcMutex; // Mutex for the process level should this be necessary key_t shm_tok; Session_Struct_t *SessListBeg; // Beginning of the session linked list for this process Session_Struct_t *SessListEnd; // pthread_mutex_t SessListMutex; void *SharedMemP; uint16 MgrProcIndex; // Index into shared memory for This process ctl block API_Slot_t SltList[NUMBER_SLOTS_MANAGED]; DLL_Load_t DLLs[NUMBER_SLOTS_MANAGED]; // worst case we have a separate DLL per slot} API_Proc_Struct_t;#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -