Home | History | Annotate | Line # | Download | only in include
      1 
      2 /*
      3  * Licensed Materials - Property of IBM
      4  *
      5  * trousers - An open source TCG Software Stack
      6  *
      7  * (C) Copyright International Business Machines Corp. 2004-2007
      8  *
      9  */
     10 
     11 #ifndef _OBJ_HASH_H_
     12 #define _OBJ_HASH_H_
     13 
     14 #ifdef TSS_BUILD_HASH_LIST
     15 
     16 /* structures */
     17 struct tr_hash_obj {
     18 	UINT32 type;
     19 	BYTE *hashData;
     20 	UINT32 hashSize;
     21 	UINT32 hashUpdateSize;
     22 	BYTE *hashUpdateBuffer;
     23 };
     24 
     25 /* obj_hash.c */
     26 void       __tspi_hash_free(void *data);
     27 TSS_RESULT obj_hash_add(TSS_HCONTEXT, UINT32, TSS_HOBJECT *);
     28 TSS_BOOL   obj_is_hash(TSS_HOBJECT);
     29 TSS_RESULT obj_hash_remove(TSS_HOBJECT, TSS_HCONTEXT);
     30 TSS_RESULT obj_hash_get_tsp_context(TSS_HHASH, TSS_HCONTEXT *);
     31 TSS_RESULT obj_hash_set_value(TSS_HHASH, UINT32, BYTE *);
     32 TSS_RESULT obj_hash_get_value(TSS_HHASH, UINT32 *, BYTE **);
     33 TSS_RESULT obj_hash_update_value(TSS_HHASH, UINT32, BYTE *);
     34 
     35 #define HASH_LIST_DECLARE		struct obj_list hash_list
     36 #define HASH_LIST_DECLARE_EXTERN	extern struct obj_list hash_list
     37 #define HASH_LIST_INIT()		tspi_list_init(&hash_list)
     38 #define HASH_LIST_CONNECT(a,b)		obj_connectContext_list(&hash_list, a, b)
     39 #define HASH_LIST_CLOSE(a)		obj_list_close(&hash_list, &__tspi_hash_free, a)
     40 
     41 #else
     42 
     43 #define obj_is_hash(a)	FALSE
     44 
     45 #define HASH_LIST_DECLARE
     46 #define HASH_LIST_DECLARE_EXTERN
     47 #define HASH_LIST_INIT()
     48 #define HASH_LIST_CONNECT(a,b)
     49 #define HASH_LIST_CLOSE(a)
     50 
     51 #endif
     52 
     53 #endif
     54