Tizen 2.0 Release
[external/libgnutls26.git] / lib / system.h
1 #ifndef SYSTEM_H
2 #define SYSTEM_H
3
4 #include <gnutls_int.h>
5
6 #ifndef _WIN32
7 #include <sys/uio.h>            /* for writev */
8 #endif
9
10 int system_errno (gnutls_transport_ptr);
11
12 #ifdef _WIN32
13 ssize_t system_write (gnutls_transport_ptr ptr, const void *data,
14                       size_t data_size);
15 #else
16 #define HAVE_WRITEV
17 ssize_t system_writev (gnutls_transport_ptr ptr, const giovec_t * iovec,
18                        int iovec_cnt);
19 #endif
20 ssize_t system_read (gnutls_transport_ptr ptr, void *data, size_t data_size);
21 ssize_t system_read_peek (gnutls_transport_ptr ptr, void *data,
22                           size_t data_size);
23
24 #ifdef _WIN32
25 #define HAVE_WIN32_LOCKS
26 #else
27 #ifdef HAVE_LIBPTHREAD
28 #define HAVE_PTHREAD_LOCKS
29 #else
30 #define HAVE_NO_LOCKS
31 #endif
32 #endif
33
34 int _gnutls_atfork (void (*prepare) (void), void (*parent) (void),
35                     void (*child) (void));
36 extern gnutls_time_func gnutls_time;
37
38 #endif /* SYSTEM_H */