Author: jcatena
Date: Tue Jan 26 12:50:40 2010
New Revision: 45264

URL: http://svn.reactos.org/svn/reactos?rev=45264&view=rev
Log:
[REACTOS]
added includes to improve compiler and platform portability
check specally platf.h, and use its macros instead of specific compiler 
directives
cpu.h and cpu_c.h contain defs, macros and inlines specific to the cpu_c
there are different versions of these files in <arch> and <compiler> 
subdirectories, and the right subdirectories
must be added to the search path according to compiler and architecture

Added:
    branches/jcatena-branch/include/reactos/gnuc/   (with props)
    branches/jcatena-branch/include/reactos/gnuc/i386/   (with props)
    branches/jcatena-branch/include/reactos/gnuc/i386/cpu_c.h   (with props)
    branches/jcatena-branch/include/reactos/gnuc/i386/platf.h   (with props)
    branches/jcatena-branch/include/reactos/i386/   (with props)
    branches/jcatena-branch/include/reactos/i386/cpu.h   (with props)
    branches/jcatena-branch/include/reactos/i386/reactos_cfg.h   (with props)
    branches/jcatena-branch/include/reactos/msc/   (with props)
    branches/jcatena-branch/include/reactos/msc/i386/   (with props)
    branches/jcatena-branch/include/reactos/msc/i386/cpu_c.h   (with props)
    branches/jcatena-branch/include/reactos/msc/i386/msc.h   (with props)
    branches/jcatena-branch/include/reactos/msc/i386/platf.h   (with props)
    branches/jcatena-branch/include/reactos/osver.h   (with props)

Propchange: branches/jcatena-branch/include/reactos/gnuc/
------------------------------------------------------------------------------
--- bugtraq:logregex (added)
+++ bugtraq:logregex Tue Jan 26 12:50:40 2010
@@ -1,0 +1,2 @@
+([Ii]ssue|[Bb]ug)s? #?(\d+)(,? ?#?(\d+))*(,? ?(and |or )?#?(\d+))?
+(\d+)

Propchange: branches/jcatena-branch/include/reactos/gnuc/
------------------------------------------------------------------------------
    bugtraq:message = See issue #%BUGID% for more details.

Propchange: branches/jcatena-branch/include/reactos/gnuc/
------------------------------------------------------------------------------
    bugtraq:url = http://www.reactos.org/bugzilla/show_bug.cgi?id=%BUGID%

Propchange: branches/jcatena-branch/include/reactos/gnuc/
------------------------------------------------------------------------------
    tsvn:logminsize = 10

Propchange: branches/jcatena-branch/include/reactos/gnuc/i386/
------------------------------------------------------------------------------
--- bugtraq:logregex (added)
+++ bugtraq:logregex Tue Jan 26 12:50:40 2010
@@ -1,0 +1,2 @@
+([Ii]ssue|[Bb]ug)s? #?(\d+)(,? ?#?(\d+))*(,? ?(and |or )?#?(\d+))?
+(\d+)

Propchange: branches/jcatena-branch/include/reactos/gnuc/i386/
------------------------------------------------------------------------------
    bugtraq:message = See issue #%BUGID% for more details.

Propchange: branches/jcatena-branch/include/reactos/gnuc/i386/
------------------------------------------------------------------------------
    bugtraq:url = http://www.reactos.org/bugzilla/show_bug.cgi?id=%BUGID%

Propchange: branches/jcatena-branch/include/reactos/gnuc/i386/
------------------------------------------------------------------------------
    tsvn:logminsize = 10

Added: branches/jcatena-branch/include/reactos/gnuc/i386/cpu_c.h
URL: 
http://svn.reactos.org/svn/reactos/branches/jcatena-branch/include/reactos/gnuc/i386/cpu_c.h?rev=45264&view=auto
==============================================================================
--- branches/jcatena-branch/include/reactos/gnuc/i386/cpu_c.h (added)
+++ branches/jcatena-branch/include/reactos/gnuc/i386/cpu_c.h [iso-8859-1] Tue 
Jan 26 12:50:40 2010
@@ -1,0 +1,98 @@
+#ifndef _CASM_INC
+#define _CASM_INC
+
+#define Ke386SetGlobalDescriptorTable(X) \
+    __asm__("lgdt %0\n\t" \
+    : /* no outputs */ \
+    : "m" (*X));
+
+#define Ke386GetGlobalDescriptorTable(X) \
+    __asm__("sgdt %0\n\t" \
+    : "=m" (*X) \
+    : /* no input */ \
+    : "memory");
+
+FORCEINLINE
+USHORT
+Ke386GetLocalDescriptorTable()
+{
+    USHORT Ldt;
+    __asm__("sldt %0\n\t"
+    : "=m" (Ldt)
+    : /* no input */
+    : "memory");
+    return Ldt;
+}
+
+#define Ke386SetLocalDescriptorTable(X) \
+    __asm__("lldt %w0\n\t" \
+    : /* no outputs */ \
+    : "q" (X));
+
+#define Ke386SetTr(X)                   __asm__ __volatile__("ltr %%ax" : :"a" 
(X));
+
+FORCEINLINE
+USHORT
+Ke386GetTr(VOID)
+{
+    USHORT Tr;
+    __asm__("str %0\n\t"
+    : "=m" (Tr));
+    return Tr;
+}
+
+#define _Ke386GetSeg(N)           ({ \
+                                     unsigned int __d; \
+                                     __asm__("movl %%" #N ",%0\n\t" :"=r" 
(__d)); \
+                                     __d; \
+                                  })
+
+#define _Ke386SetSeg(N,X)         __asm__ __volatile__("movl %0,%%" #N : :"r" 
(X));
+
+#define Ke386FnInit()               __asm__("fninit\n\t");
+
+//
+// CR Macros
+//
+#define Ke386SetCr2(X)              __asm__ __volatile__("movl %0,%%cr2" : 
:"r" (X));
+
+//
+// Segment Macros
+//
+#define Ke386GetSs()                _Ke386GetSeg(ss)
+#define Ke386GetFs()                _Ke386GetSeg(fs)
+#define Ke386SetFs(X)               _Ke386SetSeg(fs, X)
+#define Ke386SetDs(X)               _Ke386SetSeg(ds, X)
+#define Ke386SetEs(X)               _Ke386SetSeg(es, X)
+#define Ke386SetSs(X)               _Ke386SetSeg(ss, X)
+#define Ke386SetGs(X)               _Ke386SetSeg(gs, X)
+
+#define FPU_DOUBLE(var) double var; \
+       __asm__ __volatile__( "fstpl %0;fwait" : "=m" (var) : )
+
+#define FPU_DOUBLES(var1,var2) double var1,var2; \
+       __asm__ __volatile__( "fstpl %0;fwait" : "=m" (var2) : ); \
+       __asm__ __volatile__( "fstpl %0;fwait" : "=m" (var1) : )
+
+// gcc bug workaround
+#if (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__ < 40300) || 
\
+    (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__ == 40303) 
+#define DEFINE_WAIT_BLOCK(x)                                \
+    struct _AlignHack                                       \
+    {                                                       \
+        UCHAR Hack[15];                                     \
+        EX_PUSH_LOCK_WAIT_BLOCK UnalignedBlock;             \
+    } WaitBlockBuffer;                                      \
+    PEX_PUSH_LOCK_WAIT_BLOCK x = (PEX_PUSH_LOCK_WAIT_BLOCK) \
+        ((ULONG_PTR)&WaitBlockBuffer.UnalignedBlock &~ 0xF);
+#else
+// This is only for compatibility; the compiler will optimize the extra
+// local variable (the actual pointer) away, so we don't take any perf hit
+// by doing this.
+#define DEFINE_WAIT_BLOCK(x)                                \
+    EX_PUSH_LOCK_WAIT_BLOCK WaitBlockBuffer;                \
+    PEX_PUSH_LOCK_WAIT_BLOCK x = &WaitBlockBuffer;
+#endif
+
+
+#endif // #ifndef _CASM_INC

