Signed-off-by: Gijs Vermeulen gijsvrm@gmail.com ---
Superseeds 154617 v2: Add forgotten Makefile changes, sorry for the noise.
include/Makefile.in | 1 + include/qos2.h | 104 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 105 insertions(+) create mode 100644 include/qos2.h
diff --git a/include/Makefile.in b/include/Makefile.in index cc78b1c154..295374814f 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -527,6 +527,7 @@ SOURCES = \ pshpack8.h \ pstore.idl \ qedit.idl \ + qos2.h \ ras.h \ rasdlg.h \ raserror.h \ diff --git a/include/qos2.h b/include/qos2.h new file mode 100644 index 0000000000..2ae0f2f43d --- /dev/null +++ b/include/qos2.h @@ -0,0 +1,104 @@ +/* + * Copyright 2018 Gijs Vermeulen + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifndef __WINE_QOS2_H__ +#define __WINE_QOS2_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#define QOSSetTrafficType 0 +#define QOSSetOutgoingRate 1 +#define QOSSetOutgoingDSCPValue 2 + +typedef UINT32 QOS_FLOWID; + +typedef enum _QOS_SHAPING { + QOSShapeOnly = 0, + QOSShapeAndMark = 1, + QOSUseNonConformantMarkings = 2 +} QOS_SHAPING, *PQOS_SHAPING; + +typedef enum _QOS_FLOWRATE_REASON { + QOSFlowRateNotApplicable = 0, + QOSFlowRateContentChange = 1, + QOSFlowRateCongestion = 2, + QOSFlowRateHigherContentEncoding = 3, + QOSFlowRateUserCaused = 4 +} QOS_FLOWRATE_REASON, PQOS_FLOWRATE_REASON; + +typedef enum _QOS_NOTIFY_FLOW { + QOSNotifyCongested = 0, + QOSNotifyUncongested = 1, + QOSNotifyAvailable = 2 +} QOS_NOTIFY_FLOW, *PQOS_NOTIFY_FLOW; + +typedef enum _QOS_QUERY_FLOW { + QOSQueryFlowFundamentals = 0, + QOSQueryPacketPriority = 1, + QOSQueryOutgoingRate = 2 +} QOS_QUERY_FLOW; + +typedef enum _QOS_SET_FLOW { + QOSSetTrafficType = 0, + QOSSetOutgoingRate = 1, + QOSSetOutgoingDSCPValue = 2 +} QOS_SET_FLOW, *PQOS_SET_FLOW; + +typedef enum _QOS_TRAFFIC_TYPE { + QOSTrafficTypeBestEffort, + QOSTrafficTypeBackground, + QOSTrafficTypeExcellentEffort, + QOSTrafficTypeAudioVideo, + QOSTrafficTypeVoice, + QOSTrafficTypeControl +} QOS_TRAFFIC_TYPE, *PQOS_TRAFFIC_TYPE; + +typedef struct _QOS_FLOW_FUNDAMENTALS { + BOOL BottleneckBandwidthSet; + UINT64 BottleneckBandwidth; + BOOL AvailableBandwidthSet; + UINT64 AvailableBandwidth; + BOOL RTTSet; + UINT32 RTT; +} QOS_FLOW_FUNDAMENTALS, *PQOS_FLOW_FUNDAMENTALS; + +typedef struct _QOS_FLOWRATE_OUTGOING { + UINT64 Bandwidth; + QOS_SHAPING ShapingBehavior; + QOS_FLOWRATE_REASON Reason; +} QOS_FLOWRATE_OUTGOING, *PQOS_FLOWRATE_OUTGOING; + +typedef struct _QOS_PACKET_PRIORITY { + ULONG ConformantDSCPValue; + ULONG NonConformantDSCPValue; + ULONG ConformantL2Value; + ULONG NonConformantL2Value; +} QOS_PACKET_PRIORITY, *PQOS_PACKET_PRIORITY; + +typedef struct _QOS_VERSION { + USHORT MajorVersion; + USHORT MinorVersion; +} QOS_VERSION, *PQOS_VERSION; + +#ifdef __cplusplus +} +#endif + +#endif /* __WINE_QOS2_H__ */