xref: /aosp_15_r20/external/ms-tpm-20-ref/Samples/Nucleo-TPM/VCOM/VCOM-TPM/stdafx.h (revision 5c591343844d1f9da7da26467c4bf7efc8a7a413)
1 // stdafx.h : include file for standard system include files,
2 // or project specific include files that are used frequently, but
3 // are changed infrequently
4 //
5 
6 #pragma once
7 
8 #include "targetver.h"
9 
10 #include <stdio.h>
11 #include <memory.h>
12 #include <tchar.h>
13 #include <Windows.h>
14 #include <vector>
15 #include <exception>
16 
17 // Nucleo-L476RC based TPM on USB-VCOM
18 #pragma pack(push, 1)
19 #define TPM_VCOM_PORT TEXT("COM6")
20 #define SIGNALMAGIC (0x326d7054)
21 #define MAX_TPM_COMMAND_SIZE (1024)
22 #define TPM_HEADER_SIZE (10)
23 #define CMD_RSP_BUFFER_SIZE (MAX_TPM_COMMAND_SIZE)
24 typedef enum
25 {
26     SignalNothing = 0,
27     SignalShutdown,
28     SignalReset,
29     SignalSetClock,
30     // IN {UINT32 time}
31     SignalCancelOn,
32     SignalCancelOff,
33     SignalCommand,
34     // IN {BYTE Locality, UINT32 InBufferSize, BYTE[InBufferSize] InBuffer}
35     // OUT {UINT32 OutBufferSize, BYTE[OutBufferSize] OutBuffer}
36     SignalResponse,
37     // OUT {UINT32 OutBufferSize, BYTE[OutBufferSize] OutBuffer}
38 } signalCode_t;
39 
40 typedef struct
41 {
42     unsigned int magic;
43     signalCode_t signal;
44     unsigned int dataSize;
45 } signalHdr_t;
46 
47 typedef union
48 {
49     struct
50     {
51         unsigned int time;
52     } SignalSetClockPayload;
53     struct
54     {
55         unsigned int locality;
56         unsigned int cmdSize;
57         unsigned char cmd[1];
58     } SignalCommandPayload;
59 } signalPayload_t, *pSignalPayload_t;
60 
61 typedef union
62 {
63     signalHdr_t s;
64     unsigned char b[sizeof(signalHdr_t)];
65 } signalWrapper_t, *pSignalWrapper_t;
66 #pragma pack(pop)
67