Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / native_client_sdk / src / libraries / nacl_io / kernel_wrap.h
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef LIBRARIES_NACL_IO_KERNEL_WRAP_H_
6 #define LIBRARIES_NACL_IO_KERNEL_WRAP_H_
7
8 #include <signal.h>
9 #include <stdint.h>
10 #include <stdlib.h>
11 #include <sys/fcntl.h>
12 #include <sys/ioctl.h>
13 #include <sys/types.h>
14
15 #include "nacl_io/ossocket.h"
16 #include "nacl_io/ostypes.h"
17 #include "nacl_io/osutime.h"
18 #include "sdk_util/macros.h"
19
20 #if defined(__GLIBC__)
21 #include <sys/cdefs.h>
22 #define NOTHROW __THROW
23 #else
24 #define NOTHROW
25 #endif
26
27 #if defined(WIN32)
28 typedef int chmod_mode_t;
29 typedef int getcwd_size_t;
30 typedef int read_ssize_t;
31 typedef int write_ssize_t;
32 #define NAME(x) _##x
33 #else
34 typedef mode_t chmod_mode_t;
35 typedef size_t getcwd_size_t;
36 typedef ssize_t read_ssize_t;
37 typedef ssize_t write_ssize_t;
38 #define NAME(x) x
39 #endif
40
41 EXTERN_C_BEGIN
42
43 void kernel_wrap_init();
44 void kernel_wrap_uninit();
45
46 int NAME(access)(const char* path, int amode) NOTHROW;
47 int NAME(chdir)(const char* path) NOTHROW;
48 int NAME(chmod)(const char* path, chmod_mode_t mode) NOTHROW;
49 int chown(const char* path, uid_t owner, gid_t group) NOTHROW;
50 int NAME(close)(int fd);
51 int NAME(dup)(int oldfd) NOTHROW;
52 int NAME(dup2)(int oldfd, int newfd) NOTHROW;
53 int fchown(int fd, uid_t owner, gid_t group) NOTHROW;
54 #if defined(WIN32)
55 int _fstat32(int fd, struct _stat32* buf);
56 int _fstat64(int fd, struct _stat64* buf);
57 int _fstat32i64(int fd, struct _stat32i64* buf);
58 int _fstat64i32(int fd, struct _stat64i32* buf);
59 #elif !defined(__linux__)
60 struct stat;
61 extern int fstat(int fd, struct stat* buf) NOTHROW;
62 #endif
63 int fsync(int fd);
64 int ftruncate(int fd, off_t length) NOTHROW;
65 char* NAME(getcwd)(char* buf, getcwd_size_t size) NOTHROW;
66 char* getwd(char* buf) NOTHROW;
67 #if !defined(__BIONIC__)
68 int getdents(int fd, void* buf, unsigned int count) NOTHROW;
69 #else
70 struct dirent;
71 int getdents(unsigned int fd, struct dirent* buf, unsigned int count) NOTHROW;
72 #endif
73 int NAME(isatty)(int fd) NOTHROW;
74 int lchown(const char* path, uid_t owner, gid_t group) NOTHROW;
75 int link(const char* oldpath, const char* newpath) NOTHROW;
76 off_t NAME(lseek)(int fd, off_t offset, int whence) NOTHROW;
77 #if defined(WIN32)
78 int _mkdir(const char* path);
79 #else
80 int mkdir(const char* path, mode_t mode) NOTHROW;
81 #endif
82 void* mmap(void* addr, size_t length, int prot, int flags, int fd,
83            off_t offset) NOTHROW;
84 int mount(const char* source, const char* target, const char* filesystemtype,
85           unsigned long mountflags, const void* data) NOTHROW;
86 int munmap(void* addr, size_t length) NOTHROW;
87 int NAME(open)(const char* path, int oflag, ...);
88 read_ssize_t NAME(read)(int fd, void* buf, size_t nbyte);
89 int remove(const char* path) NOTHROW;
90 int NAME(rmdir)(const char* path) NOTHROW;
91 sighandler_t sigset(int sig, sighandler_t disp);
92 #if defined(WIN32)
93 int setenv(const char* name, const char* value, int overwrite);
94 int _stat32(const char* path, struct _stat32* buf);
95 int _stat64(const char* path, struct _stat64* buf);
96 int _stat32i64(const char* path, struct _stat32i64* buf);
97 int _stat64i32(const char* path, struct _stat64i32* buf);
98 #elif !defined(__linux__)
99 extern int stat(const char* path, struct stat* buf) NOTHROW;
100 #endif
101 int symlink(const char* oldpath, const char* newpath) NOTHROW;
102 int umount(const char* path) NOTHROW;
103 int NAME(unlink)(const char* path) NOTHROW;
104 int utime(const char* filename, const struct utimbuf* times);
105 read_ssize_t NAME(write)(int fd, const void* buf, size_t nbyte);
106
107 #ifdef PROVIDES_SOCKET_API
108 // Socket Functions
109 int accept(int fd, struct sockaddr* addr, socklen_t* len);
110 int bind(int fd, const struct sockaddr* addr, socklen_t len);
111 int connect(int fd, const struct sockaddr* addr, socklen_t len);
112 struct hostent* gethostbyname(const char* name);
113 int getpeername(int fd, struct sockaddr* addr, socklen_t* len);
114 int getsockname(int fd, struct sockaddr* addr, socklen_t* len);
115 int getsockopt(int fd, int lvl, int optname, void* optval, socklen_t* len);
116 int listen(int fd, int backlog);
117 ssize_t recv(int fd, void* buf, size_t len, int flags);
118 ssize_t recvfrom(int fd, void* buf, size_t len, int flags,
119                  struct sockaddr* addr, socklen_t* addrlen);
120 ssize_t recvmsg(int fd, struct msghdr* msg, int flags);
121 ssize_t send(int fd, const void* buf, size_t len, int flags);
122 ssize_t sendto(int fd, const void* buf, size_t len, int flags,
123                const struct sockaddr* addr, socklen_t addrlen);
124 ssize_t sendmsg(int fd, const struct msghdr* msg, int flags);
125 int setsockopt(int fd, int lvl, int optname, const void* optval,
126                socklen_t len);
127 int shutdown(int fd, int how);
128 int socket(int domain, int type, int protocol);
129 int socketpair(int domain, int type, int protocl, int* sv);
130 #endif  // PROVIDES_SOCKET_API
131
132 EXTERN_C_END
133
134 #endif  // LIBRARIES_NACL_IO_KERNEL_WRAP_H_