Propchange: branches/jcatena-branch/include/reactos/gnuc/i386/cpu_c.h
------------------------------------------------------------------------------
    svn:eol-style = native

Added: branches/jcatena-branch/include/reactos/gnuc/i386/platf.h
URL: 
http://svn.reactos.org/svn/reactos/branches/jcatena-branch/include/reactos/gnuc/i386/platf.h?rev=45264&view=auto
==============================================================================
--- branches/jcatena-branch/include/reactos/gnuc/i386/platf.h (added)
+++ branches/jcatena-branch/include/reactos/gnuc/i386/platf.h [iso-8859-1] Tue 
Jan 26 12:50:40 2010
@@ -1,0 +1,201 @@
+#pragma once
+
+/* platf.h gnuc i32
+platform dependent basic types and macros
+(c) Jose M. Catena Gomez, diwaves.com
+*/
+
+/* this must produce a compiler error */
+#define _ERR_UNSUPPORTED #error
+
+/* attribues */
+#define __declspec(x) __attribute__((x))
+#define _CDECL __declspec(cdecl)
+#define _THISCALL
+#define _STDCALL __declspec(stdcall)
+#define _FASTCALL __declspec(regparm(3))
+#define _CLRCALL
+#define _INLINE __inline__
+#define _INLINEF __inline__ __declspec(always_inline)
+#define _NAKED
+#define _INTERRUPT _ERR_UNSUPPORTED
+#define _SAVEREGS _ERR_UNSUPPORTED
+#define _LOADDS _ERR_UNSUPPORTED
+#define _DLLEXPORT __declspec(dllexport)
+#define _DLLIMPORT __declspec(dllimport)
+#define _ALIGN(x) __declspec(aligned(x))
+
+#define _PACK(x) __pragma(pack(push, x))
+#define _PACK_POP __pragma(pack(pop))
+#define _RESTRICT __restrict__
+#define _ONCE
+#define _OPTIMIZE_DFT
+#define _OPTIMIZE_OFF_ALL
+#define _OPTIMIZE_OFF_GLOBAL
+#define _OPTIMIZE_OFF_STKF
+#define _INTRINSIC(x, subst) \
+#define x subst
+#define _NOINTRINSIC(x) \
+#undef x
+#define _NOWARN_PUSH
+#define _NOWARN_POP
+#define _NOWARN_MSC(x)
+#define _NOWARN_GNUC(x)
+
+#define _SECTION(x) __declspec((section(sectn)))
+#define _SECTION_FN(sectn, fn) __declspec((section(sectn)))
+#define _SECTION_FND(sectn) __declspec((section(sectn)))
+#define _SECTION_CODE(x)
+#define _SECTION_CODE_END
+#define _SECTION_DATA(x)
+#define _SECTION_DATA_END
+#define _SECTION_BSS(x)
+#define _SECTION_BSS_END
+#define _SECTION_CONST(x)
+#define _SECTION_CONST_END
+
+#define _ASM_BEGIN __asm__ {
+#define _ASM_END }
+#define _ASM __asm__
+
+#define IN
+#define OUT
+
+/* ptr size */
+#define PTRSIZ 4
+#define PTRSIZMIN 4
+#define PTRSIZMAX 4
+#define _NEAR
+#define _FAR
+#define _FARH
+#define _BASED
+#define _BASED1 __based
+#define _SEGMENT _UNSUPPORTED
+#define _SEGNAME _UNSUPPORTED
+
+/*************************************************************************
+basic types
+*************************************************************************/
+typedef void *pvoid, _NEAR *npvoid, _FAR *lpvoid, _FARH *hpvoid;
+
+/* chars */
+#define CHRSIZMIN      1
+#define CHRSIZMAX      2
+#define CHRSIZ         1
+#define CHRWSIZ                2
+#define CHRXSIZ                2
+#define CHRSIGN                1
+#define CHRWSIGN       0
+
+typedef char chr8, *pchr8p, _NEAR *npchr8, _FAR *lpchr8, _FARH *hpchr8;
+typedef signed char chr8s, *pchr8s, _NEAR *npchr8s, _FAR *lpchr8s, _FARH 
*hpchr8s;
+typedef unsigned char chr8u, *pchr8u, _NEAR *npchr8u, _FAR *lpchr8u, _FARH 
*hpchr8u;
+
+/* chars unicode 16 bits */
+#ifdef _NATIVE_WCHAR_T_DEFINED
+typedef wchar_t chr16;
+typedef signed short chr16s;
+typedef unsigned short chr16u;
+#else
+typedef unsigned short chr16;
+typedef signed short chr16s;
+typedef unsigned short chr16u;
+#endif
+
+typedef chr16 *pchr16, _NEAR *npchr16, _FAR *lpchr16, _FARH *hpchr16;
+typedef chr16s *pchr16s, _NEAR *npchr16s, _FAR *lpchr16s, _FARH *hpchr16s;
+typedef chr16u *pchr16u, _NEAR *npchr16u, _FAR *lpchr16u, _FARH *hpchr16u;
+
+#ifdef _UNICODE
+typedef chr16 chr;
+typedef chr16s chrs;
+typedef chr16u chru;
+#else
+typedef chr8 chr;
+typedef chr8s chrs;
+typedef chr8u chru;
+#endif
+
+typedef chr *pchr, _NEAR *npchr, _FAR *lpchr, _FARH hpchr;
+typedef chrs *pchrs, _NEAR *npchrs, _FAR *lpchrs, _FARH hpchrs;
+typedef chru *pchru, _NEAR *npchru, _FAR *lpchru, _FARH hpchru;
+
+// string literal macros 
+// double definitions here are necessary because preprocessor behavior
+#define _T16(x) L ## x
+#define T16(x) _T16(x)
+#define _T8(x) x
+#define T8(x) _T8(x)
+#ifdef _UNICODE
+#define TX(x) _T16(x)
+#else
+#define TX(x) _T8(x)
+#endif
+// stringfy
+#define _sfy(x) #x
+#define sfy(x) _sfy(x)
+
+/* integers */
+#define INTSIZMIN   1
+#define INTSIZMAX   8
+#define INTSIZ     4
+#define INTSMIN            -2147483648
+#define INTSMAX            0x7FFFFFFF
+
+typedef int *pint, _NEAR *npint, _FAR *lpint, _FARH *hpint;
+typedef signed int ints, *pints, _NEAR *npints, _FAR *lpints, _FARH *hpints;
+typedef unsigned int intu, *pintu, _NEAR *npintu, _FAR *lpintu, _FARH *hpintu;
+
+typedef __int8 i8, *pi8, _NEAR *npi8, _FAR *lpi8, _FARH *hpi8;
+typedef signed __int8 i8s, *pi8s, _NEAR *npi8s, _FAR *lpi8s, _FARH *hpi8s;
+typedef unsigned __int8 i8u, *pi8u, _NEAR *npi8u, _FAR *lpi8u, _FARH *hpi8u;
+
+typedef short i16, *pi16, _NEAR *npi16, _FAR *lpi16, _FARH *hpi16;
+typedef signed short i16s, *pi16s, _NEAR *npi16s, _FAR *lpi16s, _FARH *hpi16s;
+typedef unsigned short i16u, *pi16u, _NEAR *npi16u, _FAR *lpi16u, _FARH 
*hpi16u;
+
+typedef long i32, *pi32, _NEAR *npi32, _FAR *lpi32, _FARH *hpi32;
+typedef signed long i32s, *pi32s, _NEAR *npi32s, _FAR *lpi32s, _FARH *hpi32s;
+typedef unsigned long i32u, *pi32u, _NEAR *npi32u, _FAR *lpi32u, _FARH 
*hpi32u;                // = unsigned long DWORD
+
+typedef __int64 i64, *i64p, _NEAR *npi64, _FAR *lpi64, _FARH *hpi64;
+typedef signed __int64 i64s, *pi64s, _NEAR *npi64s, _FAR *lpi64s, _FARH 
*hpi64s;
+typedef unsigned __int64 i64u, *pi64u, _NEAR *npi64u, _FAR *lpi64u, _FARH 
*hpi64u;
+
+typedef union {i64 x; struct {i32u l; i32 h;}} i64x, *pi64x, _NEAR *npi64x, 
_FAR *lpi64x, _FARH *hpi64x;
+typedef union {i64s x; struct {i32u l; i32s h;}} i64xs, *pi64xs, _NEAR 
*npi64xs, _FAR *lpi64xs, _FARH *hpi64xs;
+typedef union {i64u x; struct {i32u l; i32u h;}} i64xu, *pi64xu, _NEAR 
*npi64xu, _FAR *lpi64xu, _FARH *hpi64xu;
+
+typedef struct {i64u l; i64 h;} i128, *pi128, _NEAR *npi128, _FAR *lpi128, 
_FARH *hpi128;
+typedef struct {i64u l; i64s h;} i128s, *pi128s, _NEAR *npi128s, _FAR 
*lpi128s, _FARH *hpi128s;
+typedef struct {i64u l; i64u h;} i128u, *pi128u, _NEAR *npi128u, _FAR 
*lpi128u, _FARH *hpi128u;
+
+// this int must be the same size of a pointer
+typedef long iptr, *piptr, _NEAR *npiptr, _FAR *lpiptr, _FARH *hpiptr;
+typedef signed long iptrs, *piptrs, _NEAR *npiptrs, _FAR *lpiptrs, _FARH 
*hpiptrs;
+typedef unsigned long iptru, *piptru, _NEAR *npiptru, _FAR *lpiptru, _FARH 
*hpiptru;
+
+/* floats */
+typedef float f32, *pf32, _NEAR *npf32, _FAR *lpf32, _FARH *hpf32;
+typedef double f64, *pf64p, _NEAR *npf64, _FAR *lpf64, _FARH *hpf64;
+typedef struct {i64u l; i64u h;} f128, *pf128, _NEAR *npf128, _FAR *lpf128, 
_FARH *hpf128;
+
+/* size */
+#define SIZTSIZ 4
+#define SIZTMAX 0xFFFFFFFF
+typedef i32u sizt, *psizt, _NEAR *npsizt, _FAR *npsizt, _FARH *hpsizt;
+
+/*************************************************************************
+
+*************************************************************************/
+// debug 
+#if _DEBUG
+#define dbgref TX("(") TX(__FILE__) TX(":") TX(sfy(__LINE__)) TX(":") 
TX(__FUNCTION__) TX(")")
+#else
+#define dbgref 0
+#endif
+
+#define _ReturnAddress() (__builtin_return_address(0))
+#define ReturnAddress _ReturnAddress
+#define _ReturnAddressn(x) (__builtin_return_address(x))
+#define ReturnAddressn(x) _ReturnAddressn(x)

