Mercurial > games > semicongine
comparison fuhtark_test/include/winapi/lpmapi.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 |
comparison
equal
deleted
inserted
replaced
| 1499:1f58458b7ef7 | 1500:91c8c3b7cbf0 |
|---|---|
| 1 /** | |
| 2 * This file has no copyright assigned and is placed in the Public Domain. | |
| 3 * This file is part of the w64 mingw-runtime package. | |
| 4 * No warranty is given; refer to the file DISCLAIMER within this package. | |
| 5 */ | |
| 6 #ifndef __LPMAPI_H_ | |
| 7 #define __LPMAPI_H_ | |
| 8 | |
| 9 #ifdef __cplusplus | |
| 10 extern "C" { | |
| 11 #endif | |
| 12 | |
| 13 #ifndef CALLBACK | |
| 14 #define CALLBACK __stdcall | |
| 15 #endif | |
| 16 | |
| 17 #ifndef WINAPI | |
| 18 #define WINAPI __stdcall | |
| 19 #endif | |
| 20 | |
| 21 #ifndef APIENTRY | |
| 22 #define APIENTRY WINAPI | |
| 23 #endif | |
| 24 | |
| 25 typedef struct { | |
| 26 USHORT obj_length; | |
| 27 UCHAR obj_class; | |
| 28 UCHAR obj_ctype; | |
| 29 } RsvpObjHdr; | |
| 30 | |
| 31 #define ObjLength(x) ((RsvpObjHdr *)x)->obj_length | |
| 32 #define ObjCType(x) ((RsvpObjHdr *)x)->obj_ctype | |
| 33 #define ObjClass(x) ((RsvpObjHdr *)x)->obj_class | |
| 34 #define ObjData(x) ((RsvpObjHdr *)(x)+1) | |
| 35 | |
| 36 #define class_NULL 0 | |
| 37 #define class_SESSION 1 | |
| 38 #define class_SESSION_GROUP 2 | |
| 39 #define class_RSVP_HOP 3 | |
| 40 #define class_INTEGRITY 4 | |
| 41 #define class_TIME_VALUES 5 | |
| 42 #define class_ERROR_SPEC 6 | |
| 43 #define class_SCOPE 7 | |
| 44 #define class_STYLE 8 | |
| 45 #define class_FLOWSPEC 9 | |
| 46 #define class_IS_FLOWSPEC 9 | |
| 47 #define class_FILTER_SPEC 10 | |
| 48 #define class_SENDER_TEMPLATE 11 | |
| 49 #define class_SENDER_TSPEC 12 | |
| 50 #define class_ADSPEC 13 | |
| 51 #define class_POLICY_DATA 14 | |
| 52 #define class_CONFIRM 15 | |
| 53 #define class_MAX 15 | |
| 54 | |
| 55 #define ctype_SESSION_ipv4 1 | |
| 56 #define ctype_SESSION_ipv4GPI 3 | |
| 57 | |
| 58 #define SESSFLG_E_Police 0x01 | |
| 59 | |
| 60 typedef struct { | |
| 61 IN_ADDR sess_destaddr; | |
| 62 UCHAR sess_protid; | |
| 63 UCHAR sess_flags; | |
| 64 USHORT sess_destport; | |
| 65 } Session_IPv4; | |
| 66 | |
| 67 typedef struct { | |
| 68 RsvpObjHdr sess_header; | |
| 69 union { | |
| 70 Session_IPv4 sess_ipv4; | |
| 71 } sess_u; | |
| 72 } RSVP_SESSION; | |
| 73 | |
| 74 #define Sess4Addr sess_u.sess_ipv4.sess_destaddr | |
| 75 #define Sess4Port sess_u.sess_ipv4.sess_destport | |
| 76 #define Sess4Protocol sess_u.sess_ipv4.sess_protid | |
| 77 #define Sess4Flags sess_u.sess_ipv4.sess_flags | |
| 78 | |
| 79 #define ctype_RSVP_HOP_ipv4 1 | |
| 80 | |
| 81 typedef struct { | |
| 82 IN_ADDR hop_ipaddr; | |
| 83 ULONG hop_LIH; | |
| 84 } Rsvp_Hop_IPv4; | |
| 85 | |
| 86 typedef struct { | |
| 87 RsvpObjHdr hop_header; | |
| 88 union { | |
| 89 Rsvp_Hop_IPv4 hop_ipv4; | |
| 90 } hop_u; | |
| 91 } RSVP_HOP; | |
| 92 | |
| 93 #define Hop4LIH hop_u.hop_ipv4.hop_LIH | |
| 94 #define Hop4Addr hop_u.hop_ipv4.hop_ipaddr | |
| 95 | |
| 96 #define Opt_Share_mask 0x00000018 | |
| 97 #define Opt_Distinct 0x00000008 | |
| 98 #define Opt_Shared 0x00000010 | |
| 99 | |
| 100 #define Opt_SndSel_mask 0x00000007 | |
| 101 #define Opt_Wildcard 0x00000001 | |
| 102 #define Opt_Explicit 0x00000002 | |
| 103 | |
| 104 #define Style_is_Wildcard(p) (((p)&Opt_SndSel_mask)==Opt_Wildcard) | |
| 105 #define Style_is_Shared(p) (((p)&Opt_Share_mask)==Opt_Shared) | |
| 106 | |
| 107 #define STYLE_WF Opt_Shared + Opt_Wildcard | |
| 108 #define STYLE_FF Opt_Distinct + Opt_Explicit | |
| 109 #define STYLE_SE Opt_Shared + Opt_Explicit | |
| 110 | |
| 111 #define ctype_STYLE 1 | |
| 112 | |
| 113 typedef struct { | |
| 114 RsvpObjHdr style_header; | |
| 115 ULONG style_word; | |
| 116 } RESV_STYLE; | |
| 117 | |
| 118 #define ctype_FILTER_SPEC_ipv4 1 | |
| 119 #define ctype_FILTER_SPEC_ipv4GPI 4 | |
| 120 | |
| 121 typedef struct { | |
| 122 IN_ADDR filt_ipaddr; | |
| 123 USHORT filt_unused; | |
| 124 USHORT filt_port; | |
| 125 } Filter_Spec_IPv4; | |
| 126 | |
| 127 typedef struct { | |
| 128 IN_ADDR filt_ipaddr; | |
| 129 ULONG filt_gpi; | |
| 130 } Filter_Spec_IPv4GPI; | |
| 131 | |
| 132 typedef struct { | |
| 133 RsvpObjHdr filt_header; | |
| 134 union { | |
| 135 Filter_Spec_IPv4 filt_ipv4; | |
| 136 Filter_Spec_IPv4GPI filt_ipv4gpi; | |
| 137 } filt_u; | |
| 138 } FILTER_SPEC; | |
| 139 | |
| 140 #define FilterSrcaddr filt_u.filt_ipv4.filt_ipaddr | |
| 141 #define FilterSrcport filt_u.filt_ipv4.filt_port | |
| 142 | |
| 143 #define ctype_SENDER_TEMPLATE_ipv4 1 | |
| 144 #define ctype_SENDER_TEMPLATE_ipv4GPI 4 | |
| 145 | |
| 146 typedef FILTER_SPEC SENDER_TEMPLATE; | |
| 147 | |
| 148 #define ctype_SCOPE_list_ipv4 1 | |
| 149 | |
| 150 typedef struct { | |
| 151 IN_ADDR scopl_ipaddr[1]; | |
| 152 } Scope_list_ipv4; | |
| 153 | |
| 154 typedef struct { | |
| 155 RsvpObjHdr scopl_header; | |
| 156 union { | |
| 157 Scope_list_ipv4 scopl_ipv4; | |
| 158 } scope_u; | |
| 159 } RSVP_SCOPE; | |
| 160 | |
| 161 #define Scope4Addr scope_u.scopl_ipv4.scopl_ipaddr | |
| 162 #define ScopeCnt(scp) ((ObjLength(scp)-sizeof(RsvpObjHdr))/sizeof(struct in_addr)) | |
| 163 #define ScopeLen(cnt) (cnt*sizeof(struct in_addr)+sizeof(RsvpObjHdr)) | |
| 164 | |
| 165 #define ctype_ERROR_SPEC_ipv4 1 | |
| 166 | |
| 167 #define ERROR_SPECF_InPlace 0x01 | |
| 168 #define ERROR_SPECF_NotGuilty 0x02 | |
| 169 | |
| 170 #define ERR_FORWARD_OK 0x8000 | |
| 171 #define Error_Usage(x) (((x)>>12)&3) | |
| 172 #define ERR_Usage_globl 0x00 | |
| 173 #define ERR_Usage_local 0x10 | |
| 174 #define ERR_Usage_serv 0x11 | |
| 175 #define ERR_global_mask 0x0fff | |
| 176 | |
| 177 typedef struct { | |
| 178 struct in_addr errs_errnode; | |
| 179 u_char errs_flags; | |
| 180 UCHAR errs_code; | |
| 181 USHORT errs_value; | |
| 182 } Error_Spec_IPv4; | |
| 183 | |
| 184 typedef struct { | |
| 185 RsvpObjHdr errs_header; | |
| 186 union { | |
| 187 Error_Spec_IPv4 errs_ipv4; | |
| 188 } errs_u; | |
| 189 } ERROR_SPEC; | |
| 190 | |
| 191 #define errspec4_enode errs_u.errs_ipv4.errs_errnode | |
| 192 #define errspec4_code errs_u.errs_ipv4.errs_code | |
| 193 #define errspec4_value errs_u.errs_ipv4.errs_value | |
| 194 #define errspec4_flags errs_u.errs_ipv4.errs_flags | |
| 195 | |
| 196 #define ctype_POLICY_DATA 1 | |
| 197 | |
| 198 typedef struct { | |
| 199 RsvpObjHdr PolicyObjHdr; | |
| 200 USHORT usPeOffset; | |
| 201 USHORT usReserved; | |
| 202 } POLICY_DATA; | |
| 203 | |
| 204 #define PD_HDR_LEN sizeof(POLICY_DATA) | |
| 205 | |
| 206 typedef struct { | |
| 207 USHORT usPeLength; | |
| 208 USHORT usPeType; | |
| 209 UCHAR ucPeData[4]; | |
| 210 } POLICY_ELEMENT; | |
| 211 | |
| 212 #define PE_HDR_LEN (2 *sizeof(USHORT)) | |
| 213 | |
| 214 #define GENERAL_INFO 1 | |
| 215 #define GUARANTEED_SERV 2 | |
| 216 #define PREDICTIVE_SERV 3 | |
| 217 #define CONTROLLED_DELAY_SERV 4 | |
| 218 #define CONTROLLED_LOAD_SERV 5 | |
| 219 #define QUALITATIVE_SERV 6 | |
| 220 | |
| 221 enum int_serv_wkp { | |
| 222 IS_WKP_HOP_CNT = 4,IS_WKP_PATH_BW = 6,IS_WKP_MIN_LATENCY = 8,IS_WKP_COMPOSED_MTU = 10,IS_WKP_TB_TSPEC = 127,IS_WKP_Q_TSPEC = 128 | |
| 223 }; | |
| 224 | |
| 225 typedef struct { | |
| 226 UCHAR ismh_version; | |
| 227 UCHAR ismh_unused; | |
| 228 USHORT ismh_len32b; | |
| 229 } IntServMainHdr; | |
| 230 | |
| 231 #define INTSERV_VERS_MASK 0xf0 | |
| 232 #define INTSERV_VERSION0 0 | |
| 233 #define Intserv_Version(x) (((x)&INTSERV_VERS_MASK)>>4) | |
| 234 #define Intserv_Version_OK(x) (((x)->ismh_version&INTSERV_VERS_MASK)== INTSERV_VERSION0) | |
| 235 #define Intserv_Obj_size(x) (((IntServMainHdr *)(x))->ismh_len32b *4 + sizeof(IntServMainHdr) + sizeof(RsvpObjHdr)) | |
| 236 | |
| 237 #define ISSH_BREAK_BIT 0x80 | |
| 238 | |
| 239 typedef struct { | |
| 240 UCHAR issh_service; | |
| 241 UCHAR issh_flags; | |
| 242 USHORT issh_len32b; | |
| 243 } IntServServiceHdr; | |
| 244 | |
| 245 #define Issh_len32b(p) ((p)->issh_len32b) | |
| 246 | |
| 247 #define ISPH_FLG_INV 0x80 | |
| 248 | |
| 249 typedef struct { | |
| 250 UCHAR isph_parm_num; | |
| 251 UCHAR isph_flags; | |
| 252 USHORT isph_len32b; | |
| 253 } IntServParmHdr; | |
| 254 | |
| 255 #define Next_Main_Hdr(p) (IntServMainHdr *)((ULONG *)(p)+1+(p)->ismh_len32b) | |
| 256 #define Next_Serv_Hdr(p) (IntServServiceHdr *)((ULONG *)(p)+1+(p)->issh_len32b) | |
| 257 #define Next_Parm_Hdr(p) (IntServParmHdr *)((ULONG *)(p)+1+(p)->isph_len32b) | |
| 258 | |
| 259 typedef struct { | |
| 260 FLOAT TB_Tspec_r; | |
| 261 FLOAT TB_Tspec_b; | |
| 262 FLOAT TB_Tspec_p; | |
| 263 ULONG TB_Tspec_m; | |
| 264 ULONG TB_Tspec_M; | |
| 265 } GenTspecParms; | |
| 266 | |
| 267 typedef struct { | |
| 268 IntServServiceHdr gen_Tspec_serv_hdr; | |
| 269 IntServParmHdr gen_Tspec_parm_hdr; | |
| 270 GenTspecParms gen_Tspec_parms; | |
| 271 } GenTspec; | |
| 272 | |
| 273 #define gtspec_r gen_Tspec_parms.TB_Tspec_r | |
| 274 #define gtspec_b gen_Tspec_parms.TB_Tspec_b | |
| 275 #define gtspec_m gen_Tspec_parms.TB_Tspec_m | |
| 276 #define gtspec_M gen_Tspec_parms.TB_Tspec_M | |
| 277 #define gtspec_p gen_Tspec_parms.TB_Tspec_p | |
| 278 #define gtspec_parmno gen_Tspec_parm_hdr.isph_parm_num | |
| 279 #define gtspec_flags gen_Tspec_parm_hdr.isph_flags | |
| 280 #define gtspec_len (sizeof(GenTspec) - sizeof(IntServServiceHdr)) | |
| 281 | |
| 282 typedef struct { | |
| 283 ULONG TB_Tspec_M; | |
| 284 } QualTspecParms; | |
| 285 | |
| 286 typedef struct { | |
| 287 IntServServiceHdr qual_Tspec_serv_hdr; | |
| 288 IntServParmHdr qual_Tspec_parm_hdr; | |
| 289 QualTspecParms qual_Tspec_parms; | |
| 290 } QualTspec; | |
| 291 | |
| 292 typedef struct { | |
| 293 IntServServiceHdr Q_spec_serv_hdr; | |
| 294 IntServParmHdr Q_spec_parm_hdr; | |
| 295 QualTspecParms Q_spec_parms; | |
| 296 } QualAppFlowSpec; | |
| 297 | |
| 298 #define QAspec_M Q_spec_parms.TB_Tspec_M | |
| 299 | |
| 300 typedef struct { | |
| 301 IntServMainHdr st_mh; | |
| 302 union { | |
| 303 GenTspec gen_stspec; | |
| 304 QualTspec qual_stspec; | |
| 305 } tspec_u; | |
| 306 } IntServTspecBody; | |
| 307 | |
| 308 #define ctype_SENDER_TSPEC 2 | |
| 309 | |
| 310 typedef struct { | |
| 311 RsvpObjHdr stspec_header; | |
| 312 IntServTspecBody stspec_body; | |
| 313 } SENDER_TSPEC; | |
| 314 | |
| 315 typedef struct { | |
| 316 IntServServiceHdr CL_spec_serv_hdr; | |
| 317 IntServParmHdr CL_spec_parm_hdr; | |
| 318 GenTspecParms CL_spec_parms; | |
| 319 } CtrlLoadFlowspec; | |
| 320 | |
| 321 #define CLspec_r CL_spec_parms.TB_Tspec_r | |
| 322 #define CLspec_b CL_spec_parms.TB_Tspec_b | |
| 323 #define CLspec_p CL_spec_parms.TB_Tspec_p | |
| 324 #define CLspec_m CL_spec_parms.TB_Tspec_m | |
| 325 #define CLspec_M CL_spec_parms.TB_Tspec_M | |
| 326 #define CLspec_parmno CL_spec_parm_hdr.isph_parm_num | |
| 327 #define CLspec_flags CL_spec_parm_hdr.isph_flags | |
| 328 #define CLspec_len32b CL_spec_parm_hdr.isph_len32b | |
| 329 #define CLspec_len (sizeof(CtrlLoadFlowspec) - sizeof(IntServServiceHdr)) | |
| 330 | |
| 331 enum { | |
| 332 IS_GUAR_RSPEC = 130,GUAR_ADSPARM_C = 131,GUAR_ADSPARM_D = 132,GUAR_ADSPARM_Ctot = 133,GUAR_ADSPARM_Dtot = 134,GUAR_ADSPARM_Csum = 135, | |
| 333 GUAR_ADSPARM_Dsum = 136 | |
| 334 }; | |
| 335 | |
| 336 typedef struct { | |
| 337 FLOAT Guar_R; | |
| 338 ULONG Guar_S; | |
| 339 } GuarRspec; | |
| 340 | |
| 341 typedef struct { | |
| 342 IntServServiceHdr Guar_serv_hdr; | |
| 343 IntServParmHdr Guar_Tspec_hdr; | |
| 344 GenTspecParms Guar_Tspec_parms; | |
| 345 IntServParmHdr Guar_Rspec_hdr; | |
| 346 GuarRspec Guar_Rspec; | |
| 347 } GuarFlowSpec; | |
| 348 | |
| 349 #define Gspec_r Guar_Tspec_parms.TB_Tspec_r | |
| 350 #define Gspec_b Guar_Tspec_parms.TB_Tspec_b | |
| 351 #define Gspec_p Guar_Tspec_parms.TB_Tspec_p | |
| 352 #define Gspec_m Guar_Tspec_parms.TB_Tspec_m | |
| 353 #define Gspec_M Guar_Tspec_parms.TB_Tspec_M | |
| 354 #define Gspec_R Guar_Rspec.Guar_R | |
| 355 #define Gspec_S Guar_Rspec.Guar_S | |
| 356 #define Gspec_T_parmno Guar_Tspec_hdr.isph_parm_num | |
| 357 #define Gspec_T_flags Guar_Tspec_hdr.isph_flags | |
| 358 #define Gspec_R_parmno Guar_Rspec_hdr.isph_parm_num | |
| 359 #define Gspec_R_flags Guar_Rspec_hdr.isph_flags | |
| 360 #define Gspec_len (sizeof(GuarFlowSpec) - sizeof(IntServServiceHdr)) | |
| 361 | |
| 362 typedef struct { | |
| 363 IntServMainHdr spec_mh; | |
| 364 union { | |
| 365 CtrlLoadFlowspec CL_spec; | |
| 366 GuarFlowSpec G_spec; | |
| 367 QualAppFlowSpec Q_spec; | |
| 368 } spec_u; | |
| 369 } IntServFlowSpec; | |
| 370 | |
| 371 #define ISmh_len32b spec_mh.ismh_len32b | |
| 372 #define ISmh_version spec_mh.ismh_version | |
| 373 #define ISmh_unused spec_mh.ismh_unused | |
| 374 | |
| 375 #define ctype_FLOWSPEC_Intserv0 2 | |
| 376 | |
| 377 typedef struct { | |
| 378 RsvpObjHdr flow_header; | |
| 379 IntServFlowSpec flow_body; | |
| 380 } IS_FLOWSPEC; | |
| 381 | |
| 382 typedef struct flow_desc { | |
| 383 union { | |
| 384 SENDER_TSPEC *stspec; | |
| 385 IS_FLOWSPEC *isflow; | |
| 386 } u1; | |
| 387 union { | |
| 388 SENDER_TEMPLATE *stemp; | |
| 389 FILTER_SPEC *fspec; | |
| 390 } u2; | |
| 391 } FLOW_DESC; | |
| 392 | |
| 393 #define FdSenderTspec u1.stspec | |
| 394 #define FdIsFlowSpec u1.isflow | |
| 395 | |
| 396 #define FdSenderTemplate u2.stemp | |
| 397 #define FdFilterSpec u2.fspec | |
| 398 | |
| 399 #define ctype_ADSPEC_INTSERV 2 | |
| 400 | |
| 401 typedef struct { | |
| 402 IntServServiceHdr Gads_serv_hdr; | |
| 403 IntServParmHdr Gads_Ctot_hdr; | |
| 404 ULONG Gads_Ctot; | |
| 405 IntServParmHdr Gads_Dtot_hdr; | |
| 406 ULONG Gads_Dtot; | |
| 407 IntServParmHdr Gads_Csum_hdr; | |
| 408 ULONG Gads_Csum; | |
| 409 IntServParmHdr Gads_Dsum_hdr; | |
| 410 ULONG Gads_Dsum; | |
| 411 } Gads_parms_t; | |
| 412 | |
| 413 typedef struct { | |
| 414 IntServServiceHdr gen_parm_hdr; | |
| 415 IntServParmHdr gen_parm_hopcnt_hdr; | |
| 416 ULONG gen_parm_hopcnt; | |
| 417 IntServParmHdr gen_parm_pathbw_hdr; | |
| 418 FLOAT gen_parm_path_bw; | |
| 419 IntServParmHdr gen_parm_minlat_hdr; | |
| 420 ULONG gen_parm_min_latency; | |
| 421 IntServParmHdr gen_parm_compmtu_hdr; | |
| 422 ULONG gen_parm_composed_MTU; | |
| 423 } GenAdspecParams; | |
| 424 | |
| 425 typedef struct { | |
| 426 IntServMainHdr adspec_mh; | |
| 427 GenAdspecParams adspec_genparms; | |
| 428 } IS_ADSPEC_BODY; | |
| 429 | |
| 430 #define GEN_ADSPEC_LEN (sizeof(Object_header) + sizeof(IS_adsbody_t)) | |
| 431 | |
| 432 typedef struct { | |
| 433 RsvpObjHdr adspec_header; | |
| 434 IS_ADSPEC_BODY adspec_body; | |
| 435 } ADSPEC; | |
| 436 | |
| 437 #define RSVP_PATH 1 | |
| 438 #define RSVP_RESV 2 | |
| 439 #define RSVP_PATH_ERR 3 | |
| 440 #define RSVP_RESV_ERR 4 | |
| 441 #define RSVP_PATH_TEAR 5 | |
| 442 #define RSVP_RESV_TEAR 6 | |
| 443 | |
| 444 #define RSVP_Err_NONE 0 | |
| 445 #define RSVP_Erv_Nonev 0 | |
| 446 | |
| 447 #define RSVP_Err_ADMISSION 1 | |
| 448 | |
| 449 #define RSVP_Erv_Other 0 | |
| 450 #define RSVP_Erv_DelayBnd 1 | |
| 451 #define RSVP_Erv_Bandwidth 2 | |
| 452 #define RSVP_Erv_MTU 3 | |
| 453 | |
| 454 #define RSVP_Erv_Flow_Rate 0x8001 | |
| 455 #define RSVP_Erv_Bucket_szie 0x8002 | |
| 456 #define RSVP_Erv_Peak_Rate 0x8003 | |
| 457 #define RSVP_Erv_Min_Policied_size 0x8004 | |
| 458 | |
| 459 #define RSVP_Err_POLICY 2 | |
| 460 | |
| 461 #define POLICY_ERRV_NO_MORE_INFO 1 | |
| 462 #define POLICY_ERRV_UNSUPPORTED_CREDENTIAL_TYPE 2 | |
| 463 #define POLICY_ERRV_INSUFFICIENT_PRIVILEGES 3 | |
| 464 #define POLICY_ERRV_EXPIRED_CREDENTIALS 4 | |
| 465 #define POLICY_ERRV_IDENTITY_CHANGED 5 | |
| 466 | |
| 467 #define POLICY_ERRV_UNKNOWN 0 | |
| 468 | |
| 469 #define POLICY_ERRV_GLOBAL_DEF_FLOW_COUNT 1 | |
| 470 #define POLICY_ERRV_GLOBAL_GRP_FLOW_COUNT 2 | |
| 471 #define POLICY_ERRV_GLOBAL_USER_FLOW_COUNT 3 | |
| 472 #define POLICY_ERRV_GLOBAL_UNAUTH_USER_FLOW_COUNT 4 | |
| 473 #define POLICY_ERRV_SUBNET_DEF_FLOW_COUNT 5 | |
| 474 #define POLICY_ERRV_SUBNET_GRP_FLOW_COUNT 6 | |
| 475 #define POLICY_ERRV_SUBNET_USER_FLOW_COUNT 7 | |
| 476 #define POLICY_ERRV_SUBNET_UNAUTH_USER_FLOW_COUNT 8 | |
| 477 | |
| 478 #define POLICY_ERRV_GLOBAL_DEF_FLOW_DURATION 9 | |
| 479 #define POLICY_ERRV_GLOBAL_GRP_FLOW_DURATION 10 | |
| 480 #define POLICY_ERRV_GLOBAL_USER_FLOW_DURATION 11 | |
| 481 #define POLICY_ERRV_GLOBAL_UNAUTH_USER_FLOW_DURATION 12 | |
| 482 #define POLICY_ERRV_SUBNET_DEF_FLOW_DURATION 13 | |
| 483 #define POLICY_ERRV_SUBNET_GRP_FLOW_DURATION 14 | |
| 484 #define POLICY_ERRV_SUBNET_USER_FLOW_DURATION 15 | |
| 485 #define POLICY_ERRV_SUBNET_UNAUTH_USER_FLOW_DURATION 16 | |
| 486 | |
| 487 #define POLICY_ERRV_GLOBAL_DEF_FLOW_RATE 17 | |
| 488 #define POLICY_ERRV_GLOBAL_GRP_FLOW_RATE 18 | |
| 489 #define POLICY_ERRV_GLOBAL_USER_FLOW_RATE 19 | |
| 490 #define POLICY_ERRV_GLOBAL_UNAUTH_USER_FLOW_RATE 20 | |
| 491 #define POLICY_ERRV_SUBNET_DEF_FLOW_RATE 21 | |
| 492 #define POLICY_ERRV_SUBNET_GRP_FLOW_RATE 22 | |
| 493 #define POLICY_ERRV_SUBNET_USER_FLOW_RATE 23 | |
| 494 #define POLICY_ERRV_SUBNET_UNAUTH_USER_FLOW_RATE 24 | |
| 495 | |
| 496 #define POLICY_ERRV_GLOBAL_DEF_PEAK_RATE 25 | |
| 497 #define POLICY_ERRV_GLOBAL_GRP_PEAK_RATE 26 | |
| 498 #define POLICY_ERRV_GLOBAL_USER_PEAK_RATE 27 | |
| 499 #define POLICY_ERRV_GLOBAL_UNAUTH_USER_PEAK_RATE 28 | |
| 500 #define POLICY_ERRV_SUBNET_DEF_PEAK_RATE 29 | |
| 501 #define POLICY_ERRV_SUBNET_GRP_PEAK_RATE 30 | |
| 502 #define POLICY_ERRV_SUBNET_USER_PEAK_RATE 31 | |
| 503 #define POLICY_ERRV_SUBNET_UNAUTH_USER_PEAK_RATE 32 | |
| 504 | |
| 505 #define POLICY_ERRV_GLOBAL_DEF_SUM_FLOW_RATE 33 | |
| 506 #define POLICY_ERRV_GLOBAL_GRP_SUM_FLOW_RATE 34 | |
| 507 #define POLICY_ERRV_GLOBAL_USER_SUM_FLOW_RATE 35 | |
| 508 #define POLICY_ERRV_GLOBAL_UNAUTH_USER_SUM_FLOW_RATE 36 | |
| 509 #define POLICY_ERRV_SUBNET_DEF_SUM_FLOW_RATE 37 | |
| 510 #define POLICY_ERRV_SUBNET_GRP_SUM_FLOW_RATE 38 | |
| 511 #define POLICY_ERRV_SUBNET_USER_SUM_FLOW_RATE 39 | |
| 512 #define POLICY_ERRV_SUBNET_UNAUTH_USER_SUM_FLOW_RATE 40 | |
| 513 | |
| 514 #define POLICY_ERRV_GLOBAL_DEF_SUM_PEAK_RATE 41 | |
| 515 #define POLICY_ERRV_GLOBAL_GRP_SUM_PEAK_RATE 42 | |
| 516 #define POLICY_ERRV_GLOBAL_USER_SUM_PEAK_RATE 43 | |
| 517 #define POLICY_ERRV_GLOBAL_UNAUTH_USER_SUM_PEAK_RATE 44 | |
| 518 #define POLICY_ERRV_SUBNET_DEF_SUM_PEAK_RATE 45 | |
| 519 #define POLICY_ERRV_SUBNET_GRP_SUM_PEAK_RATE 46 | |
| 520 #define POLICY_ERRV_SUBNET_USER_SUM_PEAK_RATE 47 | |
| 521 #define POLICY_ERRV_SUBNET_UNAUTH_USER_SUM_PEAK_RATE 48 | |
| 522 | |
| 523 #define POLICY_ERRV_UNKNOWN_USER 49 | |
| 524 #define POLICY_ERRV_NO_PRIVILEGES 50 | |
| 525 #define POLICY_ERRV_EXPIRED_USER_TOKEN 51 | |
| 526 #define POLICY_ERRV_NO_RESOURCES 52 | |
| 527 #define POLICY_ERRV_PRE_EMPTED 53 | |
| 528 #define POLICY_ERRV_USER_CHANGED 54 | |
| 529 #define POLICY_ERRV_NO_ACCEPTS 55 | |
| 530 #define POLICY_ERRV_NO_MEMORY 56 | |
| 531 #define POLICY_ERRV_CRAZY_FLOWSPEC 57 | |
| 532 | |
| 533 #define RSVP_Err_NO_PATH 3 | |
| 534 #define RSVP_Err_NO_SENDER 4 | |
| 535 #define RSVP_Err_BAD_STYLE 5 | |
| 536 #define RSVP_Err_UNKNOWN_STYLE 6 | |
| 537 #define RSVP_Err_BAD_DSTPORT 7 | |
| 538 #define RSVP_Err_BAD_SNDPORT 8 | |
| 539 #define RSVP_Err_AMBIG_FILTER 9 | |
| 540 #define RSVP_Err_PREEMPTED 12 | |
| 541 #define RSVP_Err_UNKN_OBJ_CLASS 13 | |
| 542 #define RSVP_Err_UNKNOWN_CTYPE 14 | |
| 543 #define RSVP_Err_API_ERROR 20 | |
| 544 #define RSVP_Err_TC_ERROR 21 | |
| 545 | |
| 546 #define RSVP_Erv_Conflict_Serv 01 | |
| 547 #define RSVP_Erv_No_Serv 02 | |
| 548 #define RSVP_Erv_Crazy_Flowspec 03 | |
| 549 #define RSVP_Erv_Crazy_Tspec 04 | |
| 550 | |
| 551 #define RSVP_Err_TC_SYS_ERROR 22 | |
| 552 | |
| 553 #define RSVP_Err_RSVP_SYS_ERROR 23 | |
| 554 | |
| 555 #define RSVP_Erv_MEMORY 1 | |
| 556 #define RSVP_Erv_API 2 | |
| 557 | |
| 558 #define LPM_PE_USER_IDENTITY 2 | |
| 559 #define LPM_PE_APP_IDENTITY 3 | |
| 560 | |
| 561 #define ERROR_NO_MORE_INFO 1 | |
| 562 #define UNSUPPORTED_CREDENTIAL_TYPE 2 | |
| 563 #define INSUFFICIENT_PRIVILEGES 3 | |
| 564 #define EXPIRED_CREDENTIAL 4 | |
| 565 #define IDENTITY_CHANGED 5 | |
| 566 | |
| 567 typedef struct { | |
| 568 USHORT usIdErrLength; | |
| 569 UCHAR ucAType; | |
| 570 UCHAR ucSubType; | |
| 571 USHORT usReserved; | |
| 572 USHORT usIdErrorValue; | |
| 573 UCHAR ucIdErrData[4]; | |
| 574 } ID_ERROR_OBJECT; | |
| 575 | |
| 576 #define ID_ERR_OBJ_HDR_LEN (sizeof(ID_ERROR_OBJECT) - 4 *sizeof(UCHAR)) | |
| 577 | |
| 578 DECLARE_HANDLE(LPM_HANDLE); | |
| 579 DECLARE_HANDLE(RHANDLE); | |
| 580 | |
| 581 typedef ULONG LPV; | |
| 582 typedef USHORT PETYPE; | |
| 583 | |
| 584 #define LPM_OK 0 | |
| 585 | |
| 586 typedef int MSG_TYPE; | |
| 587 | |
| 588 typedef struct rsvpmsgobjs { | |
| 589 MSG_TYPE RsvpMsgType; | |
| 590 RSVP_SESSION *pRsvpSession; | |
| 591 RSVP_HOP *pRsvpFromHop; | |
| 592 RSVP_HOP *pRsvpToHop; | |
| 593 RESV_STYLE *pResvStyle; | |
| 594 RSVP_SCOPE *pRsvpScope; | |
| 595 int FlowDescCount; | |
| 596 FLOW_DESC *pFlowDescs; | |
| 597 int PdObjectCount; | |
| 598 POLICY_DATA **ppPdObjects; | |
| 599 ERROR_SPEC *pErrorSpec; | |
| 600 ADSPEC *pAdspec; | |
| 601 } RSVP_MSG_OBJS; | |
| 602 | |
| 603 typedef void *(WINAPI *PALLOCMEM)(DWORD Size); | |
| 604 typedef void (WINAPI *PFREEMEM)(void *pv); | |
| 605 | |
| 606 typedef struct policy_decision { | |
| 607 LPV lpvResult; | |
| 608 WORD wPolicyErrCode; | |
| 609 WORD wPolicyErrValue; | |
| 610 } POLICY_DECISION; | |
| 611 | |
| 612 typedef ULONG *(CALLBACK *CBADMITRESULT)(LPM_HANDLE LpmHandle,RHANDLE RequestHandle,ULONG ulPcmActionFlags,int LpmError,int PolicyDecisionsCount,POLICY_DECISION *pPolicyDecisions); | |
| 613 typedef ULONG *(CALLBACK *CBGETRSVPOBJECTS)(LPM_HANDLE LpmHandle,RHANDLE RequestHandle,int LpmError,int RsvpObjectsCount,RsvpObjHdr **ppRsvpObjects); | |
| 614 | |
| 615 #define INV_LPM_HANDLE 1 | |
| 616 #define LPM_TIME_OUT 2 | |
| 617 #define INV_REQ_HANDLE 3 | |
| 618 #define DUP_RESULTS 4 | |
| 619 #define INV_RESULTS 5 | |
| 620 | |
| 621 typedef struct lpminitinfo { | |
| 622 DWORD PcmVersionNumber; | |
| 623 DWORD ResultTimeLimit; | |
| 624 int ConfiguredLpmCount; | |
| 625 PALLOCMEM AllocMemory; | |
| 626 PFREEMEM FreeMemory; | |
| 627 CBADMITRESULT PcmAdmitResultCallback; | |
| 628 CBGETRSVPOBJECTS GetRsvpObjectsCallback; | |
| 629 } LPM_INIT_INFO; | |
| 630 | |
| 631 #define LPM_PE_ALL_TYPES 0 | |
| 632 #define LPM_API_VERSION_1 1 | |
| 633 | |
| 634 #define PCM_VERSION_1 1 | |
| 635 | |
| 636 ULONG WINAPI LPM_Initialize(LPM_HANDLE LpmHandle,LPM_INIT_INFO *pLpmInitInfo,DWORD *pLpmVersionNumber,PETYPE *pSupportedPeType,VOID *Reserved); | |
| 637 ULONG WINAPI LPM_Deinitialize(LPM_HANDLE LpmHandle); | |
| 638 | |
| 639 #define LPV_RESERVED 0 | |
| 640 #define LPV_MIN_PRIORITY 1 | |
| 641 #define LPV_MAX_PRIORITY 0xFF00 | |
| 642 #define LPV_DROP_MSG 0xFFFD | |
| 643 #define LPV_DONT_CARE 0xFFFE | |
| 644 #define LPV_REJECT 0xFFFF | |
| 645 | |
| 646 #define FORCE_IMMEDIATE_REFRESH 1 | |
| 647 | |
| 648 #define LPM_RESULT_READY 0 | |
| 649 #define LPM_RESULT_DEFER 1 | |
| 650 | |
| 651 ULONG WINAPI LPM_AdmitRsvpMsg(RHANDLE PcmReqHandle,RSVP_HOP *pRecvdIntf,RSVP_MSG_OBJS *pRsvpMsgObjs,int RcvdRsvpMsgLength,UCHAR *RcvdRsvpMsg,ULONG *pulPcmActionFlags,POLICY_DECISION *pPolicyDecisions,void *Reserved); | |
| 652 ULONG WINAPI LPM_GetRsvpObjects(RHANDLE PcmReqHandle,ULONG MaxPdSize,RSVP_HOP *SendingIntfAddr,RSVP_MSG_OBJS *pRsvpMsgObjs,int *pRsvpObjectsCount,RsvpObjHdr ***pppRsvpObjects,void *Reserved); | |
| 653 | |
| 654 #define RCVD_PATH_TEAR 1 | |
| 655 #define RCVD_RESV_TEAR 2 | |
| 656 #define ADM_CTRL_FAILED 3 | |
| 657 #define STATE_TIMEOUT 4 | |
| 658 #define FLOW_DURATION 5 | |
| 659 | |
| 660 VOID WINAPI LPM_DeleteState(RSVP_HOP *pRcvdIfAddr,MSG_TYPE RsvpMsgType,RSVP_SESSION *pRsvpSession,RSVP_HOP *pRsvpFromHop,RESV_STYLE *pResvStyle,int FilterSpecCount,FILTER_SPEC **ppFilterSpecList,int TearDownReason); | |
| 661 | |
| 662 typedef struct lpmiptable { | |
| 663 ULONG ulIfIndex; | |
| 664 ULONG MediaType; | |
| 665 IN_ADDR IfIpAddr; | |
| 666 IN_ADDR IfNetMask; | |
| 667 } LPMIPTABLE; | |
| 668 | |
| 669 WINBOOL WINAPI LPM_IpAddressTable (ULONG cIpAddrTable,LPMIPTABLE *pIpAddrTable); | |
| 670 | |
| 671 #define RESOURCES_ALLOCATED 1 | |
| 672 #define RESOURCES_MODIFIED 2 | |
| 673 | |
| 674 VOID WINAPI LPM_CommitResv (RSVP_SESSION *RsvpSession,RSVP_HOP *FlowInstalledIntf,RESV_STYLE *RsvpStyle,int FilterSpecCount,FILTER_SPEC **ppFilterSpecList,IS_FLOWSPEC *pMergedFlowSpec,ULONG CommitDecision); | |
| 675 | |
| 676 #ifdef __cplusplus | |
| 677 } | |
| 678 #endif | |
| 679 #endif |
