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
12#include <stdlib.h>
13#include <stdio.h>
14#include <string.h>
15#include <unistd.h>
16#include <sys/types.h>
17#include <sys/stat.h>
18#include <sys/mman.h>
19#include <fcntl.h>
20#include <errno.h>
21
22#include "trousers/tss.h"
23#include "trousers_types.h"
24#include "trousers_types.h"
25#include "tcs_tsp.h"
26#include "tcs_utils.h"
27#include "tcs_int_literals.h"
28#include "capabilities.h"
29#include "tcsps.h"
30#include "tcslog.h"
31
32
33void
34UnloadBlob_COUNTER_VALUE(UINT64 *offset, BYTE *blob, TPM_COUNTER_VALUE *ctr)
35{
36	if (!ctr) {
37		UnloadBlob_UINT16(offset, NULL, blob);
38		UnloadBlob(offset, 4, blob, NULL);
39		UnloadBlob_UINT32(offset, NULL, blob);
40		return;
41	}
42
43	UnloadBlob_UINT16(offset, &ctr->tag, blob);
44	UnloadBlob(offset, 4, blob, (BYTE *)&ctr->label);
45	UnloadBlob_UINT32(offset, &ctr->counter, blob);
46}
47
48void
49LoadBlob_COUNTER_VALUE(UINT64 *offset, BYTE *blob, TPM_COUNTER_VALUE *ctr)
50{
51	LoadBlob_UINT16(offset, ctr->tag, blob);
52	LoadBlob(offset, 4, blob, (BYTE *)&ctr->label);
53	LoadBlob_UINT32(offset, ctr->counter, blob);
54}
55