Propchange: branches/jcatena-branch/include/reactos/gnuc/i386/platf.h
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: branches/jcatena-branch/include/reactos/i386/
------------------------------------------------------------------------------
--- bugtraq:logregex (added)
+++ bugtraq:logregex Tue Jan 26 12:50:40 2010
@@ -1,0 +1,2 @@
+([Ii]ssue|[Bb]ug)s? #?(\d+)(,? ?#?(\d+))*(,? ?(and |or )?#?(\d+))?
+(\d+)

Propchange: branches/jcatena-branch/include/reactos/i386/
------------------------------------------------------------------------------
    bugtraq:message = See issue #%BUGID% for more details.

Propchange: branches/jcatena-branch/include/reactos/i386/
------------------------------------------------------------------------------
    bugtraq:url = http://www.reactos.org/bugzilla/show_bug.cgi?id=%BUGID%

Propchange: branches/jcatena-branch/include/reactos/i386/
------------------------------------------------------------------------------
    tsvn:logminsize = 10

Added: branches/jcatena-branch/include/reactos/i386/cpu.h
URL: 
http://svn.reactos.org/svn/reactos/branches/jcatena-branch/include/reactos/i386/cpu.h?rev=45264&view=auto
==============================================================================
--- branches/jcatena-branch/include/reactos/i386/cpu.h (added)
+++ branches/jcatena-branch/include/reactos/i386/cpu.h [iso-8859-1] Tue Jan 26 
12:50:40 2010
@@ -1,0 +1,192 @@
+#pragma once
+
+/*     cpu.h
+       definitions for intel ia-32 cpu and cpu.lib
+       (c) 2010 Jose M. Catena Gomez
+*/
+
+#include <cpu_c.h>     // compiler specific
+
+#pragma pack(push, 1)
+
+// GDT Global Descriptor Table Entry
+typedef struct
+{
+       i16u limit0;                    // 0
+       i16u base0;                             // 2
+       i8u base16;                             // 4
+       i8u type:5;                             // 5.0
+       i8u dpl:2;                              // 5.5 privilege
+       i8u p:1;                                // 5.7 47 present
+       i8u limit16:4;                  // 6.0
+       i8u avl:1;                              // 6.4 available (ros sys)
+       i8u siz:2;                              // 6.5 default size: 0=16 bits, 
2=32 bits, 1=64 bits
+       i8u g:1;                                // 6.7 granularity
+       i8u base24;                             // 7 
+} CPU_GDTE;                                    // 8 bytes
+
+// IDT Interrupt Descriptor Table Entry
+typedef struct
+{
+       i16u offset0;                   // 0
+       i16u sel;                               // 2
+       i8u     rsv20;                          // 4
+       i8u type:2;                             // 5.0 type: 1=task, 
2=interrupt, 3=trap
+       i8u rsv2a:1;                    // 5.2 1
+       i8u siz:1;                              // 5.3 size: 0=16, 1=32
+       i8u rsv2c:1;                    // 5.4 0
+       i8u dpl:2;                              // 5.5 privilege
+       i8u p;                                  // 5.7 present
+       i16u offset16;                  // 6
+} CPU_IDTE;                                    // 8 bytes
+
+// descriptor table reg (gdtr / idtr)
+typedef struct
+{
+       i16u rsv00;
+       i16u limit;
+       i32u base;
+} CPUR_DT;
+
+// eflags
+typedef struct
+{
+       union
+       {
+               i32u f;
+               struct
+               {
+                       i32u c:1;                       // 0.0 carry
+                       i32u rsv01:1;           // 0.1 1
+                       i32u p:1;                       // 0.2 parity
+                       i32u rsv03:1;           // 0.3 0
+                       i32u a:1;                       // 0.4 aux
+                       i32u rsv05:1;           // 0.5 0
+                       i32u z:1;                       // 0.6 zero
+                       i32u s:1;                       // 0.7 sign
+                       i32u trap:1;            // 1.0 trap
+                       i32u ie:1;                      // 1.1 interrupt enable
+                       i32u d:1;                       // 1.2 direction
+                       i32u o:1;                       // 1.3 overflow
+                       i32u iopl:2;            // 1.4 io privilege
+                       i32u nt:1;                      // 1.6 nested task
+                       i32u rsv0f:1;           // 1.7 0
+                       i32u r:1;                       // 2.0 resume
+                       i32u vm:1;                      // 2.1 virtual 8086 mode
+                       i32u ac:1;                      // 2.2 alignment check
+                       i32u vif:1;                     // 2.3 virtual 
interrupt flag
+                       i32u vip:1;                     // 2.4 virtual 
interrupt pending
+                       i32u id:1;                      // 2.5 id
+                       i32u rsv16:10;          // 2.6 0
+               };
+       };
+} CPUR_F;
+
+typedef struct
+{
+       i32u eax;
+       i32u ecx;
+       i32u edx;
+       i32u ebx;
+       i32u esp;
+       i32u ebp;
+       i32u esi;
+       i32u edi;
+} CPUR_GP;
+
+typedef struct
+{
+       i16u cs;
+       i16u ss;
+       i16u ds;
+       i16u es;
+       i16u fs;
+       i16u gs;
+} CPUR_SEG;
+
+typedef struct
+{
+       i32u cr0;
+       i32u cr2;                       // page fault linear address
+       i32u cr3;                       // cr3 page directory
+       i32u cr4;
+       i32u cr8;
+       CPUR_DT gdtr;           // global descriptor table
+       CPUR_DT idtr;           // interrupt descriptor table
+       i16u ldtr;                      // local descriptor table
+       i16u tr;                        // task
+} CPUR_C;
+
+typedef struct
+{
+       i32u dr0;
+       i32u dr1;
+       i32u dr2;
+       i32u dr3;
+       i32u dr4;
+       i32u dr5;
+       i32u dr6;
+       i32u dr7;
+       i32u dr8;
+} CPUR_DBG;
+
+typedef struct
+{
+       CPUR_F f;
+       CPUR_GP gp;
+       CPUR_SEG seg;
+       CPUR_C c;
+} CPUR_ALL;
+
+// task state segment
+// must be aligned to 0x80, no page boundary allowed
+typedef struct _ALIGN(0x80)
+{
+       i16u PrevTask;                  // 00
+       i16u rsv02;                             // 02
+       i32u esp0;                              // 04
+       i16u ss0;                               // 08
+       i16u rsv0a;                             // 0a
+       i32u esp1;                              // 0c
+       i16u ss1;                               // 10
+       i16u rsv12;                             // 12
+       i32u esp2;                              // 14
+       i16u ss2;                               // 18
+       i16u rsv1e;                             // 1a
+       i32u cr3;                               // 1c
+       i32u eip;                               // 20
+       i32u eflags;                    // 24
+       i32u eax;                               // 28
+       i32u ecx;                               // 2c
+       i32u edx;                               // 30
+       i32u ebx;                               // 34
+       i32u esp;                               // 38
+       i32u ebp;                               // 3c
+       i32u esi;                               // 40
+       i32u edi;                               // 44
+       i16u es;                                // 48
+       i16u rsv4a;                             // 4a
+       i16u cs;                                // 4c
+       i16u rsv4e;                             // 4e
+       i16u ss;                                // 50
+       i16u rsv52;                             // 52
+       i16u ds;                                // 54
+       i16u rsv56;                             // 56
+       i16u fs;                                // 58
+       i16u rsv5a;                             // 5a
+       i16u gs;                                // 5c
+       i16u rsv5e;                             // 5e
+       i16u ldtr;                              // 60
+       i16u rsv62;                             // 62
+       i16u DbgTrap;                   // 64
+       i16u IoMap;                             // 66
+} CPU_TSS;                                     // 68
+
+#define CPUREGSAVE_GP          1       // always saved anyway
+#define CPUREGSAVE_SEG         2
+#define CPUREGSAVE_C           4
+#define CPUREGSAVE_FPU         8       // unimplemented
+
+#pragma pack(pop)
+
+void _CDECL CpuRegSave(CPUR_ALL *p, i32 flags);

