]> git.proxmox.com Git - ceph.git/blob - ceph/src/fmt/test/posix-mock.h
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / fmt / test / posix-mock.h
1 // Formatting library for C++ - mocks of POSIX functions
2 //
3 // Copyright (c) 2012 - present, Victor Zverovich
4 // All rights reserved.
5 //
6 // For the license information refer to format.h.
7
8 #ifndef FMT_POSIX_TEST_H
9 #define FMT_POSIX_TEST_H
10
11 #include <errno.h>
12 #include <locale.h>
13 #include <stdio.h>
14 #ifdef __APPLE__
15 # include <xlocale.h>
16 #endif
17
18 #ifdef _WIN32
19 # include <windows.h>
20 #else
21 # include <sys/param.h> // for FreeBSD version
22 # include <sys/types.h> // for ssize_t
23 #endif
24
25 #ifndef _MSC_VER
26 struct stat;
27 #endif
28
29 namespace test {
30
31 #ifndef _MSC_VER
32 // Size type for read and write.
33 typedef size_t size_t;
34 typedef ssize_t ssize_t;
35 int open(const char* path, int oflag, int mode);
36 int fstat(int fd, struct stat* buf);
37 #else
38 typedef unsigned size_t;
39 typedef int ssize_t;
40 errno_t sopen_s(int* pfh, const char* filename, int oflag, int shflag,
41 int pmode);
42 #endif
43
44 #ifndef _WIN32
45 long sysconf(int name);
46 #else
47 DWORD GetFileSize(HANDLE hFile, LPDWORD lpFileSizeHigh);
48 #endif
49
50 int close(int fildes);
51
52 int dup(int fildes);
53 int dup2(int fildes, int fildes2);
54
55 FILE* fdopen(int fildes, const char* mode);
56
57 ssize_t read(int fildes, void* buf, size_t nbyte);
58 ssize_t write(int fildes, const void* buf, size_t nbyte);
59
60 #ifndef _WIN32
61 int pipe(int fildes[2]);
62 #else
63 int pipe(int* pfds, unsigned psize, int textmode);
64 #endif
65
66 FILE* fopen(const char* filename, const char* mode);
67 int fclose(FILE* stream);
68 int(fileno)(FILE* stream);
69
70 #if defined(FMT_LOCALE) && !defined(_WIN32)
71 locale_t newlocale(int category_mask, const char* locale, locale_t base);
72 #endif
73 } // namespace test
74
75 #define FMT_SYSTEM(call) test::call
76
77 #endif // FMT_POSIX_TEST_H