zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

ifdef.h (3516B) - Raw


      1 /**
      2  * This file has no copyright assigned and is placed in the Public Domain.
      3  * This file is part of the mingw-w64 runtime package.
      4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
      5  */
      6 #ifndef _INC_IFDEF
      7 #define _INC_IFDEF
      8 
      9 #include <ipifcons.h>
     10 
     11 #ifdef __cplusplus
     12 extern "C" {
     13 #endif
     14 
     15 #define IF_MAX_STRING_SIZE 256
     16 #define IF_MAX_PHYS_ADDRESS_LENGTH 32
     17 
     18 typedef UINT32 NET_IF_COMPARTMENT_ID, *PNET_IF_COMPARTMENT_ID;
     19 
     20 typedef ULONG NET_IFINDEX, *PNET_IFINDEX;
     21 typedef UINT16 NET_IFTYPE, *PNET_IFTYPE;
     22 
     23 #define NET_IFINDEX_UNSPECIFIED (NET_IFINDEX)(0)
     24 
     25 typedef NET_IFINDEX IF_INDEX, *PIF_INDEX;
     26 
     27 typedef GUID NET_IF_NETWORK_GUID;
     28 
     29 typedef enum _IF_OPER_STATUS {
     30   IfOperStatusUp               = 1,
     31   IfOperStatusDown,
     32   IfOperStatusTesting,
     33   IfOperStatusUnknown,
     34   IfOperStatusDormant,
     35   IfOperStatusNotPresent,
     36   IfOperStatusLowerLayerDown 
     37 } IF_OPER_STATUS;
     38 
     39 typedef enum _NET_IF_OPER_STATUS {
     40   NET_IF_OPER_STATUS_UP                = 1,
     41   NET_IF_OPER_STATUS_DOWN,
     42   NET_IF_OPER_STATUS_TESTING,
     43   NET_IF_OPER_STATUS_UNKNOWN,
     44   NET_IF_OPER_STATUS_DORMANT,
     45   NET_IF_OPER_STATUS_NOT_PRESENT,
     46   NET_IF_OPER_STATUS_LOWER_LAYER_DOWN
     47 } NET_IF_OPER_STATUS, *PNET_IF_OPER_STATUS;
     48 
     49 typedef enum _NET_IF_ADMIN_STATUS {
     50   NET_IF_ADMIN_STATUS_UP        = 1,
     51   NET_IF_ADMIN_STATUS_DOWN,
     52   NET_IF_ADMIN_STATUS_TESTING 
     53 } NET_IF_ADMIN_STATUS, *PNET_IF_ADMIN_STATUS;
     54 
     55 typedef enum _NET_IF_MEDIA_CONNECT_STATE {
     56   MediaConnectStateUnknown,
     57   MediaConnectStateConnected,
     58   MediaConnectStateDisconnected 
     59 } NET_IF_MEDIA_CONNECT_STATE, *PNET_IF_MEDIA_CONNECT_STATE;
     60 
     61 typedef enum _NET_IF_ACCESS_TYPE {
     62   NET_IF_ACCESS_LOOPBACK               = 1,
     63   NET_IF_ACCESS_BROADCAST,
     64   NET_IF_ACCESS_POINT_TO_POINT,
     65   NET_IF_ACCESS_POINT_TO_MULTI_POINT,
     66   NET_IF_ACCESS_MAXIMUM 
     67 } NET_IF_ACCESS_TYPE, *PNET_IF_ACCESS_TYPE;
     68 
     69 typedef enum _NET_IF_CONNECTION_TYPE {
     70   NET_IF_CONNECTION_DEDICATED   = 1,
     71   NET_IF_CONNECTION_PASSIVE,
     72   NET_IF_CONNECTION_DEMAND,
     73   NET_IF_CONNECTION_MAXIMUM 
     74 } NET_IF_CONNECTION_TYPE, *PNET_IF_CONNECTION_TYPE;
     75 
     76 typedef enum _NET_IF_DIRECTION_TYPE {
     77   NET_IF_DIRECTION_SENDRECEIVE,
     78   NET_IF_DIRECTION_SENDONLY,
     79   NET_IF_DIRECTION_RECEIVEONLY,
     80   NET_IF_DIRECTION_MAXIMUM 
     81 } NET_IF_DIRECTION_TYPE, *PNET_IF_DIRECTION_TYPE;
     82 
     83 typedef enum _NET_IF_MEDIA_DUPLEX_STATE {
     84   MediaDuplexStateUnknown,
     85   MediaDuplexStateHalf,
     86   MediaDuplexStateFull 
     87 } NET_IF_MEDIA_DUPLEX_STATE, *PNET_IF_MEDIA_DUPLEX_STATE;
     88 
     89 typedef enum _TUNNEL_TYPE {
     90   TUNNEL_TYPE_NONE      = 0,
     91   TUNNEL_TYPE_OTHER     = 1,
     92   TUNNEL_TYPE_DIRECT    = 2,
     93   TUNNEL_TYPE_6TO4      = 11,
     94   TUNNEL_TYPE_ISATAP    = 13,
     95   TUNNEL_TYPE_TEREDO    = 14,
     96   TUNNEL_TYPE_IPHTTPS   = 15
     97 } TUNNEL_TYPE, *PTUNNEL_TYPE;
     98 
     99 typedef union _NET_LUID {
    100   ULONG64 Value;
    101   __C89_NAMELESS struct { /* bitfield with 64 bit types. */
    102     ULONG64 Reserved  :24;
    103     ULONG64 NetLuidIndex  :24;
    104     ULONG64 IfType  :16;
    105   } Info;
    106 } NET_LUID, *PNET_LUID;
    107 
    108 typedef NET_LUID IF_LUID, *PIF_LUID;
    109 
    110 typedef struct _IF_COUNTED_STRING_LH {
    111     USHORT Length;
    112     WCHAR  String[IF_MAX_STRING_SIZE + 1];
    113 } IF_COUNTED_STRING_LH, *PIF_COUNTED_STRING_LH;
    114 typedef IF_COUNTED_STRING_LH IF_COUNTED_STRING;
    115 typedef IF_COUNTED_STRING *PIF_COUNTED_STRING;
    116 
    117 typedef struct _IF_PHYSICAL_ADDRESS_LH {
    118     USHORT Length;
    119     UCHAR  Address[IF_MAX_PHYS_ADDRESS_LENGTH];
    120 } IF_PHYSICAL_ADDRESS_LH, *PIF_PHYSICAL_ADDRESS_LH;
    121 typedef IF_PHYSICAL_ADDRESS_LH IF_PHYSICAL_ADDRESS;
    122 typedef IF_PHYSICAL_ADDRESS *PIF_PHYSICAL_ADDRESS;
    123 
    124 #ifdef __cplusplus
    125 }
    126 #endif
    127 
    128 #endif /* _INC_IFDEF */
    129