Propchange: branches/jcatena-branch/include/reactos/i386/cpu.h
------------------------------------------------------------------------------
    svn:eol-style = native

Added: branches/jcatena-branch/include/reactos/i386/reactos_cfg.h
URL: 
http://svn.reactos.org/svn/reactos/branches/jcatena-branch/include/reactos/i386/reactos_cfg.h?rev=45264&view=auto
==============================================================================
--- branches/jcatena-branch/include/reactos/i386/reactos_cfg.h (added)
+++ branches/jcatena-branch/include/reactos/i386/reactos_cfg.h [iso-8859-1] Tue 
Jan 26 12:50:40 2010
@@ -1,0 +1,19 @@
+#pragma once
+
+#define DBG 1
+// #define DBG 1
+// #define KDBG
+#define _WINKD_
+// #define AUTO_ENABLE_BOCHS
+// #define CONFIG_SMP
+
+#define __REACTOS__
+
+#if defined(_M_IX86)
+#define KERNEL_STACK_SIZE 0x6000
+#define KERNEL_LARGE_STACK_SIZE 0xf000
+#define KERNEL_LARGE_STACK_COMMIT 0x6000
+#endif
+
+#include <osver.h>
+#include <platf.h>

Propchange: branches/jcatena-branch/include/reactos/i386/reactos_cfg.h
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: branches/jcatena-branch/include/reactos/msc/
------------------------------------------------------------------------------
--- bugtraq:logregex (added)
+++ bugtraq:logregex Tue Jan 26 12:50:40 2010
@@ -1,0 +1,2 @@
+([Ii]ssue|[Bb]ug)s? #?(\d+)(,? ?#?(\d+))*(,? ?(and |or )?#?(\d+))?
+(\d+)

