127 lines
3.1 KiB
C
127 lines
3.1 KiB
C
|
|
// Copyright 2020 The Android Open Source Project
|
||
|
|
//
|
||
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||
|
|
// you may not use this file except in compliance with the License.
|
||
|
|
// You may obtain a copy of the License at
|
||
|
|
//
|
||
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||
|
|
//
|
||
|
|
// Unless required by applicable law or agreed to in writing, software
|
||
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
|
|
// See the License for the specific language governing permissions and
|
||
|
|
// limitations under the License.
|
||
|
|
|
||
|
|
#pragma once
|
||
|
|
|
||
|
|
#define MSVC_POSIX
|
||
|
|
// windows.h must come before any of these files, or bad things will happen
|
||
|
|
#include <windows.h>
|
||
|
|
|
||
|
|
#include <direct.h>
|
||
|
|
#include <ehstorioctl.h>
|
||
|
|
#include <fcntl.h>
|
||
|
|
#include <io.h>
|
||
|
|
#include <process.h>
|
||
|
|
#include <stdint.h>
|
||
|
|
#include <sys/stat.h>
|
||
|
|
#include <time.h>
|
||
|
|
#include <winsock2.h>
|
||
|
|
//#include <basetsd.h>
|
||
|
|
|
||
|
|
// From <unistd.h>
|
||
|
|
typedef SSIZE_T ssize_t;
|
||
|
|
typedef int mode_t;
|
||
|
|
#ifdef _WIN64
|
||
|
|
typedef int64_t pid_t;
|
||
|
|
#else
|
||
|
|
typedef int pid_t;
|
||
|
|
#endif
|
||
|
|
#define STDIN_FILENO _fileno(stdin)
|
||
|
|
#define STDOUT_FILENO _fileno(stdout)
|
||
|
|
#define STDERR_FILENO _fileno(stderr)
|
||
|
|
#define lseek(a, b, c) _lseek(a, b, c)
|
||
|
|
#define lseek64 _lseeki64
|
||
|
|
|
||
|
|
// Need <dirent.h>
|
||
|
|
|
||
|
|
// Define for convenience only in mingw. This is
|
||
|
|
// convenient for the _access function in Windows.
|
||
|
|
#define F_OK 0 /* Check for file existence */
|
||
|
|
#define X_OK 1 /* Check for execute permission (not supported in Windows) */
|
||
|
|
#define W_OK 2 /* Check for write permission */
|
||
|
|
#define R_OK 4 /* Check for read permission */
|
||
|
|
|
||
|
|
typedef int mode_t;
|
||
|
|
#ifdef _WIN64
|
||
|
|
typedef int64_t pid_t;
|
||
|
|
#else
|
||
|
|
typedef int pid_t;
|
||
|
|
#endif
|
||
|
|
#define STDIN_FILENO _fileno(stdin)
|
||
|
|
#define STDOUT_FILENO _fileno(stdout)
|
||
|
|
#define STDERR_FILENO _fileno(stderr)
|
||
|
|
#define lseek(a, b, c) _lseek(a, b, c)
|
||
|
|
#define lseek64 _lseeki64
|
||
|
|
|
||
|
|
// These functions were deprecated and replaced with ISO C++ conformant ones
|
||
|
|
// in MSVC 2017.
|
||
|
|
/*
|
||
|
|
#define strdup _strdup
|
||
|
|
#define mkdir _mkdir
|
||
|
|
#define rmdir _rmdir
|
||
|
|
#define getcwd _getcwd
|
||
|
|
#define getpid _getpid
|
||
|
|
#define close _close
|
||
|
|
#define open _open
|
||
|
|
#define read _read
|
||
|
|
#define write _write
|
||
|
|
#define creat _creat
|
||
|
|
*/
|
||
|
|
|
||
|
|
// From <fcntl.h>
|
||
|
|
#define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR)
|
||
|
|
|
||
|
|
// From <sys/types.h>
|
||
|
|
typedef int64_t off64_t;
|
||
|
|
|
||
|
|
// From <sys/cdefs.h>
|
||
|
|
#ifdef __cplusplus
|
||
|
|
#define __BEGIN_DECLS extern "C" {
|
||
|
|
#define __END_DECLS }
|
||
|
|
#else
|
||
|
|
#define __BEGIN_DECLS /* empty */
|
||
|
|
#define __END_DECLS /* empty */
|
||
|
|
#endif
|
||
|
|
|
||
|
|
|
||
|
|
typedef VOID (CALLBACK* SystemTime)(LPFILETIME);
|
||
|
|
|
||
|
|
// From <sys/time.h>
|
||
|
|
struct timezone {
|
||
|
|
int tz_minuteswest; /* of Greenwich */
|
||
|
|
int tz_dsttime; /* type of dst correction to apply */
|
||
|
|
};
|
||
|
|
|
||
|
|
// From <strings.h>
|
||
|
|
#define strcasecmp _stricmp
|
||
|
|
#define strncasecmp _strnicmp
|
||
|
|
|
||
|
|
// From <stdio.h>
|
||
|
|
#define fseeko64 _fseeki64
|
||
|
|
#define ftello64 _ftelli64
|
||
|
|
|
||
|
|
// From <linux/limits.h>
|
||
|
|
#define PATH_MAX MAX_PATH
|
||
|
|
|
||
|
|
__BEGIN_DECLS
|
||
|
|
|
||
|
|
|
||
|
|
extern SystemTime getSystemTime;
|
||
|
|
extern int gettimeofday(struct timeval* tp, struct timezone* tz);
|
||
|
|
extern int asprintf(char** buf, const char* format, ...);
|
||
|
|
extern int vasprintf(char** buf, const char* format, va_list args);
|
||
|
|
extern int mkstemp(char* t);
|
||
|
|
|
||
|
|
__END_DECLS
|