diff fuhtark_test/include/winapi/wsrm.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/wsrm.h	Wed Nov 26 21:36:48 2025 +0700
@@ -0,0 +1,92 @@
+/**
+ * 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 _WSRM_H_
+#define _WSRM_H_
+
+#define IPPROTO_RM 113
+#define MAX_MCAST_TTL 255
+
+#define RM_OPTIONSBASE 1000
+#define RM_RATE_WINDOW_SIZE (RM_OPTIONSBASE + 1)
+#define RM_SET_MESSAGE_BOUNDARY (RM_OPTIONSBASE + 2)
+#define RM_FLUSHCACHE (RM_OPTIONSBASE + 3)
+#define RM_SENDER_WINDOW_ADVANCE_METHOD (RM_OPTIONSBASE + 4)
+#define RM_SENDER_STATISTICS (RM_OPTIONSBASE + 5)
+#define RM_LATEJOIN (RM_OPTIONSBASE + 6)
+#define RM_SET_SEND_IF (RM_OPTIONSBASE + 7)
+#define RM_ADD_RECEIVE_IF (RM_OPTIONSBASE + 8)
+#define RM_DEL_RECEIVE_IF (RM_OPTIONSBASE + 9)
+#define RM_SEND_WINDOW_ADV_RATE (RM_OPTIONSBASE + 10)
+#define RM_USE_FEC (RM_OPTIONSBASE + 11)
+#define RM_SET_MCAST_TTL (RM_OPTIONSBASE + 12)
+#define RM_RECEIVER_STATISTICS (RM_OPTIONSBASE + 13)
+#define RM_HIGH_SPEED_INTRANET_OPT (RM_OPTIONSBASE + 14)
+
+#define SENDER_DEFAULT_RATE_KBITS_PER_SEC 56
+#define SENDER_DEFAULT_WINDOW_SIZE_BYTES 10 *1000*1000
+#define SENDER_DEFAULT_WINDOW_ADV_PERCENTAGE 15
+
+#define MAX_WINDOW_INCREMENT_PERCENTAGE 25
+#define SENDER_DEFAULT_LATE_JOINER_PERCENTAGE 0
+#define SENDER_MAX_LATE_JOINER_PERCENTAGE 75
+
+#define BITS_PER_BYTE 8
+#define LOG2_BITS_PER_BYTE 3
+
+enum eWINDOW_ADVANCE_METHOD {
+  E_WINDOW_ADVANCE_BY_TIME = 1,E_WINDOW_USE_AS_DATA_CACHE
+};
+
+typedef struct _RM_SEND_WINDOW {
+  ULONG RateKbitsPerSec;
+  ULONG WindowSizeInMSecs;
+  ULONG WindowSizeInBytes;
+} RM_SEND_WINDOW;
+
+typedef struct _RM_SENDER_STATS {
+  ULONGLONG DataBytesSent;
+  ULONGLONG TotalBytesSent;
+  ULONGLONG NaksReceived;
+  ULONGLONG NaksReceivedTooLate;
+  ULONGLONG NumOutstandingNaks;
+  ULONGLONG NumNaksAfterRData;
+  ULONGLONG RepairPacketsSent;
+  ULONGLONG BufferSpaceAvailable;
+  ULONGLONG TrailingEdgeSeqId;
+  ULONGLONG LeadingEdgeSeqId;
+  ULONGLONG RateKBitsPerSecOverall;
+  ULONGLONG RateKBitsPerSecLast;
+  ULONGLONG TotalODataPacketsSent;
+} RM_SENDER_STATS;
+
+typedef struct _RM_RECEIVER_STATS {
+  ULONGLONG NumODataPacketsReceived;
+  ULONGLONG NumRDataPacketsReceived;
+  ULONGLONG NumDuplicateDataPackets;
+  ULONGLONG DataBytesReceived;
+  ULONGLONG TotalBytesReceived;
+  ULONGLONG RateKBitsPerSecOverall;
+  ULONGLONG RateKBitsPerSecLast;
+  ULONGLONG TrailingEdgeSeqId;
+  ULONGLONG LeadingEdgeSeqId;
+  ULONGLONG AverageSequencesInWindow;
+  ULONGLONG MinSequencesInWindow;
+  ULONGLONG MaxSequencesInWindow;
+  ULONGLONG FirstNakSequenceNumber;
+  ULONGLONG NumPendingNaks;
+  ULONGLONG NumOutstandingNaks;
+  ULONGLONG NumDataPacketsBuffered;
+  ULONGLONG TotalSelectiveNaksSent;
+  ULONGLONG TotalParityNaksSent;
+} RM_RECEIVER_STATS;
+
+typedef struct _RM_FEC_INFO {
+  USHORT FECBlockSize;
+  USHORT FECProActivePackets;
+  UCHAR FECGroupSize;
+  BOOLEAN fFECOnDemandParityEnabled;
+} RM_FEC_INFO;
+#endif