Propchange: branches/jcatena-branch/include/reactos/msc/
------------------------------------------------------------------------------
    bugtraq:message = See issue #%BUGID% for more details.

Propchange: branches/jcatena-branch/include/reactos/msc/
------------------------------------------------------------------------------
    bugtraq:url = http://www.reactos.org/bugzilla/show_bug.cgi?id=%BUGID%

Propchange: branches/jcatena-branch/include/reactos/msc/
------------------------------------------------------------------------------
    tsvn:logminsize = 10

Propchange: branches/jcatena-branch/include/reactos/msc/i386/
------------------------------------------------------------------------------
--- bugtraq:logregex (added)
+++ bugtraq:logregex Tue Jan 26 12:50:40 2010
@@ -1,0 +1,2 @@
+([Ii]ssue|[Bb]ug)s? #?(\d+)(,? ?#?(\d+))*(,? ?(and |or )?#?(\d+))?
+(\d+)

Propchange: branches/jcatena-branch/include/reactos/msc/i386/
------------------------------------------------------------------------------
    bugtraq:message = See issue #%BUGID% for more details.

Propchange: branches/jcatena-branch/include/reactos/msc/i386/
------------------------------------------------------------------------------
    bugtraq:url = http://www.reactos.org/bugzilla/show_bug.cgi?id=%BUGID%

Propchange: branches/jcatena-branch/include/reactos/msc/i386/
------------------------------------------------------------------------------
    tsvn:logminsize = 10

