new build system (taken from Trigger Rally -- tnx, boys!)
[syren.git] / src / syren_os.h
blob4e9836c0625cf5fe778367eafc1375b59f3b98b4
1 /*
2 Syren -- a lightweight downloader for Linux/BSD/Win/MacOSX
3 inspired by Axel Copyright 2001-2002 Wilmer van der Gaast
4 version 0.0.6 (atomic alien)
5 coded by Ketmar // Avalon Group
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2 of the License, or
10 (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License with
18 the Debian GNU/Linux distribution in file /usr/doc/copyright/GPL;
19 if not, write to the Free Software Foundation, Inc., 59 Temple Place,
20 Suite 330, Boston, MA 02111-1307 USA
23 Syren os-specific functions
25 #ifndef _SYREN_OS_H
26 #define _SYREN_OS_H
28 #include "syren_common.h"
31 #ifdef WINDOZE
34 #include <windows.h>
35 /*#include <winnt.h>*/
36 /*#include <windef.h>*/
37 /*#include <winbase.h>*/
38 /*#include <winuser.h>*/
39 #include <winsock.h>
42 #else
45 /* *alloc() */
46 #include <stdlib.h>
48 /* close() */
49 #include <unistd.h>
51 /* socket support */
52 #include <sys/types.h>
53 #include <sys/socket.h>
55 /* inet_aton(), etc */
56 #include <netinet/in.h>
57 #include <arpa/inet.h>
59 /* gethostbyname() */
60 #include <netdb.h>
63 /* SyGetIFIP() support */
64 /* ioctl() %-) */
65 #include <sys/ioctl.h>
67 /* IFNAMSIZ, struct ifreq */
68 #include <net/if.h>
70 /* gettimeofday() */
71 #include <sys/time.h>
73 /* open(), etc */
74 /*#include <sys/types.h>*/
75 #include <sys/stat.h>
76 #include <fcntl.h>
78 /* signal() */
79 /*#include <signal.h>*/
81 /* not used, but fine to have %-) */
82 #include <limits.h>
83 #include <errno.h>
87 seems to be unused
88 #include <netinet/in_systm.h>
89 #include <netinet/in.h>
90 #include <netinet/ip.h>
91 #include <arpa/inet.h>
94 #endif
97 #ifdef SYOPT_ALLOW_HTTPS
98 #include "xyssl/ssl.h"
99 #include "xyssl/havege.h"
100 #endif
103 #ifdef WINDOZE
104 /* fuckin' msvcrt! */
105 #define strcasecmp(s0, s1) lstrcmpi((s0), (s1))
106 char *strcasestr (const char *str, const char *subs);
107 #endif
110 double SyGetTimeD (void);
111 #ifdef WINDOZE
112 #define SySleep(n) Sleep((n)*1000)
113 #else
114 #define SySleep(n) sleep(n)
115 #endif
118 #ifdef SY_INCLUDE_FILE_IO
119 #define SY_FILE_DEFMODE 0644
120 typedef enum {
121 SY_FMODE_READ,
122 SY_FMODE_WRITE,
123 } TSyFileMode;
127 #ifdef __linux
128 #define SY_LSEEK lseek64
129 #else
130 #define SY_LSEEK lseek
131 #endif
133 #define SY_LSEEK lseek
136 #ifdef WINDOZE
137 #define SyCloseFile(fd) CloseHandle((HANDLE)(fd))
138 #else
139 #define SyCloseFile(fd) close(fd)
140 #endif
142 TSyResult SyDeleteFile (const char *fname);
143 int SyOpenFile (const char *fname, TSyFileMode mode, TSyBool mustCreate);
144 TSyResult SyWriteFile (int fd, const void *buf, int count);
145 TSyResult SyReadFile (int fd, void *buf, int count);
146 TSyResult SySeekFile (int fd, int64_t offset);
147 int64_t SyFileSize (int fd);
148 #endif
151 #ifdef WINDOZE
152 #define SySocketClose closesocket
153 #else
154 #define SySocketClose close
155 #endif
157 TSyResult SySocketInit (void);
158 void SySocketShutdown (void);
161 #endif