diff --git a/icd/common/icd-format.h b/icd/common/icd-format.h
index 963eb61..1292577 100644
--- a/icd/common/icd-format.h
+++ b/icd/common/icd-format.h
@@ -99,7 +99,7 @@
 
 size_t icd_format_get_size(XGL_FORMAT format);
 
-XGL_UINT icd_format_get_channel_count(XGL_FORMAT format);
+unsigned int icd_format_get_channel_count(XGL_FORMAT format);
 
 void icd_format_get_raw_value(XGL_FORMAT format,
                               const XGL_UINT32 color[4],
diff --git a/icd/intel/state.c b/icd/intel/state.c
index 232c70b..c022e26 100644
--- a/icd/intel/state.c
+++ b/icd/intel/state.c
@@ -112,7 +112,7 @@
                   const XGL_RASTER_STATE_CREATE_INFO *info)
 {
     switch (info->fillMode) {
-    case XFL_FILL_POINTS:
+    case XGL_FILL_POINTS:
         state->cmd_sf_fill |= GEN7_SF_DW1_FRONTFACE_POINT |
                               GEN7_SF_DW1_BACKFACE_POINT;
         break;
diff --git a/include/xgl.h b/include/xgl.h
index d48a0f5..12cd4b8 100644
--- a/include/xgl.h
+++ b/include/xgl.h
@@ -48,44 +48,20 @@
 #ifndef __XGL_H__
 #define __XGL_H__
 
-#include <stddef.h>
-#include <stdint.h>
-
 #define XGL_MAKE_VERSION(major, minor, patch) \
     ((major << 22) | (minor << 12) | patch)
 
+#include "xglPlatform.h"
+
 // XGL API version supported by this file
 #define XGL_API_VERSION XGL_MAKE_VERSION(0, 22, 1)
 
-#ifndef XGLAPI
-   #define XGLAPI
-#endif
-
 #ifdef __cplusplus
 extern "C"
 {
 #endif // __cplusplus
 
 /*
- * Datatypes
- */
-typedef uint32_t        XGL_BOOL;
-typedef void            XGL_VOID;
-typedef char            XGL_CHAR;       /* 1-byte signed */
-typedef int32_t         XGL_INT;        /* 4-byte signed */
-typedef int32_t         XGL_INT32;      /* 4-byte signed */
-typedef uint32_t        XGL_UINT;       /* 4-byte unsigned */
-typedef uint32_t        XGL_UINT32;     /* 4-byte unsigned */
-typedef uint64_t        XGL_UINT64;     /* 8-byte unsigned */
-typedef size_t          XGL_SIZE;       /* 4-byte unsigned */
-typedef uint64_t        XGL_GPU_SIZE;   /* 4-byte unsigned */
-typedef uint32_t        XGL_FLAGS;      /* 4-byte unsigned */
-typedef uint32_t        XGL_SAMPLE_MASK; /* 4-byte unsigned */
-typedef uint8_t         XGL_UINT8;      /* 1-byte unsigned */
-typedef float           XGL_FLOAT;      /* single precision float */
-typedef double          XGL_DOUBLE;       /* double precision float in [0,1] */
-
-/*
 ***************************************************************************************************
 *   Core XGL API
 ***************************************************************************************************
@@ -441,12 +417,12 @@
 
 typedef enum _XGL_FILL_MODE
 {
-    XFL_FILL_POINTS                                         = 0x00000000,
+    XGL_FILL_POINTS                                         = 0x00000000,
     XGL_FILL_WIREFRAME                                      = 0x00000001,
     XGL_FILL_SOLID                                          = 0x00000002,
 
-    XGL_FILL_MODE_BEGIN_RANGE                               = XGL_FILL_SOLID,
-    XGL_FILL_MODE_END_RANGE                                 = XFL_FILL_POINTS,
+    XGL_FILL_MODE_BEGIN_RANGE                               = XGL_FILL_POINTS,
+    XGL_FILL_MODE_END_RANGE                                 = XGL_FILL_SOLID,
     XGL_NUM_FILL_MODE                                       = (XGL_FILL_MODE_END_RANGE - XGL_FILL_MODE_BEGIN_RANGE + 1),
     XGL_MAX_ENUM(_XGL_FILL_MODE)
 } XGL_FILL_MODE;
@@ -2507,7 +2483,7 @@
 #endif /* XGL_PROTOTYPES */
 
 #ifdef __cplusplus
-} // extern "C"
+}; // extern "C"
 #endif // __cplusplus
 
 #endif // __XGL_H__
diff --git a/include/xglPlatform.h b/include/xglPlatform.h
new file mode 100644
index 0000000..3ec3f9f
--- /dev/null
+++ b/include/xglPlatform.h
@@ -0,0 +1,113 @@
+//
+// File: xglPlatform.h
+//
+// Copyright 2014 ADVANCED MICRO DEVICES, INC.  All Rights Reserved.
+//
+// AMD is granting you permission to use this software for reference
+// purposes only and not for use in any software product.
+//
+// You agree that you will not reverse engineer or decompile the Materials,
+// in whole or in part, except as allowed by applicable law.
+//
+// WARRANTY DISCLAIMER: THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF
+// ANY KIND.  AMD DISCLAIMS ALL WARRANTIES, EXPRESS, IMPLIED, OR STATUTORY,
+// INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, TITLE, NON-INFRINGEMENT, THAT THE SOFTWARE
+// WILL RUN UNINTERRUPTED OR ERROR-FREE OR WARRANTIES ARISING FROM CUSTOM OF
+// TRADE OR COURSE OF USAGE.  THE ENTIRE RISK ASSOCIATED WITH THE USE OF THE
+// SOFTWARE IS ASSUMED BY YOU.
+// Some jurisdictions do not allow the exclusion of implied warranties, so
+// the above exclusion may not apply to You.
+//
+// LIMITATION OF LIABILITY AND INDEMNIFICATION:  AMD AND ITS LICENSORS WILL
+// NOT, UNDER ANY CIRCUMSTANCES BE LIABLE TO YOU FOR ANY PUNITIVE, DIRECT,
+// INCIDENTAL, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING FROM USE OF
+// THE SOFTWARE OR THIS AGREEMENT EVEN IF AMD AND ITS LICENSORS HAVE BEEN
+// ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+// In no event shall AMD's total liability to You for all damages, losses,
+// and causes of action (whether in contract, tort (including negligence) or
+// otherwise) exceed the amount of $100 USD.  You agree to defend, indemnify
+// and hold harmless AMD and its licensors, and any of their directors,
+// officers, employees, affiliates or agents from and against any and all
+// loss, damage, liability and other expenses (including reasonable attorneys'
+// fees), resulting from Your use of the Software or violation of the terms and
+// conditions of this Agreement.
+//
+// U.S. GOVERNMENT RESTRICTED RIGHTS: The Materials are provided with "RESTRICTED
+// RIGHTS." Use, duplication, or disclosure by the Government is subject to the
+// restrictions as set forth in FAR 52.227-14 and DFAR252.227-7013, et seq., or
+// its successor.  Use of the Materials by the Government constitutes
+// acknowledgement of AMD's proprietary rights in them.
+//
+// EXPORT RESTRICTIONS: The Materials may be subject to export restrictions as
+// stated in the Software License Agreement.
+//
+
+
+#ifndef __XGLPLATFORM_H__
+#define __XGLPLATFORM_H__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif // __cplusplus
+
+/*
+***************************************************************************************************
+*   Platform-specific directives and type declarations
+***************************************************************************************************
+*/
+
+#if defined(_WIN32)
+    // On Windows, XGLAPI should equate to the __stdcall convention
+    #define XGLAPI   __stdcall
+#elif defined(__GNUC__)
+    // On other platforms using GCC, XGLAPI stays undefined
+    #define XGLAPI
+#else
+    // Unsupported Platform!
+    #error "Unsupported OS Platform detected!"
+#endif
+
+#if defined(__GNUC__)
+    #include <stddef.h>
+    #include <stdint.h>
+#endif
+
+#if defined(_WIN32)
+    // Windows platform
+    typedef unsigned __int8  XGL_UINT8;
+    typedef signed   __int32 XGL_INT32;
+    typedef unsigned __int32 XGL_UINT32;
+    typedef signed   __int64 XGL_INT64;
+    typedef unsigned __int64 XGL_UINT64;
+#elif defined(__GNUC__)
+    // Other platforms
+    typedef uint8_t          XGL_UINT8;
+    typedef int32_t          XGL_INT32;
+    typedef uint32_t         XGL_UINT32;
+    typedef int64_t          XGL_INT64;
+    typedef uint64_t         XGL_UINT64;
+#endif
+
+typedef size_t     XGL_SIZE;
+typedef XGL_UINT64 XGL_GPU_SIZE;
+typedef XGL_UINT8  XGL_BYTE;
+typedef XGL_INT32  XGL_INT;
+typedef XGL_UINT32 XGL_UINT;
+typedef char       XGL_CHAR;
+typedef float      XGL_FLOAT;
+typedef double     XGL_DOUBLE;
+typedef XGL_UINT32 XGL_BOOL;
+typedef void       XGL_VOID;
+
+typedef XGL_UINT32 XGL_SAMPLE_MASK;
+typedef XGL_UINT32 XGL_FLAGS;
+typedef XGL_INT32  XGL_ENUM;
+// typedef XGL_INT32  XGL_RESULT; // TODO: Resolve 13314.
+
+#ifdef __cplusplus
+}; // extern "C"
+#endif // __cplusplus
+
+#endif // __XGLPLATFORM_H__