Added: branches/jcatena-branch/include/reactos/msc/i386/cpu_c.h
URL: 
http://svn.reactos.org/svn/reactos/branches/jcatena-branch/include/reactos/msc/i386/cpu_c.h?rev=45264&view=auto
==============================================================================
--- branches/jcatena-branch/include/reactos/msc/i386/cpu_c.h (added)
+++ branches/jcatena-branch/include/reactos/msc/i386/cpu_c.h [iso-8859-1] Tue 
Jan 26 12:50:40 2010
@@ -1,0 +1,178 @@
+#pragma once 
+
+// not recognized by inline assembler:
+// mov eax, cr4
+#define mov_eax_cr4 _ASM _emit 0x0f _ASM _emit 0x20 _ASM _emit 0xe0
+// sysexit
+#define sysexit _ASM _emit 0x0f _ASM _emit 0x35
+
+#define CpuCld() __asm cld
+#define CpuStd() __asm std
+
+void __wbinvd(void);
+_INTRINSIC(__wbinvd, __wbinvd)
+#define CpuWbinvd __wbinvd
+
+#define CpuGetGdt_m(x) _ASM sgdt x
+_INLINEF void CpuGetGdt(pvoid Descriptor) {_ASM_BEGIN
+       mov eax, Descriptor
+       sgdt [eax]
+_ASM_END}
+
+#define CpuSetGdt_m(x) _ASM lgdt x
+_INLINEF void CpuSetGdt(pvoid Descriptor) {_ASM_BEGIN
+       mov eax, Descriptor
+       lgdt [eax]
+_ASM_END}
+
+#if 1  // select implementation
+void __sidt(void *x);          // msc intrinsic
+_INTRINSIC(__sidt, __sidt)
+#define CpuGetIdt __sidt
+#else
+_INLINEF void CpuGetIdt(void *x) {_ASM_BEGIN
+       mov eax, x
+       sidt [eax]
+_ASM_END}
+#endif
+#define CpuGetIdt_m(x) _ASM sidt x
+
+#if 1  // select implementation
+void __lidt(void *x);  // msc intrinic
+_INTRINSIC(__lidt, __lidt)
+#define CpuSetIdt __lidt
+#else
+_INLINEF void CpuSetIdt(void *x) {_ASM_BEGIN
+       mov eax, x
+       lidt [eax]
+_ASM_END}
+#endif
+#define CpuSetIdt_m(x) _ASM lidt x
+
+_INLINEF i16u CpuGetLdt(void) {_ASM_BEGIN
+    sldt ax
+_ASM_END}
+
+_INLINEF void CpuSetLdt(IN i16u x) {_ASM_BEGIN
+       lldt x
+_ASM_END}
+
+_INLINEF i16u CpuGetTr(void) {_ASM_BEGIN
+    str ax
+_ASM_END}
+
+_INLINEF void CpuSetTr(IN i16u x) {_ASM_BEGIN
+       ltr x
+_ASM_END}
+
+_INLINEF void CpuSetCr2(i32u x) {_ASM_BEGIN
+    mov eax, x
+    mov cr2, eax
+_ASM_END}
+
+_INLINEF i16u CpuGetSs(void) {_ASM_BEGIN
+    mov ax, ss
+_ASM_END}
+
+_INLINEF void CpuSetSs(i16u x) {_ASM_BEGIN
+       mov ax, x
+       mov ss, ax
+_ASM_END}
+
+_INLINEF i16u CpuGetFs(void)  {_ASM_BEGIN
+    mov ax, fs
+_ASM_END}
+
+_INLINEF void CpuSetFs(i16u x) {_ASM_BEGIN
+       mov ax, x
+       mov fs, ax
+_ASM_END}
+
+_INLINEF i16u CpuGetDs(void) {_ASM_BEGIN
+       mov ax, ds
+_ASM_END}
+
+_INLINEF void CpuSetDs(i16u x) {_ASM_BEGIN
+       mov ax, x
+       mov ds, ax
+_ASM_END}
+
+_INLINEF i16u CpuGetEs(void) {_ASM_BEGIN
+       mov ax, es;
+_ASM_END}
+
+_INLINEF void CpuSetEs(i16u x) {_ASM_BEGIN
+       mov ax, x
+       mov es, ax
+_ASM_END}
+
+_INLINEF i16u CpuGetGs(void) {_ASM_BEGIN
+       mov ax, gs
+_ASM_END}
+
+_INLINEF void CpuSetGs(i16u x) {_ASM_BEGIN
+       mov ax, x
+    mov gs, ax
+_ASM_END}
+
+_INLINEF void CpuGetEbp(void) {_ASM_BEGIN
+       mov eax, ebp
+_ASM_END}
+#define CpuGetEbp_m(x) _ASM mov x, ebp
+
+_INLINEF void CpuSetEbp(i32 x) {_ASM_BEGIN
+       mov ebp, x
+_ASM_END}
+
+#define CpuIret() _ASM iret
+
+_INLINEF void CpuTrapReturn(IN iptru Stack) {_ASM_BEGIN
+       mov esp, Stack
+       popa
+       ret
+_ASM_END}
+
+// FPU 
+#define CpuFinit() _ASM finit
+#define CpuFninit() _ASM fninit
+#define CpuFnclex() _ASM fnclex
+_INLINEF void CpuFstcw(void *x) {_ASM_BEGIN
+       mov eax, x
+       fstcw [eax]
+_ASM_END}
+#define CpuFstcw_m(x) _ASM fstcw x
+_INLINEF void CpuFSetCw(i32 x) {_ASM_BEGIN
+       fldcw x
+_ASM_END}
+_INLINEF void CpuFnsave(void *x) {_ASM_BEGIN
+       mov eax, x
+       fnsave [eax]
+_ASM_END}
+#define CpuFnsave_m(x) _ASM fnsave x
+_INLINEF void CpuFrstor(void *x) {_ASM_BEGIN
+       mov eax, x
+    frstor [eax]
+_ASM_END}
+#define CpuFrstor_m(x) _ASM frstor x
+_INLINEF void CpuFxsave(void *x) {_ASM_BEGIN
+       mov eax, x
+       fxsave [eax]
+_ASM_END}
+#define CpuFxsave_m(x) _ASM fxsave x
+_INLINEF void CpuFxrstor(void *x) {_ASM_BEGIN
+       mov eax, x
+       fxrstor [eax]
+_ASM_END}
+#define CpuFxrstor(x) _ASM fxrstor x
+
+#define FPU_DOUBLE(var) \
+       double var; \
+       _ASM fstp var \
+       _ASM fwait
+#define FPU_DOUBLES(var1,var2) \
+       double var1,var2; \
+       _ASM fstp var1 \
+       _ASM fwait \
+       _ASM fstp var2 \
+       _ASM fwait
+

Propchange: branches/jcatena-branch/include/reactos/msc/i386/cpu_c.h
------------------------------------------------------------------------------
    svn:eol-style = native

Added: branches/jcatena-branch/include/reactos/msc/i386/msc.h
URL: 
http://svn.reactos.org/svn/reactos/branches/jcatena-branch/include/reactos/msc/i386/msc.h?rev=45264&view=auto
==============================================================================
--- branches/jcatena-branch/include/reactos/msc/i386/msc.h (added)
+++ branches/jcatena-branch/include/reactos/msc/i386/msc.h [iso-8859-1] Tue Jan 
26 12:50:40 2010
@@ -1,0 +1,20 @@
+#pragma once
+
+/*     msc.h
+       portability definitions for msc (microsof c or vc compilers)
+       20091216 jcatena
+       This shouldn't be necessary if code uses plaf.h macros instead of 
hardwired compiler specific directives
+*/
+
+#if defined(_MSC_VER)
+#if 1
+#if !defined(__cplusplus) 
+#define inline _INLINE
+#endif
+
+#define __inline__ _INLINE
+#define FORCEINLINE _INLINEF
+#define __attribute__(packed)
+
+#endif
+#endif // #if defined(_MSC_VER)

