7 #ifndef STORAGE_LEVELDB_PORT_PORT_POSIX_H_
8 #define STORAGE_LEVELDB_PORT_PORT_POSIX_H_
10 #undef PLATFORM_IS_LITTLE_ENDIAN
11 #if defined(OS_MACOSX)
12 #include <machine/endian.h>
13 #if defined(__DARWIN_LITTLE_ENDIAN) && defined(__DARWIN_BYTE_ORDER)
14 #define PLATFORM_IS_LITTLE_ENDIAN \
15 (__DARWIN_BYTE_ORDER == __DARWIN_LITTLE_ENDIAN)
17 #elif defined(OS_SOLARIS)
18 #include <sys/isa_defs.h>
20 #define PLATFORM_IS_LITTLE_ENDIAN true
22 #define PLATFORM_IS_LITTLE_ENDIAN false
24 #elif defined(OS_FREEBSD)
25 #include <sys/types.h>
26 #include <sys/endian.h>
27 #define PLATFORM_IS_LITTLE_ENDIAN (_BYTE_ORDER == _LITTLE_ENDIAN)
28 #elif defined(OS_OPENBSD) || defined(OS_NETBSD) ||\
29 defined(OS_DRAGONFLYBSD)
30 #include <sys/types.h>
31 #include <sys/endian.h>
32 #elif defined(OS_HPUX)
33 #define PLATFORM_IS_LITTLE_ENDIAN false
34 #elif defined(OS_ANDROID)
39 #define PLATFORM_IS_LITTLE_ENDIAN (_BYTE_ORDER == _LITTLE_ENDIAN)
52 #ifndef PLATFORM_IS_LITTLE_ENDIAN
53 #define PLATFORM_IS_LITTLE_ENDIAN (__BYTE_ORDER == __LITTLE_ENDIAN)
56 #if defined(OS_MACOSX) || defined(OS_SOLARIS) || defined(OS_FREEBSD) ||\
57 defined(OS_NETBSD) || defined(OS_OPENBSD) || defined(OS_DRAGONFLYBSD) ||\
58 defined(OS_ANDROID) || defined(OS_HPUX)
60 #define fread_unlocked fread
61 #define fwrite_unlocked fwrite
62 #define fflush_unlocked fflush
65 #if defined(OS_FREEBSD) ||\
66 defined(OS_OPENBSD) || defined(OS_DRAGONFLYBSD)
68 #define fdatasync fsync
71 #if defined(OS_MACOSX)
72 #define fdatasync(fd) fcntl(fd, F_FULLFSYNC, 0)
75 #if defined(OS_ANDROID) && __ANDROID_API__ < 9
78 #define fdatasync fsync
85 #undef PLATFORM_IS_LITTLE_ENDIAN
120 #define LEVELDB_ONCE_INIT PTHREAD_ONCE_INIT
121 extern void InitOnce(OnceType* once,
void (*initializer)());
124 ::std::string* output) {
126 output->resize(snappy::MaxCompressedLength(length));
128 snappy::RawCompress(input, length, &(*output)[0], &outlen);
129 output->resize(outlen);
139 return snappy::GetUncompressedLength(input, length, result);
148 return snappy::RawUncompress(input, length, output);
161 #endif // STORAGE_LEVELDB_PORT_PORT_POSIX_H_
bool Snappy_Uncompress(const char *input_data, size_t input_length, char *output)
#define PLATFORM_IS_LITTLE_ENDIAN
bool Snappy_GetUncompressedLength(const char *input, size_t length, size_t *result)
bool Snappy_Compress(const char *input, size_t input_length, std::string *output)
void InitOnce(port::OnceType *, void(*initializer)())
bool GetHeapProfile(void(*func)(void *, const char *, int), void *arg)
void operator=(const Mutex &)