xref: /onnv-gate/usr/src/lib/pkcs11/pkcs11_kms/common/kmsSlot.h (revision 12720:3db6e0082404)
1 /*
2  * CDDL HEADER START
3  *
4  * The contents of this file are subject to the terms of the
5  * Common Development and Distribution License (the "License").
6  * You may not use this file except in compliance with the License.
7  *
8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9  * or http://www.opensolaris.org/os/licensing.
10  * See the License for the specific language governing permissions
11  * and limitations under the License.
12  *
13  * When distributing Covered Code, include this CDDL HEADER in each
14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15  * If applicable, add the following below this CDDL HEADER, with the
16  * fields enclosed by brackets "[]" replaced with your own identifying
17  * information: Portions Copyright [yyyy] [name of copyright owner]
18  *
19  * CDDL HEADER END
20  *
21  * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
22  */
23 
24 #ifndef	_KMS_SLOT_H
25 #define	_KMS_SLOT_H
26 
27 #ifdef	__cplusplus
28 extern "C" {
29 #endif
30 
31 #include "kmsSession.h"
32 
33 #define	CKU_PUBLIC	2	/* default session auth. state */
34 
35 typedef struct kms_slot {
36 	CK_SLOT_ID		sl_provider_id;	/* kernel provider ID */
37 	kms_session_t 		*sl_sess_list;	/* all open sessions */
38 	CK_USER_TYPE		sl_state;	/* session's auth. state */
39 	struct object 		*sl_tobj_list; 	/* token object list */
40 	pthread_mutex_t		sl_mutex;
41 
42 	/*
43 	 * The valid values are defined above.
44 	 */
45 	uint32_t		sl_flags;
46 	int			total_threshold_count;
47 } kms_slot_t;
48 
49 #define	KMS_TOKEN_SLOTID 1
50 #define	KMS_SLOTS	1
51 
52 /*
53  * Function Prototypes.
54  */
55 CK_RV kms_slottable_init();
56 void cleanup_slottable();
57 kms_slot_t *get_slotinfo();
58 
59 #ifdef __cplusplus
60 }
61 #endif
62 
63 #endif /* _KMS_SLOT_H */
64