Propchange: branches/jcatena-branch/include/reactos/msc/i386/msc.h
------------------------------------------------------------------------------
    svn:eol-style = native

Added: branches/jcatena-branch/include/reactos/msc/i386/platf.h
URL: 
http://svn.reactos.org/svn/reactos/branches/jcatena-branch/include/reactos/msc/i386/platf.h?rev=45264&view=auto
==============================================================================
--- branches/jcatena-branch/include/reactos/msc/i386/platf.h (added)
+++ branches/jcatena-branch/include/reactos/msc/i386/platf.h [iso-8859-1] Tue 
Jan 26 12:50:40 2010
@@ -1,0 +1,203 @@
+#pragma once
+
+/* platf.h msvc i32
+platform dependent basic types and macros
+(c) Jose M. Catena Gomez, diwaves.com
+*/
+
+/* this must produce a compiler error */
+#define _ERR_UNSUPPORTED #error
+
+/* attribues */
+#define _CDECL __cdecl
+#define _THISCALL __thiscall
+#define _STDCALL __stdcall
+#define _FASTCALL __fastcall
+#define _CLRCALL __clrcall
+#define _INLINE __inline
+#define _INLINEF __forceinline
+#define _NAKED __declspec(naked)
+#define _INTERRUPT _ERR_UNSUPPORTED
+#define _SAVEREGS _ERR_UNSUPPORTED
+#define _LOADDS _ERR_UNSUPPORTED
+#define _DLLEXPORT __declspec(dllexport)
+#define _DLLIMPORT __declspec(dllimport)
+#define _ALIGN(x) __declspec(align(x))
+
+#define _PACKN(x) __pragma(pack(push, x))
+#define _PACK_POP __pragma(pack(pop))
+#define _RESTRICT __restrict
+#define _ONCE __pragma(once)
+#define _OPTIMIZE_DFT __pragma(optimize("", on))
+#define _OPTIMIZE_OFF_ALL __pragma(optimize("", off))
+#define _OPTIMIZE_OFF_GLOBAL __pragma(optimize("g", off))
+#define _OPTIMIZE_OFF_STKF __pragma(optimize("y", off))
+#define _INTRINSIC(x, subst) __pragma(intrinsic(x))
+#define _NOINTRINSIC(x) __pragma(function(x))
+#define _NOWARN_PUSH __pragma(warning(push))
+#define _NOWARN_POP __pragma(warning(pop))
+#define _NOWARN_MSC(x) __pragma(warning(disable: x))
+#define _NOWARN_GNUC(x)
+
+#define _SECTION(x) __declspec(allocate(x))
+#define _SECTION_FN(sectn, fn) __pragma(alloc_text(sectn, fn))
+#define _SECTION_FND(sectn)
+#define _SECTION_CODE(x) __pragma(code_seg(push, x))
+#define _SECTION_CODE_END __pragma(code_seg(pop))
+#define _SECTION_DATA(x) __pragma(data_seg(push, x))
+#define _SECTION_DATA_END __pragma(data_seg(pop))
+#define _SECTION_BSS(x) __pragma(bss_seg(push, x))
+#define _SECTION_BSS_END __pragma(bss_seg(pop))
+#define _SECTION_CONST(x) __pragma(const_seg(push, x))
+#define _SECTION_CONST_END __pragma(const_seg(pop))
+
+#define _ASM_BEGIN __asm {
+#define _ASM_END }
+#define _ASM __asm
+
+#define IN
+#define OUT
+
+/* ptr size */
+#define PTRSIZ 4
+#define PTRSIZMIN 4
+#define PTRSIZMAX 4
+#define _NEAR
+#define _FAR
+#define _FARH
+#define _BASED
+#define _BASED1 __based
+#define _SEGMENT _UNSUPPORTED
+#define _SEGNAME _UNSUPPORTED
+
+/*************************************************************************
+basic types
+*************************************************************************/
+typedef void *pvoid, _NEAR *npvoid, _FAR *lpvoid, _FARH *hpvoid;
+
+/* chars */
+#define CHRSIZMIN      1
+#define CHRSIZMAX      2
+#define CHRSIZ         1
+#define CHRWSIZ                2
+#define CHRXSIZ                2
+#define CHRSIGN                1
+#define CHRWSIGN       0
+
+typedef char chr8, *pchr8p, _NEAR *npchr8, _FAR *lpchr8, _FARH *hpchr8;
+typedef signed char chr8s, *pchr8s, _NEAR *npchr8s, _FAR *lpchr8s, _FARH 
*hpchr8s;
+typedef unsigned char chr8u, *pchr8u, _NEAR *npchr8u, _FAR *lpchr8u, _FARH 
*hpchr8u;
+
+/* chars unicode 16 bits */
+#ifdef _NATIVE_WCHAR_T_DEFINED
+typedef wchar_t chr16;
+typedef signed short chr16s;
+typedef unsigned short chr16u;
+#else
+typedef unsigned short chr16;
+typedef signed short chr16s;
+typedef unsigned short chr16u;
+#endif
+
+typedef chr16 *pchr16, _NEAR *npchr16, _FAR *lpchr16, _FARH *hpchr16;
+typedef chr16s *pchr16s, _NEAR *npchr16s, _FAR *lpchr16s, _FARH *hpchr16s;
+typedef chr16u *pchr16u, _NEAR *npchr16u, _FAR *lpchr16u, _FARH *hpchr16u;
+
+#ifdef _UNICODE
+typedef chr16 chr;
+typedef chr16s chrs;
+typedef chr16u chru;
+#else
+typedef chr8 chr;
+typedef chr8s chrs;
+typedef chr8u chru;
+#endif
+
+typedef chr *pchr, _NEAR *npchr, _FAR *lpchr, _FARH hpchr;
+typedef chrs *pchrs, _NEAR *npchrs, _FAR *lpchrs, _FARH hpchrs;
+typedef chru *pchru, _NEAR *npchru, _FAR *lpchru, _FARH hpchru;
+
+// string literal macros 
+// double definitions here are necessary because preprocessor behavior
+#define _T16(x) L ## x
+#define T16(x) _T16(x)
+#define _T8(x) x
+#define T8(x) _T8(x)
+#ifdef _UNICODE
+#define TX(x) _T16(x)
+#else
+#define TX(x) _T8(x)
+#endif
+// stringfy
+#define _sfy(x) #x
+#define sfy(x) _sfy(x)
+
+/* integers */
+#define INTSIZMIN   1
+#define INTSIZMAX   8
+#define INTSIZ     4
+#define INTSMIN            -2147483648
+#define INTSMAX            0x7FFFFFFF
+
+typedef int *pint, _NEAR *npint, _FAR *lpint, _FARH *hpint;
+typedef signed int ints, *pints, _NEAR *npints, _FAR *lpints, _FARH *hpints;
+typedef unsigned int intu, *pintu, _NEAR *npintu, _FAR *lpintu, _FARH *hpintu;
+
+typedef __int8 i8, *pi8, _NEAR *npi8, _FAR *lpi8, _FARH *hpi8;
+typedef signed __int8 i8s, *pi8s, _NEAR *npi8s, _FAR *lpi8s, _FARH *hpi8s;
+typedef unsigned __int8 i8u, *pi8u, _NEAR *npi8u, _FAR *lpi8u, _FARH *hpi8u;
+
+typedef short i16, *pi16, _NEAR *npi16, _FAR *lpi16, _FARH *hpi16;
+typedef signed short i16s, *pi16s, _NEAR *npi16s, _FAR *lpi16s, _FARH *hpi16s;
+typedef unsigned short i16u, *pi16u, _NEAR *npi16u, _FAR *lpi16u, _FARH 
*hpi16u;
+
+typedef long i32, *pi32, _NEAR *npi32, _FAR *lpi32, _FARH *hpi32;
+typedef signed long i32s, *pi32s, _NEAR *npi32s, _FAR *lpi32s, _FARH *hpi32s;
+typedef unsigned long i32u, *pi32u, _NEAR *npi32u, _FAR *lpi32u, _FARH 
*hpi32u;                // = unsigned long DWORD
+
+typedef __int64 i64, *i64p, _NEAR *npi64, _FAR *lpi64, _FARH *hpi64;
+typedef signed __int64 i64s, *pi64s, _NEAR *npi64s, _FAR *lpi64s, _FARH 
*hpi64s;
+typedef unsigned __int64 i64u, *pi64u, _NEAR *npi64u, _FAR *lpi64u, _FARH 
*hpi64u;
+
+typedef union {i64 x; struct {i32u l; i32 h;};} i64x, *pi64x, _NEAR *npi64x, 
_FAR *lpi64x, _FARH *hpi64x;
+typedef union {i64s x; struct {i32u l; i32s h;};} i64xs, *pi64xs, _NEAR 
*npi64xs, _FAR *lpi64xs, _FARH *hpi64xs;
+typedef union {i64u x; struct {i32u l; i32u h;};} i64xu, *pi64xu, _NEAR 
*npi64xu, _FAR *lpi64xu, _FARH *hpi64xu;
+
+typedef struct {i64u l; i64 h;} i128, *pi128, _NEAR *npi128, _FAR *lpi128, 
_FARH *hpi128;
+typedef struct {i64u l; i64s h;} i128s, *pi128s, _NEAR *npi128s, _FAR 
*lpi128s, _FARH *hpi128s;
+typedef struct {i64u l; i64u h;} i128u, *pi128u, _NEAR *npi128u, _FAR 
*lpi128u, _FARH *hpi128u;
+
+// this int must be the same size of a pointer
+typedef long iptr, *piptr, _NEAR *npiptr, _FAR *lpiptr, _FARH *hpiptr;
+typedef signed long iptrs, *piptrs, _NEAR *npiptrs, _FAR *lpiptrs, _FARH 
*hpiptrs;
+typedef unsigned long iptru, *piptru, _NEAR *npiptru, _FAR *lpiptru, _FARH 
*hpiptru;
+
+/* floats */
+typedef float f32, *pf32, _NEAR *npf32, _FAR *lpf32, _FARH *hpf32;
+typedef double f64, *pf64p, _NEAR *npf64, _FAR *lpf64, _FARH *hpf64;
+typedef struct {i64u l; i64u h;} f128, *pf128, _NEAR *npf128, _FAR *lpf128, 
_FARH *hpf128;
+
+/* size */
+#define SIZTSIZ 4
+#define SIZTMAX 0xFFFFFFFF
+typedef i32u sizt, *psizt, _NEAR *npsizt, _FAR *lpsizt, _FARH *hpsizt;
+
+/*************************************************************************
+
+*************************************************************************/
+// debug 
+#if _DEBUG
+#define dbgref TX("(") TX(__FILE__) TX(":") TX(sfy(__LINE__)) TX(":") 
TX(__FUNCTION__) TX(")")
+#else
+#define dbgref 0
+#endif
+
+pvoid _ReturnAddress(void);
+#pragma intrinsic(_ReturnAddress)
+#define ReturnAddress _ReturnAddress
+#define _ReturnAddressn(x) _ReturnAddress()
+#define ReturnAddressn _ReturnAddressn
+#define __builtin_expect(x, v) (x)
+
+#include <msc.h>       // additional compatibility defs that would not be 
needed if code uses macros defined here instead of compiler specific directives
+

