From b72109e4b76b2c81d5fba3c9dc7698a60385c99e Mon Sep 17 00:00:00 2001
From: Biswapriyo Nath <nathbap...@gmail.com>
Date: Thu, 10 Oct 2024 06:22:56 +0000
Subject: [PATCH] headers: Add new symbols in tbs.h

Fixes https://github.com/mingw-w64/mingw-w64/issues/62

Signed-off-by: Biswapriyo Nath <nathbap...@gmail.com>
---
 mingw-w64-headers/include/tbs.h | 208 ++++++++++++++++++++++++++------
 1 file changed, 174 insertions(+), 34 deletions(-)

diff --git a/mingw-w64-headers/include/tbs.h b/mingw-w64-headers/include/tbs.h
index 8f885da..74e7161 100644
--- a/mingw-w64-headers/include/tbs.h
+++ b/mingw-w64-headers/include/tbs.h
@@ -4,49 +4,189 @@
  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  */
 
-#ifndef _INC_TBS
-#define _INC_TBS
+#ifndef _TBS_H_
+#define _TBS_H_
 
-#if (_WIN32_WINNT >= 0x0600)
+#include <winapifamily.h>
 
-#ifdef __cplusplus
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+
+#if defined(__cplusplus)
 extern "C" {
 #endif
 
-  typedef UINT32 TBS_RESULT;
-
-  typedef enum _TBS_COMMAND_LOCALITY {
-    TBS_COMMAND_LOCALITY_ZERO = 0,
-    TBS_COMMAND_LOCALITY_ONE,
-    TBS_COMMAND_LOCALITY_TWO,
-    TBS_COMMAND_LOCALITY_THREE,
-    TBS_COMMAND_LOCALITY_FOUR
-  } TBS_COMMAND_LOCALITY;
-
-  typedef enum _TBS_COMMAND_PRIORITY {
-    TBS_COMMAND_PRIORITY_LOW = 100,
-    TBS_COMMAND_PRIORITY_NORMAL = 200,
-    TBS_COMMAND_PRIORITY_HIGH = 300,
-    TBS_COMMAND_PRIORITY_SYSTEM = 400,
-    TBS_COMMAND_PRIORITY_MAX = 0x80000000
-  } TBS_COMMAND_PRIORITY;
-
-  typedef struct _TBS_CONTEXT_PARAMS {
+#if (NTDDI_VERSION >= NTDDI_VISTA)
+
+#ifndef WINAPI
+#define WINAPI __stdcall
+#endif
+
+#define CONST const
+
+typedef signed int INT32, *PINT32;
+typedef const INT32 *PCINT32;
+typedef unsigned int UINT32, *PUINT32;
+typedef const UINT32 *PCUINT32;
+
+#define VOID void
+typedef VOID *PVOID;
+typedef const VOID *PCVOID;
+
+typedef INT32 BOOL, *PBOOL;
+typedef const BOOL *PCBOOL;
+
+typedef UINT8 BYTE, *PBYTE;
+typedef const BYTE *PCBYTE;
+
+typedef BOOL TBS_BOOL;
+typedef UINT32 TBS_RESULT;
+typedef PVOID TBS_HCONTEXT, *PTBS_HCONTEXT;
+typedef UINT32 TBS_COMMAND_PRIORITY;
+typedef UINT32 TBS_COMMAND_LOCALITY;
+typedef UINT32 TBS_OWNERAUTH_TYPE;
+typedef UINT32 TBS_HANDLE;
+
+#define TBS_CONTEXT_VERSION_ONE 1
+
+#define TBS_COMMAND_PRIORITY_LOW 100
+#define TBS_COMMAND_PRIORITY_NORMAL 200
+#define TBS_COMMAND_PRIORITY_HIGH 300
+#define TBS_COMMAND_PRIORITY_SYSTEM 400
+#define TBS_COMMAND_PRIORITY_MAX 0x80000000
+
+#define TBS_COMMAND_LOCALITY_ZERO 0
+#define TBS_COMMAND_LOCALITY_ONE 1
+#define TBS_COMMAND_LOCALITY_TWO 2
+#define TBS_COMMAND_LOCALITY_THREE 3
+#define TBS_COMMAND_LOCALITY_FOUR 4
+
+#define TBS_SUCCESS 0
+
+#define TBS_IN_OUT_BUF_SIZE_MAX (256 * 1024)
+
+#define TBS_OWNERAUTH_TYPE_FULL 1
+#define TBS_OWNERAUTH_TYPE_ADMIN 2
+#define TBS_OWNERAUTH_TYPE_USER 3
+#define TBS_OWNERAUTH_TYPE_ENDORSEMENT 4
+
+#define TBS_OWNERAUTH_TYPE_ENDORSEMENT_20 12
+#define TBS_OWNERAUTH_TYPE_STORAGE_20 13
+
+typedef struct tdTBS_CONTEXT_PARAMS {
+    UINT32 version;
+} TBS_CONTEXT_PARAMS, *PTBS_CONTEXT_PARAMS;
+typedef const TBS_CONTEXT_PARAMS *PCTBS_CONTEXT_PARAMS;
+
+TBS_RESULT WINAPI Tbsi_Context_Create(PCTBS_CONTEXT_PARAMS pContextParams, 
PTBS_HCONTEXT phContext);
+TBS_RESULT WINAPI Tbsip_Context_Close(TBS_HCONTEXT hContext);
+TBS_RESULT WINAPI Tbsip_Submit_Command(TBS_HCONTEXT hContext, 
TBS_COMMAND_LOCALITY Locality, TBS_COMMAND_PRIORITY Priority, PCBYTE 
pabCommand, UINT32 cbCommand, PBYTE pabResult, PUINT32 pcbResult);
+TBS_RESULT WINAPI Tbsip_Cancel_Commands(TBS_HCONTEXT hContext);
+TBS_RESULT WINAPI Tbsi_Physical_Presence_Command(TBS_HCONTEXT hContext, PCBYTE 
pabInput, UINT32 cbInput, PBYTE pabOutput, PUINT32 pcbOutput);
+
+#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
+
+#if (NTDDI_VERSION >= NTDDI_VISTASP1)
+
+TBS_RESULT WINAPI Tbsi_Get_TCG_Log(TBS_HCONTEXT hContext, PBYTE pOutputBuf, 
PUINT32 pOutputBufLen);
+
+#endif /* _WIN32_WINNT_VISTASP1 */
+
+#if (NTDDI_VERSION >= NTDDI_WIN8)
+
+#define TBS_CONTEXT_VERSION_TWO 2
+
+typedef struct tdTBS_CONTEXT_PARAMS2 {
     UINT32 version;
-  } TBS_CONTEXT_PARAMS;
+    __C89_NAMELESS union {
+        __C89_NAMELESS struct {
+            UINT32 requestRaw : 1;
+            UINT32 includeTpm12 : 1;
+            UINT32 includeTpm20 : 1;
+        };
+        UINT32 asUINT32;
+    };
+} TBS_CONTEXT_PARAMS2, *PTBS_CONTEXT_PARAMS2;
+typedef const TBS_CONTEXT_PARAMS2 *PCTBS_CONTEXT_PARAMS2;
+
+typedef struct tdTPM_WNF_PROVISIONING {
+    UINT32 status;
+    BYTE message[28];
+} TPM_WNF_PROVISIONING;
+
+#define TPM_WNF_INFO_CLEAR_SUCCESSFUL 0x00000001
+#define TPM_WNF_INFO_OWNERSHIP_SUCCESSFUL 0x00000002
+
+#define TPM_WNF_INFO_NO_REBOOT_REQUIRED 1
+
+#ifndef TPM_VERSION_UNKNOWN
+
+#define TPM_VERSION_UNKNOWN 0
+#define TPM_VERSION_12 1
+#define TPM_VERSION_20 2
+
+#define TPM_IFTYPE_UNKNOWN 0
+#define TPM_IFTYPE_1 1
+#define TPM_IFTYPE_TRUSTZONE 2
+#define TPM_IFTYPE_HW 3
+#define TPM_IFTYPE_EMULATOR 4
+#define TPM_IFTYPE_SPB 5
+
+typedef struct _TPM_DEVICE_INFO {
+    UINT32 structVersion;
+    UINT32 tpmVersion;
+    UINT32 tpmInterfaceType;
+    UINT32 tpmImpRevision;
+} TPM_DEVICE_INFO, *PTPM_DEVICE_INFO;
+typedef const TPM_DEVICE_INFO *PCTPM_DEVICE_INFO;
+
+#endif /* TPM_VERSION_UNKNOWN */
+
+TBS_RESULT WINAPI Tbsi_GetDeviceInfo(UINT32 Size, PVOID Info);
+TBS_RESULT WINAPI Tbsi_Get_OwnerAuth(TBS_HCONTEXT hContext, TBS_OWNERAUTH_TYPE 
ownerauthType, PBYTE pOutputBuf, PUINT32 pOutputBufLen);
+TBS_RESULT WINAPI Tbsi_Revoke_Attestation(void);
+
+#endif /* (NTDDI_VERSION >= NTDDI_WIN8) */
+
+#if (NTDDI_VERSION >= NTDDI_WINBLUE)
+
+#ifndef _NTDDK_
 
-  typedef LPVOID TBS_HCONTEXT;
+HRESULT GetDeviceID(PBYTE pbWindowsAIK, UINT32 cbWindowsAIK, PUINT32 
pcbResult, BOOL *pfProtectedByTPM);
+HRESULT GetDeviceIDString(PWSTR pszWindowsAIK, UINT32 cchWindowsAIK, PUINT32 
pcchResult, BOOL *pfProtectedByTPM);
 
-  TBS_RESULT WINAPI Tbsi_Context_Create(const TBS_CONTEXT_PARAMS 
*pContextParams,TBS_HCONTEXT *phContext);
-  TBS_RESULT WINAPI Tbsi_Get_TCG_Log(TBS_HCONTEXT hContext,BYTE 
*pOutputBuf,UINT32 *pOutputBufLen);
-  TBS_RESULT WINAPI Tbsi_Physical_Presence_Command(TBS_HCONTEXT hContext,const 
BYTE *pInputBuf,UINT32 InputBufLen,BYTE *pOutputBuf,UINT32 *pOutputBufLen);
-  TBS_RESULT WINAPI Tbsip_Cancel_Commands(TBS_HCONTEXT hContext);
-  TBS_RESULT WINAPI Tbsip_Context_Close(TBS_HCONTEXT hContext);
-  TBS_RESULT WINAPI Tbsip_Submit_Command(TBS_HCONTEXT 
hContext,TBS_COMMAND_LOCALITY locality,TBS_COMMAND_PRIORITY priority,const BYTE 
*pCommandBuf,UINT32 commandBufLen,BYTE *pResultBuf,UINT32 *pResultBufLen);
+#endif /* ifndef _NTDDK_ */
 
-#ifdef __cplusplus
+#endif /* (NTDDI_VERSION >= NTDDI_WINBLUE) */
+
+#if (NTDDI_VERSION >= NTDDI_WINTHRESHOLD)
+
+TBS_RESULT WINAPI Tbsi_Create_Windows_Key(TBS_HANDLE keyHandle);
+
+#endif /* (NTDDI_VERSION >= NTDDI_WINTHRESHOLD) */
+
+#if (NTDDI_VERSION >= NTDDI_WIN10_RS4)
+
+#define TBS_TCGLOG_SRTM_CURRENT 0
+#define TBS_TCGLOG_DRTM_CURRENT 1
+#define TBS_TCGLOG_SRTM_BOOT 2
+#define TBS_TCGLOG_SRTM_RESUME 3
+#define TBS_TCGLOG_DRTM_BOOT 4
+#define TBS_TCGLOG_DRTM_RESUME 5
+
+TBS_RESULT WINAPI Tbsi_Get_TCG_Log_Ex(UINT32 logType, PBYTE pbOutput, PUINT32 
pcbOutput);
+
+#endif /* (NTDDI_VERSION >= NTDDI_WIN10_RS4) */
+
+#if (NTDDI_VERSION >= NTDDI_WIN10_NI)
+
+BOOL WINAPI Tbsi_Is_Tpm_Present(void);
+
+#endif /* (NTDDI_VERSION >= NTDDI_WIN10_NI) */
+
+#if defined(__cplusplus)
 }
 #endif
 
-#endif /*(_WIN32_WINNT >= 0x0600)*/
-#endif /*_INC_TBH*/
+#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
+
+#endif /* _TBS_H_ */
-- 
2.47.0

_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to