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