xbmc
PlatformDefs.h
1 /*
2  * Copyright (C) 2005-2018 Team Kodi
3  * This file is part of Kodi - https://kodi.tv
4  *
5  * SPDX-License-Identifier: GPL-2.0-or-later
6  * See LICENSES/README.md for more information.
7  */
8 
9 #pragma once
10 
11 #include <sys/types.h>
12 #include <sys/stat.h>
13 #include <fcntl.h>
14 #include <unistd.h>
15 #include <pthread.h>
16 #include <string.h>
17 #if defined(TARGET_DARWIN)
18 #include <stdio.h>
19 #include <sched.h>
20 #include <AvailabilityMacros.h>
21 #ifndef __STDC_FORMAT_MACROS
22  #define __STDC_FORMAT_MACROS
23 #endif
24 #include <sys/sysctl.h>
25 #include <mach/mach.h>
26 #if defined(TARGET_DARWIN_OSX)
27 #include <libkern/OSTypes.h>
28 #endif
29 
30 #elif defined(TARGET_FREEBSD)
31 #include <stdio.h>
32 #include <sys/sysctl.h>
33 #else
34 #include <sys/sysinfo.h>
35 #endif
36 
37 #include <sys/time.h>
38 #include <time.h>
39 
40 #if defined(__ppc__) || defined(__powerpc__)
41 #define PIXEL_ASHIFT 0
42 #define PIXEL_RSHIFT 8
43 #define PIXEL_GSHIFT 16
44 #define PIXEL_BSHIFT 24
45 #else
46 #define PIXEL_ASHIFT 24
47 #define PIXEL_RSHIFT 16
48 #define PIXEL_GSHIFT 8
49 #define PIXEL_BSHIFT 0
50 #endif
51 
52 #include <stdint.h>
53 
54 #define _fdopen fdopen
55 #define _vsnprintf vsnprintf
56 
57 #define __stdcall
58 #define __cdecl
59 #define WINAPI __stdcall
60 #undef APIENTRY
61 struct CXHandle; // forward declaration
62 typedef CXHandle* HANDLE;
63 
64 typedef void* HINSTANCE;
65 typedef void* HMODULE;
66 
67 typedef unsigned int DWORD;
68 #define INVALID_HANDLE_VALUE ((HANDLE)~0U)
69 
70 #define MAXWORD 0xffff
71 
72 typedef union _LARGE_INTEGER
73 {
74  struct {
75  DWORD LowPart;
76  int32_t HighPart;
77  } u;
78  long long QuadPart;
80 
81  typedef union _ULARGE_INTEGER {
82  struct {
83  DWORD LowPart;
84  DWORD HighPart;
85  } u;
86  unsigned long long QuadPart;
88 
89 // Network
90 #define SOCKET_ERROR (-1)
91 #define INVALID_SOCKET (~0)
92 #define closesocket(s) close(s)
93 #define ioctlsocket(s, f, v) ioctl(s, f, v)
94 #define WSAGetLastError() (errno)
95 #define WSAECONNRESET ECONNRESET
96 
97 typedef int SOCKET;
98 
99 // Thread
100 typedef int (*LPTHREAD_START_ROUTINE)(void *);
101 
102 // File
103 #define O_BINARY 0
104 #define _O_TRUNC O_TRUNC
105 #define _O_RDONLY O_RDONLY
106 #define _O_WRONLY O_WRONLY
107 
108 #if defined(TARGET_DARWIN) || defined(TARGET_FREEBSD)
109  #define stat64 stat
110  #define __stat64 stat
111  #define fstat64 fstat
112  typedef int64_t off64_t;
113  #if defined(TARGET_FREEBSD)
114  #define statfs64 statfs
115  #endif
116 #else
117  #define __stat64 stat64
118 #endif
119 
120 struct _stati64 {
121  dev_t st_dev;
122  ino_t st_ino;
123  unsigned short st_mode;
124  short st_nlink;
125  short st_uid;
126  short st_gid;
127  dev_t st_rdev;
128  long long st_size;
129  time_t _st_atime;
130  time_t _st_mtime;
131  time_t _st_ctime;
132 };
133 
134 #define FILE_BEGIN 0
135 #define FILE_CURRENT 1
136 #define FILE_END 2
137 
138 #define _S_IFREG S_IFREG
139 #define _S_IFDIR S_IFDIR
140 #define MAX_PATH PATH_MAX
141 
142 // CreateFile defines
143 #define FILE_FLAG_NO_BUFFERING 0x20000000
144 #define FILE_FLAG_DELETE_ON_CLOSE 0x04000000
145 
146 #define CREATE_NEW 1
147 #define CREATE_ALWAYS 2
148 #define OPEN_EXISTING 3
149 #define OPEN_ALWAYS 4
150 #define TRUNCATE_EXISTING 5
151 
152 #define FILE_READ_DATA ( 0x0001 )
153 #define FILE_WRITE_DATA ( 0x0002 )
Definition: XHandle.h:21
Definition: PlatformDefs.h:81
Definition: PlatformDefs.h:120
Definition: PlatformDefs.h:72