OLD | NEW |
(Empty) | |
| 1 /* Copyright (c) 2010 The Chromium OS Authors. All rights reserved. |
| 2 * Use of this source code is governed by a BSD-style license that can be |
| 3 * found in the LICENSE file. |
| 4 */ |
| 5 |
| 6 #ifndef TPM_LITE_TLCL_INTERNAL_H_ |
| 7 #define TPM_LITE_TLCL_INTERNAL_H_ |
| 8 |
| 9 /* |
| 10 * These numbers derive from adding the sizes of command fields as shown in the |
| 11 * TPM commands manual. |
| 12 */ |
| 13 #define kTpmRequestHeaderLength 10 |
| 14 #define kTpmResponseHeaderLength 10 |
| 15 #define kTpmReadInfoLength 12 |
| 16 #define kEncAuthLength 20 |
| 17 #define kPcrDigestLength 20 |
| 18 |
| 19 |
| 20 /* |
| 21 * Conversion functions. ToTpmTYPE puts a value of type TYPE into a TPM |
| 22 * command buffer. FromTpmTYPE gets a value of type TYPE from a TPM command |
| 23 * buffer into a variable. |
| 24 */ |
| 25 POSSIBLY_UNUSED |
| 26 static INLINE void ToTpmUint32(uint8_t *buffer, uint32_t x) { |
| 27 buffer[0] = (uint8_t)(x >> 24); |
| 28 buffer[1] = (uint8_t)((x >> 16) & 0xff); |
| 29 buffer[2] = (uint8_t)((x >> 8) & 0xff); |
| 30 buffer[3] = (uint8_t)(x & 0xff); |
| 31 } |
| 32 |
| 33 /* |
| 34 * See comment for above function. |
| 35 */ |
| 36 POSSIBLY_UNUSED |
| 37 static INLINE void FromTpmUint32(const uint8_t *buffer, uint32_t *x) { |
| 38 *x = ((buffer[0] << 24) | |
| 39 (buffer[1] << 16) | |
| 40 (buffer[2] << 8) | |
| 41 buffer[3]); |
| 42 } |
| 43 |
| 44 /* |
| 45 * See comment for above function. |
| 46 */ |
| 47 POSSIBLY_UNUSED |
| 48 static INLINE void ToTpmUint16(uint8_t *buffer, uint16_t x) { |
| 49 buffer[0] = (uint8_t)(x >> 8); |
| 50 buffer[1] = (uint8_t)(x & 0xff); |
| 51 } |
| 52 |
| 53 /* |
| 54 * See comment for above function. |
| 55 */ |
| 56 POSSIBLY_UNUSED |
| 57 static INLINE void FromTpmUint16(const uint8_t *buffer, uint16_t *x) { |
| 58 *x = (buffer[0] << 8) | buffer[1]; |
| 59 } |
| 60 |
| 61 #endif /* TPM_LITE_TLCL_INTERNAL_H_ */ |
OLD | NEW |