mirror of
https://github.com/quizhizhe/LiteLoaderBDS-1.16.40.git
synced 2025-06-08 04:28:12 +00:00
54 lines
1.7 KiB
C
54 lines
1.7 KiB
C
// Copyright 2016 Google Inc.
|
|
//
|
|
// 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.
|
|
//
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef UTIL_PORT_H_
|
|
#define UTIL_PORT_H_
|
|
|
|
#include <stdarg.h>
|
|
|
|
#if defined(_MSC_VER)
|
|
#define GG_LONGLONG(x) x##I64
|
|
#define GG_ULONGLONG(x) x##UI64
|
|
#else
|
|
#define GG_LONGLONG(x) x##LL
|
|
#define GG_ULONGLONG(x) x##ULL
|
|
#endif
|
|
|
|
// Per C99 7.8.14, define __STDC_CONSTANT_MACROS before including <stdint.h>
|
|
// to get the INTn_C and UINTn_C macros for integer constants. It's difficult
|
|
// to guarantee any specific ordering of header includes, so it's difficult to
|
|
// guarantee that the INTn_C macros can be defined by including <stdint.h> at
|
|
// any specific point. Provide GG_INTn_C macros instead.
|
|
|
|
#define GG_INT8_C(x) (x)
|
|
#define GG_INT16_C(x) (x)
|
|
#define GG_INT32_C(x) (x)
|
|
#define GG_INT64_C(x) GG_LONGLONG(x)
|
|
|
|
#define GG_UINT8_C(x) (x ## U)
|
|
#define GG_UINT16_C(x) (x ## U)
|
|
#define GG_UINT32_C(x) (x ## U)
|
|
#define GG_UINT64_C(x) GG_ULONGLONG(x)
|
|
|
|
// Define an OS-neutral wrapper for shared library entry points
|
|
#if defined(_WIN32)
|
|
#define API_CALL __stdcall
|
|
#else
|
|
#define API_CALL
|
|
#endif
|
|
|
|
#endif // UTIL_PORT_H_
|