aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/tools/bison/gnulib/win_sdk10.h
blob: fdf8dc9e20e39759b33a18d2cb897494039e192b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#pragma once 
 
#if defined(_MSC_VER) 
 
#include <ntverp.h> 
 
// Check for Windows SDK 10+ 
#if defined(VER_PRODUCTBUILD) && VER_PRODUCTBUILD >= 9600 
#define WIN_SDK10 1 
#else 
#define WIN_SDK10 0 
#endif 
 
// Since Windows SDK 10 FILE is an internal opaque structure with no backward compatibility. 
// This code has been transplanted from Windows SDK 
// corecrt_internal_stdio.h 
 
// __crt_stdio_stream_data 
#if WIN_SDK10 
typedef struct { 
    union { 
        void* _public_file; 
        char* _ptr; 
    }; 
 
    char* _base; 
    int _cnt; 
    long _flags; 
    long _file; 
    int _charbuf; 
    int _bufsiz; 
    char* _tmpfname; 
    //CRITICAL_SECTION _lock; 
} TWinSdk10File; 
 
enum EWinSdk10ModeBits { 
    WIN_SDK10_IOREAD = 0x0001, 
    WIN_SDK10_IOWRITE = 0x0002, 
    WIN_SDK10_IOUPDATE = 0x0004, 
    WIN_SDK10_IOEOF = 0x0008, 
    WIN_SDK10_IOERROR = 0x0010, 
    WIN_SDK10_IOCTRLZ = 0x0020, 
    WIN_SDK10_IOBUFFER_CRT = 0x0040, 
    WIN_SDK10_IOBUFFER_USER = 0x0080, 
    WIN_SDK10_IOBUFFER_SETVBUF = 0x0100, 
    WIN_SDK10_IOBUFFER_STBUF = 0x0200, 
    WIN_SDK10_IOBUFFER_NONE = 0x0400, 
    WIN_SDK10_IOCOMMIT = 0x0800, 
    WIN_SDK10_IOSTRING = 0x1000, 
    WIN_SDK10_IOALLOCATED = 0x2000, 
}; 
#endif 
 
#endif