00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef AVFORMAT_OS_SUPPORT_H
00023 #define AVFORMAT_OS_SUPPORT_H
00024
00030 #include "config.h"
00031
00032 #include <sys/stat.h>
00033
00034 #if defined(__MINGW32__) && !defined(__MINGW32CE__)
00035 # include <fcntl.h>
00036 # ifdef lseek
00037 # undef lseek
00038 # endif
00039 # define lseek(f,p,w) _lseeki64((f), (p), (w))
00040 # ifdef stat
00041 # undef stat
00042 # endif
00043 # define stat _stati64
00044 # ifdef fstat
00045 # undef fstat
00046 # endif
00047 # define fstat(f,s) _fstati64((f), (s))
00048 #endif
00049
00050 #ifdef _WIN32
00051 #if HAVE_DIRECT_H
00052 #include <direct.h>
00053 #elif HAVE_IO_H
00054 #include <io.h>
00055 #endif
00056 #define mkdir(a, b) _mkdir(a)
00057 #else
00058 #include <sys/stat.h>
00059 #endif
00060
00061 static inline int is_dos_path(const char *path)
00062 {
00063 #if HAVE_DOS_PATHS
00064 if (path[0] && path[1] == ':')
00065 return 1;
00066 #endif
00067 return 0;
00068 }
00069
00070 #if defined(__OS2__) || defined(__Plan9__)
00071 #define SHUT_RD 0
00072 #define SHUT_WR 1
00073 #define SHUT_RDWR 2
00074 #endif
00075
00076 #if defined(_WIN32)
00077 #define SHUT_RD SD_RECEIVE
00078 #define SHUT_WR SD_SEND
00079 #define SHUT_RDWR SD_BOTH
00080
00081 #ifndef S_IRUSR
00082 #define S_IRUSR S_IREAD
00083 #endif
00084 #ifndef S_IWUSR
00085 #define S_IWUSR S_IWRITE
00086 #endif
00087 #endif
00088
00089 #if defined(_WIN32) && !defined(__MINGW32CE__)
00090 int ff_win32_open(const char *filename, int oflag, int pmode);
00091 #define open ff_win32_open
00092 #endif
00093
00094 #if CONFIG_NETWORK
00095 #if !HAVE_SOCKLEN_T
00096 typedef int socklen_t;
00097 #endif
00098
00099
00100 #if !HAVE_CLOSESOCKET
00101 #define closesocket close
00102 #endif
00103
00104 #if !HAVE_POLL_H
00105 typedef unsigned long nfds_t;
00106
00107 #if HAVE_WINSOCK2_H
00108 #include <winsock2.h>
00109 #endif
00110 #if !HAVE_STRUCT_POLLFD
00111 struct pollfd {
00112 int fd;
00113 short events;
00114 short revents;
00115 };
00116
00117
00118 #define POLLIN 0x0001
00119 #define POLLOUT 0x0002
00120 #define POLLRDNORM POLLIN
00121 #define POLLWRNORM POLLOUT
00122 #define POLLRDBAND 0x0008
00123 #define POLLWRBAND 0x0010
00124 #define POLLPRI 0x0020
00125
00126
00127 #define POLLERR 0x0004
00128 #define POLLHUP 0x0080
00129 #define POLLNVAL 0x1000
00130 #endif
00131
00132
00133 int ff_poll(struct pollfd *fds, nfds_t numfds, int timeout);
00134 #define poll ff_poll
00135 #endif
00136 #endif
00137
00138 #endif