Home | History | Annotate | Download | only in include
      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 __attribute__((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 __attribute__((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 __attribute__((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 __attribute__((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_ */
     62