diff fuhtark_test/include/winapi/madcapcl.h @ 1500:91c8c3b7cbf0

add: futhark tests for generating vulkan api
author sam <sam@basx.dev>
date Wed, 26 Nov 2025 21:36:48 +0700
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fuhtark_test/include/winapi/madcapcl.h	Wed Nov 26 21:36:48 2025 +0700
@@ -0,0 +1,80 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+#ifndef _MADCAPCL_H_
+#define _MADCAPCL_H_
+
+#include <winternl.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <time.h>
+
+#define MCAST_CLIENT_ID_LEN 17
+
+  enum {
+    MCAST_API_VERSION_0 = 0,MCAST_API_VERSION_1
+  };
+
+#define MCAST_API_CURRENT_VERSION MCAST_API_VERSION_1
+
+  typedef unsigned short IP_ADDR_FAMILY;
+
+  typedef union _IPNG_ADDRESS {
+    DWORD IpAddrV4;
+    BYTE IpAddrV6[16];
+  } IPNG_ADDRESS,*PIPNG_ADDRESS;
+
+  typedef struct _MCAST_CLIENT_UID {
+    LPBYTE ClientUID;
+    DWORD ClientUIDLength;
+  } MCAST_CLIENT_UID,*LPMCAST_CLIENT_UID;
+
+  typedef struct _MCAST_SCOPE_CTX {
+    IPNG_ADDRESS ScopeID;
+    IPNG_ADDRESS Interface;
+    IPNG_ADDRESS ServerID;
+  } MCAST_SCOPE_CTX,*PMCAST_SCOPE_CTX;
+
+  typedef struct _MCAST_SCOPE_ENTRY {
+    MCAST_SCOPE_CTX ScopeCtx;
+    IPNG_ADDRESS LastAddr;
+    DWORD TTL;
+    UNICODE_STRING ScopeDesc;
+  } MCAST_SCOPE_ENTRY,*PMCAST_SCOPE_ENTRY;
+
+  typedef struct _MCAST_LEASE_REQUEST {
+    LONG LeaseStartTime;
+    LONG MaxLeaseStartTime;
+    DWORD LeaseDuration;
+    DWORD MinLeaseDuration;
+    IPNG_ADDRESS ServerAddress;
+    WORD MinAddrCount;
+    WORD AddrCount;
+    PBYTE pAddrBuf;
+  } MCAST_LEASE_REQUEST,*PMCAST_LEASE_REQUEST;
+
+  typedef struct _MCAST_LEASE_RESPONSE {
+    LONG LeaseStartTime;
+    LONG LeaseEndTime;
+    IPNG_ADDRESS ServerAddress;
+    WORD AddrCount;
+    PBYTE pAddrBuf;
+  } MCAST_LEASE_RESPONSE,*PMCAST_LEASE_RESPONSE;
+
+  DWORD WINAPI McastApiStartup(PDWORD Version);
+  VOID WINAPI McastApiCleanup(VOID);
+  DWORD WINAPI McastGenUID(LPMCAST_CLIENT_UID pRequestID);
+  DWORD WINAPI McastEnumerateScopes(IP_ADDR_FAMILY AddrFamily,WINBOOL ReQuery,PMCAST_SCOPE_ENTRY pScopeList,PDWORD pScopeLen,PDWORD pScopeCount);
+  DWORD WINAPI McastRequestAddress(IP_ADDR_FAMILY AddrFamily,LPMCAST_CLIENT_UID pRequestID,PMCAST_SCOPE_CTX pScopeCtx,PMCAST_LEASE_REQUEST pAddrRequest,PMCAST_LEASE_RESPONSE pAddrResponse);
+  DWORD WINAPI McastRenewAddress(IP_ADDR_FAMILY AddrFamily,LPMCAST_CLIENT_UID pRequestID,PMCAST_LEASE_REQUEST pRenewRequest,PMCAST_LEASE_RESPONSE pRenewResponse);
+  DWORD WINAPI McastReleaseAddress(IP_ADDR_FAMILY AddrFamily,LPMCAST_CLIENT_UID pRequestID,PMCAST_LEASE_REQUEST pReleaseRequest);
+
+#ifdef __cplusplus
+}
+#endif
+#endif