Propchange: branches/jcatena-branch/include/reactos/msc/i386/platf.h
------------------------------------------------------------------------------
    svn:eol-style = native

Added: branches/jcatena-branch/include/reactos/osver.h
URL: 
http://svn.reactos.org/svn/reactos/branches/jcatena-branch/include/reactos/osver.h?rev=45264&view=auto
==============================================================================
--- branches/jcatena-branch/include/reactos/osver.h (added)
+++ branches/jcatena-branch/include/reactos/osver.h [iso-8859-1] Tue Jan 26 
12:50:40 2010
@@ -1,0 +1,26 @@
+#pragma once
+
+// minimum supported platforms
+// see sdkddkver.h
+
+#ifndef _WIN32_WINNT
+#define _WIN32_WINNT 0x0502
+#endif
+
+// wdk
+// LATEST_NTDDI_VERSION
+#ifndef NTDDI_VERSION
+#define NTDDI_VERSION 0x05020000
+#endif
+
+#ifndef _WIN32_IE
+#define _WIN32_IE 0x600
+#endif
+
+#ifndef WINVER
+#define WINVER _WIN32_WINNT
+#endif
+
+#ifndef _WIN32_WINDOWS
+#define _WIN32_WINDOWS _WIN32_WINNT
+#endif

Propchange: branches/jcatena-branch/include/reactos/osver.h
------------------------------------------------------------------------------
    svn:eol-style = native


Reply via email to