Merge pull request #1528 from antonio-nino-diaz-arm/an/libc
libc: Cleanup library
This commit is contained in:
commit
6d4f6aea2c
7
Makefile
7
Makefile
|
@ -202,8 +202,6 @@ include lib/libc/libc.mk
|
|||
|
||||
BL_COMMON_SOURCES += common/bl_common.c \
|
||||
common/tf_log.c \
|
||||
common/tf_printf.c \
|
||||
common/tf_snprintf.c \
|
||||
common/${ARCH}/debug.S \
|
||||
lib/${ARCH}/cache_helpers.S \
|
||||
lib/${ARCH}/misc_helpers.S \
|
||||
|
@ -213,6 +211,10 @@ BL_COMMON_SOURCES += common/bl_common.c \
|
|||
plat/common/${ARCH}/platform_helpers.S \
|
||||
${COMPILER_RT_SRCS}
|
||||
|
||||
ifeq ($(notdir $(CC)),armclang)
|
||||
BL_COMMON_SOURCES += lib/${ARCH}/armclang_printf.S
|
||||
endif
|
||||
|
||||
INCLUDES += -Iinclude \
|
||||
-Iinclude/bl1 \
|
||||
-Iinclude/bl2 \
|
||||
|
@ -241,7 +243,6 @@ INCLUDES += -Iinclude \
|
|||
${SPD_INCLUDES} \
|
||||
-Iinclude/tools_share
|
||||
|
||||
|
||||
################################################################################
|
||||
# Generic definitions
|
||||
################################################################################
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#ifndef __BL1_PRIVATE_H__
|
||||
#define __BL1_PRIVATE_H__
|
||||
|
||||
#include <types.h>
|
||||
#include <stdint.h>
|
||||
#include <utils_def.h>
|
||||
|
||||
/*******************************************************************************
|
||||
|
|
|
@ -21,8 +21,8 @@
|
|||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
#include <std_svc.h>
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
#include <types.h>
|
||||
#include <utils.h>
|
||||
#include "sp_min_private.h"
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
@ -36,11 +36,11 @@ void tf_log(const char *fmt, ...)
|
|||
|
||||
prefix_str = plat_log_get_prefix(log_level);
|
||||
|
||||
if (prefix_str != NULL)
|
||||
tf_string_print(prefix_str);
|
||||
while (*prefix_str)
|
||||
putchar(*prefix_str++);
|
||||
|
||||
va_start(args, fmt);
|
||||
tf_vprintf(fmt+1, args);
|
||||
vprintf(fmt + 1, args);
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,171 +0,0 @@
|
|||
/*
|
||||
* Copyright (c) 2014-2017, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
#include <arch.h>
|
||||
#include <arch_helpers.h>
|
||||
#include <assert.h>
|
||||
#include <debug.h>
|
||||
#include <limits.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdint.h>
|
||||
|
||||
/***********************************************************
|
||||
* The tf_printf implementation for all BL stages
|
||||
***********************************************************/
|
||||
|
||||
#define get_num_va_args(_args, _lcount) \
|
||||
(((_lcount) > 1) ? va_arg(_args, long long int) : \
|
||||
((_lcount) ? va_arg(_args, long int) : va_arg(_args, int)))
|
||||
|
||||
#define get_unum_va_args(_args, _lcount) \
|
||||
(((_lcount) > 1) ? va_arg(_args, unsigned long long int) : \
|
||||
((_lcount) ? va_arg(_args, unsigned long int) : va_arg(_args, unsigned int)))
|
||||
|
||||
void tf_string_print(const char *str)
|
||||
{
|
||||
assert(str);
|
||||
|
||||
while (*str)
|
||||
putchar(*str++);
|
||||
}
|
||||
|
||||
static void unsigned_num_print(unsigned long long int unum, unsigned int radix,
|
||||
char padc, int padn)
|
||||
{
|
||||
/* Just need enough space to store 64 bit decimal integer */
|
||||
unsigned char num_buf[20];
|
||||
int i = 0, rem;
|
||||
|
||||
do {
|
||||
rem = unum % radix;
|
||||
if (rem < 0xa)
|
||||
num_buf[i++] = '0' + rem;
|
||||
else
|
||||
num_buf[i++] = 'a' + (rem - 0xa);
|
||||
} while (unum /= radix);
|
||||
|
||||
if (padn > 0) {
|
||||
while (i < padn--) {
|
||||
putchar(padc);
|
||||
}
|
||||
}
|
||||
|
||||
while (--i >= 0)
|
||||
putchar(num_buf[i]);
|
||||
}
|
||||
|
||||
/*******************************************************************
|
||||
* Reduced format print for Trusted firmware.
|
||||
* The following type specifiers are supported by this print
|
||||
* %x - hexadecimal format
|
||||
* %s - string format
|
||||
* %d or %i - signed decimal format
|
||||
* %u - unsigned decimal format
|
||||
* %p - pointer format
|
||||
*
|
||||
* The following length specifiers are supported by this print
|
||||
* %l - long int (64-bit on AArch64)
|
||||
* %ll - long long int (64-bit on AArch64)
|
||||
* %z - size_t sized integer formats (64 bit on AArch64)
|
||||
*
|
||||
* The following padding specifiers are supported by this print
|
||||
* %0NN - Left-pad the number with 0s (NN is a decimal number)
|
||||
*
|
||||
* The print exits on all other formats specifiers other than valid
|
||||
* combinations of the above specifiers.
|
||||
*******************************************************************/
|
||||
void tf_vprintf(const char *fmt, va_list args)
|
||||
{
|
||||
int l_count;
|
||||
long long int num;
|
||||
unsigned long long int unum;
|
||||
char *str;
|
||||
char padc = 0; /* Padding character */
|
||||
int padn; /* Number of characters to pad */
|
||||
|
||||
while (*fmt) {
|
||||
l_count = 0;
|
||||
padn = 0;
|
||||
|
||||
if (*fmt == '%') {
|
||||
fmt++;
|
||||
/* Check the format specifier */
|
||||
loop:
|
||||
switch (*fmt) {
|
||||
case 'i': /* Fall through to next one */
|
||||
case 'd':
|
||||
num = get_num_va_args(args, l_count);
|
||||
if (num < 0) {
|
||||
putchar('-');
|
||||
unum = (unsigned long long int)-num;
|
||||
padn--;
|
||||
} else
|
||||
unum = (unsigned long long int)num;
|
||||
|
||||
unsigned_num_print(unum, 10, padc, padn);
|
||||
break;
|
||||
case 's':
|
||||
str = va_arg(args, char *);
|
||||
tf_string_print(str);
|
||||
break;
|
||||
case 'p':
|
||||
unum = (uintptr_t)va_arg(args, void *);
|
||||
if (unum) {
|
||||
tf_string_print("0x");
|
||||
padn -= 2;
|
||||
}
|
||||
|
||||
unsigned_num_print(unum, 16, padc, padn);
|
||||
break;
|
||||
case 'x':
|
||||
unum = get_unum_va_args(args, l_count);
|
||||
unsigned_num_print(unum, 16, padc, padn);
|
||||
break;
|
||||
case 'z':
|
||||
if (sizeof(size_t) == 8)
|
||||
l_count = 2;
|
||||
|
||||
fmt++;
|
||||
goto loop;
|
||||
case 'l':
|
||||
l_count++;
|
||||
fmt++;
|
||||
goto loop;
|
||||
case 'u':
|
||||
unum = get_unum_va_args(args, l_count);
|
||||
unsigned_num_print(unum, 10, padc, padn);
|
||||
break;
|
||||
case '0':
|
||||
padc = '0';
|
||||
padn = 0;
|
||||
fmt++;
|
||||
|
||||
while (1) {
|
||||
char ch = *fmt;
|
||||
if (ch < '0' || ch > '9') {
|
||||
goto loop;
|
||||
}
|
||||
padn = (padn * 10) + (ch - '0');
|
||||
fmt++;
|
||||
}
|
||||
default:
|
||||
/* Exit on any other format specifier */
|
||||
return;
|
||||
}
|
||||
fmt++;
|
||||
continue;
|
||||
}
|
||||
putchar(*fmt++);
|
||||
}
|
||||
}
|
||||
|
||||
void tf_printf(const char *fmt, ...)
|
||||
{
|
||||
va_list va;
|
||||
|
||||
va_start(va, fmt);
|
||||
tf_vprintf(fmt, va);
|
||||
va_end(va);
|
||||
}
|
|
@ -2982,32 +2982,13 @@ contains those C library definitions required by the local implementation. If
|
|||
more functionality is required, the needed library functions will need to be
|
||||
added to the local implementation.
|
||||
|
||||
Versions of `FreeBSD`_ headers can be found in ``include/lib/stdlib``. Some of
|
||||
these headers have been cut down in order to simplify the implementation. In
|
||||
order to minimize changes to the header files, the `FreeBSD`_ layout has been
|
||||
maintained. The generic C library definitions can be found in
|
||||
``include/lib/stdlib`` with more system and machine specific declarations in
|
||||
``include/lib/stdlib/sys`` and ``include/lib/stdlib/machine``.
|
||||
Some C headers have been obtained from `FreeBSD`_ and `SCC`_, while others have
|
||||
been written specifically for TF-A. Fome implementation files have been obtained
|
||||
from `FreeBSD`_, others have been written specifically for TF-A as well. The
|
||||
files can be found in ``include/lib/libc`` and ``lib/libc``.
|
||||
|
||||
The local C library implementations can be found in ``lib/stdlib``. In order to
|
||||
extend the C library these files may need to be modified. It is recommended to
|
||||
use a release version of `FreeBSD`_ as a starting point.
|
||||
|
||||
The C library header files in the `FreeBSD`_ source tree are located in the
|
||||
``include`` and ``sys/sys`` directories. `FreeBSD`_ machine specific definitions
|
||||
can be found in the ``sys/<machine-type>`` directories. These files define things
|
||||
like 'the size of a pointer' and 'the range of an integer'. Since an AArch64
|
||||
port for `FreeBSD`_ does not yet exist, the machine specific definitions are
|
||||
based on existing machine types with similar properties (for example SPARC64).
|
||||
|
||||
Where possible, C library function implementations were taken from `FreeBSD`_
|
||||
as found in the ``lib/libc`` directory.
|
||||
|
||||
A copy of the `FreeBSD`_ sources can be downloaded with ``git``.
|
||||
|
||||
::
|
||||
|
||||
git clone git://github.com/freebsd/freebsd.git -b origin/release/9.2.0
|
||||
SCC can be found in `http://www.simple-cc.org/`_. A copy of the `FreeBSD`_
|
||||
sources can be obtained from `http://github.com/freebsd/freebsd`_.
|
||||
|
||||
Storage abstraction layer
|
||||
-------------------------
|
||||
|
@ -3082,3 +3063,4 @@ amount of open resources per driver.
|
|||
.. _Arm Generic Interrupt Controller version 2.0 (GICv2): http://infocenter.arm.com/help/topic/com.arm.doc.ihi0048b/index.html
|
||||
.. _3.0 (GICv3): http://infocenter.arm.com/help/topic/com.arm.doc.ihi0069b/index.html
|
||||
.. _FreeBSD: http://www.freebsd.org
|
||||
.. _SCC: http://www.simple-cc.org/
|
||||
|
|
|
@ -319,7 +319,7 @@ and some helper utilities for assert, print and memory operations as listed
|
|||
below. The TF-A source tree provides implementations for all
|
||||
these functions but the EL3 Runtime Software may use its own implementation.
|
||||
|
||||
**Functions : assert(), memcpy(), memset**
|
||||
**Functions : assert(), memcpy(), memset(), printf()**
|
||||
|
||||
These must be implemented as described in ISO C Standard.
|
||||
|
||||
|
@ -353,14 +353,6 @@ This function invalidates (flushes) the data cache for memory at address
|
|||
This function will be called by the PSCI library on encountering a critical
|
||||
failure that cannot be recovered from. This function **must not** return.
|
||||
|
||||
**Function : tf\_printf()**
|
||||
|
||||
This is printf-compatible function, but unlike printf, it does not return any
|
||||
value. The TF-A source tree provides an implementation which
|
||||
is optimized for stack usage and supports only a subset of format specifiers.
|
||||
The details of the format specifiers supported can be found in the
|
||||
``tf_printf.c`` file in the TF-A source tree.
|
||||
|
||||
CPU Context management API
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
#include <debug.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
/* mbed TLS headers */
|
||||
#include <mbedtls/memory_buffer_alloc.h>
|
||||
|
@ -45,10 +46,8 @@ void mbedtls_init(void)
|
|||
mbedtls_memory_buffer_alloc_init(heap, MBEDTLS_HEAP_SIZE);
|
||||
|
||||
#ifdef MBEDTLS_PLATFORM_SNPRINTF_ALT
|
||||
/* Use reduced version of snprintf to save space. */
|
||||
mbedtls_platform_set_snprintf(tf_snprintf);
|
||||
mbedtls_platform_set_snprintf(snprintf);
|
||||
#endif
|
||||
|
||||
ready = 1;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -96,8 +96,8 @@ static void dump_amb_adec(void)
|
|||
uint32_t size, size_count;
|
||||
|
||||
/* Dump all AMB windows */
|
||||
tf_printf("bank attribute base size\n");
|
||||
tf_printf("--------------------------------------------\n");
|
||||
printf("bank attribute base size\n");
|
||||
printf("--------------------------------------------\n");
|
||||
for (win_id = 0; win_id < AMB_MAX_WIN_ID; win_id++) {
|
||||
ctrl = mmio_read_32(AMB_WIN_CR_OFFSET(win_id));
|
||||
if (ctrl & WIN_ENABLE_BIT) {
|
||||
|
@ -105,8 +105,8 @@ static void dump_amb_adec(void)
|
|||
attr = (ctrl >> AMB_ATTR_OFFSET) & AMB_ATTR_MASK;
|
||||
size_count = (ctrl >> AMB_SIZE_OFFSET) & AMB_SIZE_MASK;
|
||||
size = (size_count + 1) * AMB_WIN_ALIGNMENT_64K;
|
||||
tf_printf("amb 0x%04x 0x%08x 0x%08x\n",
|
||||
attr, base, size);
|
||||
printf("amb 0x%04x 0x%08x 0x%08x\n",
|
||||
attr, base, size);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
|
||||
/* common defines */
|
||||
#define WIN_ENABLE_BIT (0x1)
|
||||
/* Physical address of the base of the window = {AddrLow[19:0],20’h0} */
|
||||
/* Physical address of the base of the window = {AddrLow[19:0],20'h0} */
|
||||
#define ADDRESS_SHIFT (20 - 4)
|
||||
#define ADDRESS_MASK (0xFFFFFFF0)
|
||||
#define CCU_WIN_ALIGNMENT (0x100000)
|
||||
|
@ -40,8 +40,8 @@ static void dump_ccu(int ap_index)
|
|||
uint64_t start, end;
|
||||
|
||||
/* Dump all AP windows */
|
||||
tf_printf("\tbank target start end\n");
|
||||
tf_printf("\t----------------------------------------------------\n");
|
||||
printf("\tbank target start end\n");
|
||||
printf("\t----------------------------------------------------\n");
|
||||
for (win_id = 0; win_id < MVEBU_CCU_MAX_WINS; win_id++) {
|
||||
win_cr = mmio_read_32(CCU_WIN_CR_OFFSET(ap_index, win_id));
|
||||
if (win_cr & WIN_ENABLE_BIT) {
|
||||
|
@ -53,13 +53,13 @@ static void dump_ccu(int ap_index)
|
|||
win_id));
|
||||
start = ((uint64_t)alr << ADDRESS_SHIFT);
|
||||
end = (((uint64_t)ahr + 0x10) << ADDRESS_SHIFT);
|
||||
tf_printf("\tccu %02x 0x%016llx 0x%016llx\n",
|
||||
target_id, start, end);
|
||||
printf("\tccu %02x 0x%016llx 0x%016llx\n",
|
||||
target_id, start, end);
|
||||
}
|
||||
}
|
||||
win_cr = mmio_read_32(CCU_WIN_GCR_OFFSET(ap_index));
|
||||
target_id = (win_cr >> CCU_GCR_TARGET_OFFSET) & CCU_GCR_TARGET_MASK;
|
||||
tf_printf("\tccu GCR %d - all other transactions\n", target_id);
|
||||
printf("\tccu GCR %d - all other transactions\n", target_id);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
|
||||
/* #define DEBUG_COMPHY */
|
||||
#ifdef DEBUG_COMPHY
|
||||
#define debug(format...) tf_printf(format)
|
||||
#define debug(format...) printf(format)
|
||||
#else
|
||||
#define debug(format, arg...)
|
||||
#endif
|
||||
|
|
|
@ -153,8 +153,8 @@ static void dump_gwin(int ap_index)
|
|||
uint32_t win_num;
|
||||
|
||||
/* Dump all GWIN windows */
|
||||
tf_printf("\tbank target start end\n");
|
||||
tf_printf("\t----------------------------------------------------\n");
|
||||
printf("\tbank target start end\n");
|
||||
printf("\t----------------------------------------------------\n");
|
||||
for (win_num = 0; win_num < MVEBU_GWIN_MAX_WINS; win_num++) {
|
||||
uint32_t cr;
|
||||
uint64_t alr, ahr;
|
||||
|
@ -166,8 +166,8 @@ static void dump_gwin(int ap_index)
|
|||
alr = (alr >> ADDRESS_LSHIFT) << ADDRESS_RSHIFT;
|
||||
ahr = mmio_read_32(GWIN_AHR_OFFSET(ap_index, win_num));
|
||||
ahr = (ahr >> ADDRESS_LSHIFT) << ADDRESS_RSHIFT;
|
||||
tf_printf("\tgwin %d 0x%016llx 0x%016llx\n",
|
||||
(cr >> 8) & 0xF, alr, ahr);
|
||||
printf("\tgwin %d 0x%016llx 0x%016llx\n",
|
||||
(cr >> 8) & 0xF, alr, ahr);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -158,8 +158,8 @@ static void dump_io_win(int ap_index)
|
|||
uint64_t start, end;
|
||||
|
||||
/* Dump all IO windows */
|
||||
tf_printf("\tbank target start end\n");
|
||||
tf_printf("\t----------------------------------------------------\n");
|
||||
printf("\tbank target start end\n");
|
||||
printf("\t----------------------------------------------------\n");
|
||||
for (win_id = 0; win_id < MVEBU_IO_WIN_MAX_WINS; win_id++) {
|
||||
alr = mmio_read_32(IO_WIN_ALR_OFFSET(ap_index, win_id));
|
||||
if (alr & WIN_ENABLE_BIT) {
|
||||
|
@ -169,13 +169,13 @@ static void dump_io_win(int ap_index)
|
|||
win_id));
|
||||
start = ((uint64_t)alr << ADDRESS_SHIFT);
|
||||
end = (((uint64_t)ahr + 0x10) << ADDRESS_SHIFT);
|
||||
tf_printf("\tio-win %d 0x%016llx 0x%016llx\n",
|
||||
trgt_id, start, end);
|
||||
printf("\tio-win %d 0x%016llx 0x%016llx\n",
|
||||
trgt_id, start, end);
|
||||
}
|
||||
}
|
||||
tf_printf("\tio-win gcr is %x\n",
|
||||
mmio_read_32(MVEBU_IO_WIN_BASE(ap_index) +
|
||||
MVEBU_IO_WIN_GCR_OFFSET));
|
||||
printf("\tio-win gcr is %x\n",
|
||||
mmio_read_32(MVEBU_IO_WIN_BASE(ap_index) +
|
||||
MVEBU_IO_WIN_GCR_OFFSET));
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -52,8 +52,8 @@ static void iob_win_check(struct addr_map_win *win, uint32_t win_num)
|
|||
win->base_addr = ALIGN_UP(win->base_addr, IOB_WIN_ALIGNMENT);
|
||||
ERROR("Window %d: base address unaligned to 0x%x\n",
|
||||
win_num, IOB_WIN_ALIGNMENT);
|
||||
tf_printf("Align up the base address to 0x%llx\n",
|
||||
win->base_addr);
|
||||
printf("Align up the base address to 0x%llx\n",
|
||||
win->base_addr);
|
||||
}
|
||||
|
||||
/* size parameter validity check */
|
||||
|
@ -61,7 +61,7 @@ static void iob_win_check(struct addr_map_win *win, uint32_t win_num)
|
|||
win->win_size = ALIGN_UP(win->win_size, IOB_WIN_ALIGNMENT);
|
||||
ERROR("Window %d: window size unaligned to 0x%x\n", win_num,
|
||||
IOB_WIN_ALIGNMENT);
|
||||
tf_printf("Aligning size to 0x%llx\n", win->win_size);
|
||||
printf("Aligning size to 0x%llx\n", win->win_size);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -96,8 +96,8 @@ static void dump_iob(void)
|
|||
"PEX0 ", "NAND ", "RUNIT", "MCI1 " };
|
||||
|
||||
/* Dump all IOB windows */
|
||||
tf_printf("bank id target start end\n");
|
||||
tf_printf("----------------------------------------------------\n");
|
||||
printf("bank id target start end\n");
|
||||
printf("----------------------------------------------------\n");
|
||||
for (win_id = 0; win_id < MVEBU_IOB_MAX_WINS; win_id++) {
|
||||
win_cr = mmio_read_32(IOB_WIN_CR_OFFSET(win_id));
|
||||
if (win_cr & WIN_ENABLE_BIT) {
|
||||
|
@ -114,9 +114,9 @@ static void dump_iob(void)
|
|||
*/
|
||||
end = start + (16 << 20);
|
||||
}
|
||||
tf_printf("iob %02d %s 0x%016llx 0x%016llx\n",
|
||||
win_id, iob_target_name[target_id],
|
||||
start, end);
|
||||
printf("iob %02d %s 0x%016llx 0x%016llx\n",
|
||||
win_id, iob_target_name[target_id],
|
||||
start, end);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include <mbr.h>
|
||||
#include <partition.h>
|
||||
#include <platform.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
static uint8_t mbr_sector[PARTITION_BLOCK_SIZE];
|
||||
|
@ -24,7 +25,7 @@ static void dump_entries(int num)
|
|||
|
||||
VERBOSE("Partition table with %d entries:\n", num);
|
||||
for (i = 0; i < num; i++) {
|
||||
len = tf_snprintf(name, EFI_NAMELEN, "%s", list.list[i].name);
|
||||
len = snprintf(name, EFI_NAMELEN, "%s", list.list[i].name);
|
||||
for (j = 0; j < EFI_NAMELEN - len - 1; j++) {
|
||||
name[len + j] = ' ';
|
||||
}
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
#include <mmio.h>
|
||||
#include <platform.h>
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
#include <stm32mp1_clk.h>
|
||||
#include <stm32mp1_clkfunc.h>
|
||||
#include <stm32mp1_dt.h>
|
||||
|
@ -1344,7 +1345,7 @@ int stm32mp1_clk_init(void)
|
|||
for (i = (enum stm32mp1_pll_id)0; i < _PLL_NB; i++) {
|
||||
char name[12];
|
||||
|
||||
tf_snprintf(name, sizeof(name), "st,pll@%d", i);
|
||||
snprintf(name, sizeof(name), "st,pll@%d", i);
|
||||
plloff[i] = fdt_rcc_subnode_offset(name);
|
||||
|
||||
if (!fdt_check_node(plloff[i])) {
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
#include <cdefs.h>
|
||||
#include <stdint.h>
|
||||
#include <utils_def.h>
|
||||
|
||||
|
|
|
@ -61,7 +61,6 @@
|
|||
#include <cassert.h>
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
#include <types.h>
|
||||
#include <utils_def.h> /* To retain compatibility */
|
||||
|
||||
|
||||
|
|
|
@ -4,8 +4,8 @@
|
|||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef __DEBUG_H__
|
||||
#define __DEBUG_H__
|
||||
#ifndef DEBUG_H
|
||||
#define DEBUG_H
|
||||
|
||||
/*
|
||||
* The log output macros print output to the console. These macros produce
|
||||
|
@ -26,6 +26,7 @@
|
|||
#define LOG_LEVEL_VERBOSE 50
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
#include <cdefs.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
|
||||
|
@ -89,11 +90,7 @@ void __dead2 do_panic(void);
|
|||
void __dead2 __stack_chk_fail(void);
|
||||
|
||||
void tf_log(const char *fmt, ...) __printflike(1, 2);
|
||||
void tf_printf(const char *fmt, ...) __printflike(1, 2);
|
||||
int tf_snprintf(char *s, size_t n, const char *fmt, ...) __printflike(3, 4);
|
||||
void tf_vprintf(const char *fmt, va_list args);
|
||||
void tf_string_print(const char *str);
|
||||
void tf_log_set_max_level(unsigned int log_level);
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
#endif /* __DEBUG_H__ */
|
||||
#endif /* DEBUG_H */
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
@ -65,7 +65,7 @@
|
|||
#ifndef __ASSEMBLY__
|
||||
|
||||
#include <cassert.h>
|
||||
#include <types.h>
|
||||
#include <stdint.h>
|
||||
|
||||
typedef struct aapcs64_params {
|
||||
u_register_t arg0;
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
#include <types.h>
|
||||
#include <stdint.h>
|
||||
|
||||
/***************************************************************************
|
||||
* This structure provides version information and the size of the
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2014, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2014-2018, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
@ -7,6 +7,7 @@
|
|||
#ifndef __ARM_GIC_H__
|
||||
#define __ARM_GIC_H__
|
||||
|
||||
#include <cdefs.h>
|
||||
#include <stdint.h>
|
||||
|
||||
/*******************************************************************************
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2013-2016, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
@ -17,8 +17,6 @@
|
|||
|
||||
#include <mmio.h>
|
||||
#include <stdint.h>
|
||||
#include <types.h>
|
||||
|
||||
|
||||
/* GICv3 Re-distributor interface registers & shifts */
|
||||
#define GICR_PCPUBASE_SHIFT 0x11
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2015-2017, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
@ -116,6 +116,7 @@
|
|||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
#include <cdefs.h>
|
||||
#include <interrupt_props.h>
|
||||
#include <stdint.h>
|
||||
|
||||
|
|
|
@ -212,7 +212,6 @@
|
|||
#include <gic_common.h>
|
||||
#include <interrupt_props.h>
|
||||
#include <stdint.h>
|
||||
#include <types.h>
|
||||
#include <utils_def.h>
|
||||
|
||||
#define gicv3_is_intr_id_special_identifier(id) \
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2013-2014, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
@ -85,7 +85,7 @@
|
|||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
#include <types.h>
|
||||
#include <stdint.h>
|
||||
|
||||
typedef struct {
|
||||
console_t console;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2016, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2016-2018, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
@ -29,7 +29,7 @@
|
|||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
#include <types.h>
|
||||
#include <stdint.h>
|
||||
|
||||
typedef struct {
|
||||
console_t console;
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
#include <types.h>
|
||||
#include <stdint.h>
|
||||
|
||||
typedef struct console {
|
||||
struct console *next;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
@ -7,7 +7,7 @@
|
|||
#ifndef __DW_UFS_H__
|
||||
#define __DW_UFS_H__
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <stdint.h>
|
||||
|
||||
/* Bus Throtting */
|
||||
#define BUSTHRTL 0xC0
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2016, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2016-2018, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
@ -8,7 +8,7 @@
|
|||
#define __PARTITION_H__
|
||||
|
||||
#include <cassert.h>
|
||||
#include <types.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#if !PLAT_PARTITION_MAX_ENTRIES
|
||||
# define PLAT_PARTITION_MAX_ENTRIES 128
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2015, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
@ -75,7 +75,7 @@
|
|||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
#include <types.h>
|
||||
#include <stdint.h>
|
||||
|
||||
typedef struct {
|
||||
console_t console;
|
||||
|
|
|
@ -8,8 +8,9 @@
|
|||
#define __ARCH_HELPERS_H__
|
||||
|
||||
#include <arch.h> /* for additional register definitions */
|
||||
#include <cdefs.h>
|
||||
#include <stdint.h>
|
||||
#include <sys/types.h>
|
||||
#include <string.h>
|
||||
|
||||
/**********************************************************************
|
||||
* Macros which create inline functions to read or write CPU system
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
#ifndef __ASSEMBLY__
|
||||
#include <cassert.h>
|
||||
#include <types.h>
|
||||
#include <stdint.h>
|
||||
|
||||
/*
|
||||
* The generic structure to save arguments and callee saved registers during
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
#include <arch.h> /* for additional register definitions */
|
||||
#include <cdefs.h> /* For __dead2 */
|
||||
#include <stdint.h>
|
||||
#include <sys/types.h>
|
||||
#include <string.h>
|
||||
|
||||
/**********************************************************************
|
||||
* Macros which create inline functions to read or write CPU system
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2013-2015, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
@ -12,6 +12,7 @@
|
|||
#define BAKERY_LOCK_MAX_CPUS PLATFORM_CORE_COUNT
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
#include <cdefs.h>
|
||||
#include <stdint.h>
|
||||
|
||||
/*****************************************************************************
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2014, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2014-2018, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
@ -7,6 +7,8 @@
|
|||
#ifndef __CASSERT_H__
|
||||
#define __CASSERT_H__
|
||||
|
||||
#include <cdefs.h>
|
||||
|
||||
/*******************************************************************************
|
||||
* Macro to flag a compile time assertion. It uses the preprocessor to generate
|
||||
* an invalid C construct if 'cond' evaluates to false.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
@ -7,7 +7,7 @@
|
|||
#ifndef __COREBOOT_H__
|
||||
#define __COREBOOT_H__
|
||||
|
||||
#include <types.h>
|
||||
#include <stdint.h>
|
||||
|
||||
typedef struct {
|
||||
uint32_t type; /* always 2 (memory-mapped) on ARM */
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
@ -10,7 +10,6 @@
|
|||
#include <cassert.h>
|
||||
#include <platform_def.h>
|
||||
#include <stdint.h>
|
||||
#include <sys/cdefs.h> /* for CASSERT() */
|
||||
|
||||
/* All group 0 counters */
|
||||
#define AMU_GROUP0_COUNTERS_MASK 0xf
|
||||
|
|
|
@ -0,0 +1,146 @@
|
|||
/*-
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*
|
||||
* Copyright (c) 2001 David E. O'Brien
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)endian.h 8.1 (Berkeley) 6/10/93
|
||||
* $NetBSD: endian.h,v 1.7 1999/08/21 05:53:51 simonb Exp $
|
||||
* $FreeBSD$
|
||||
*/
|
||||
/*
|
||||
* Portions copyright (c) 2018, ARM Limited and Contributors.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef AARCH32_ENDIAN_H
|
||||
#define AARCH32_ENDIAN_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
/*
|
||||
* Definitions for byte order, according to byte significance from low
|
||||
* address to high.
|
||||
*/
|
||||
#define _LITTLE_ENDIAN 1234 /* LSB first: i386, vax */
|
||||
#define _BIG_ENDIAN 4321 /* MSB first: 68000, ibm, net */
|
||||
#define _PDP_ENDIAN 3412 /* LSB first in word, MSW first in long */
|
||||
|
||||
#ifdef __ARMEB__
|
||||
#define _BYTE_ORDER _BIG_ENDIAN
|
||||
#else
|
||||
#define _BYTE_ORDER _LITTLE_ENDIAN
|
||||
#endif /* __ARMEB__ */
|
||||
|
||||
#if __BSD_VISIBLE
|
||||
#define LITTLE_ENDIAN _LITTLE_ENDIAN
|
||||
#define BIG_ENDIAN _BIG_ENDIAN
|
||||
#define PDP_ENDIAN _PDP_ENDIAN
|
||||
#define BYTE_ORDER _BYTE_ORDER
|
||||
#endif
|
||||
|
||||
#ifdef __ARMEB__
|
||||
#define _QUAD_HIGHWORD 0
|
||||
#define _QUAD_LOWWORD 1
|
||||
#define __ntohl(x) ((uint32_t)(x))
|
||||
#define __ntohs(x) ((uint16_t)(x))
|
||||
#define __htonl(x) ((uint32_t)(x))
|
||||
#define __htons(x) ((uint16_t)(x))
|
||||
#else
|
||||
#define _QUAD_HIGHWORD 1
|
||||
#define _QUAD_LOWWORD 0
|
||||
#define __ntohl(x) (__bswap32(x))
|
||||
#define __ntohs(x) (__bswap16(x))
|
||||
#define __htonl(x) (__bswap32(x))
|
||||
#define __htons(x) (__bswap16(x))
|
||||
#endif /* __ARMEB__ */
|
||||
|
||||
static __inline uint64_t
|
||||
__bswap64(uint64_t _x)
|
||||
{
|
||||
|
||||
return ((_x >> 56) | ((_x >> 40) & 0xff00) | ((_x >> 24) & 0xff0000) |
|
||||
((_x >> 8) & 0xff000000) | ((_x << 8) & ((uint64_t)0xff << 32)) |
|
||||
((_x << 24) & ((uint64_t)0xff << 40)) |
|
||||
((_x << 40) & ((uint64_t)0xff << 48)) | ((_x << 56)));
|
||||
}
|
||||
|
||||
static __inline uint32_t
|
||||
__bswap32_var(uint32_t v)
|
||||
{
|
||||
uint32_t t1;
|
||||
|
||||
__asm __volatile("eor %1, %0, %0, ror #16\n"
|
||||
"bic %1, %1, #0x00ff0000\n"
|
||||
"mov %0, %0, ror #8\n"
|
||||
"eor %0, %0, %1, lsr #8\n"
|
||||
: "+r" (v), "=r" (t1));
|
||||
|
||||
return (v);
|
||||
}
|
||||
|
||||
static __inline uint16_t
|
||||
__bswap16_var(uint16_t v)
|
||||
{
|
||||
uint32_t ret = v & 0xffff;
|
||||
|
||||
__asm __volatile(
|
||||
"mov %0, %0, ror #8\n"
|
||||
"orr %0, %0, %0, lsr #16\n"
|
||||
"bic %0, %0, %0, lsl #16"
|
||||
: "+r" (ret));
|
||||
|
||||
return ((uint16_t)ret);
|
||||
}
|
||||
|
||||
#ifdef __OPTIMIZE__
|
||||
|
||||
#define __bswap32_constant(x) \
|
||||
((((x) & 0xff000000U) >> 24) | \
|
||||
(((x) & 0x00ff0000U) >> 8) | \
|
||||
(((x) & 0x0000ff00U) << 8) | \
|
||||
(((x) & 0x000000ffU) << 24))
|
||||
|
||||
#define __bswap16_constant(x) \
|
||||
((((x) & 0xff00) >> 8) | \
|
||||
(((x) & 0x00ff) << 8))
|
||||
|
||||
#define __bswap16(x) \
|
||||
((uint16_t)(__builtin_constant_p(x) ? \
|
||||
__bswap16_constant(x) : \
|
||||
__bswap16_var(x)))
|
||||
|
||||
#define __bswap32(x) \
|
||||
((uint32_t)(__builtin_constant_p(x) ? \
|
||||
__bswap32_constant(x) : \
|
||||
__bswap32_var(x)))
|
||||
|
||||
#else
|
||||
#define __bswap16(x) __bswap16_var(x)
|
||||
#define __bswap32(x) __bswap32_var(x)
|
||||
|
||||
#endif /* __OPTIMIZE__ */
|
||||
#endif /* AARCH32_ENDIAN_H */
|
|
@ -0,0 +1,26 @@
|
|||
/*
|
||||
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#define SCHAR_MAX 0x7F
|
||||
#define SCHAR_MIN (-SCHAR_MIN - 1)
|
||||
#define CHAR_MAX 0x7F
|
||||
#define CHAR_MIN (-CHAR_MAX - 1)
|
||||
#define UCHAR_MAX 0xFFU
|
||||
#define SHRT_MAX 0x7FFF
|
||||
#define SHRT_MIN (-SHRT_MAX - 1)
|
||||
#define USHRT_MAX 0xFFFFU
|
||||
#define INT_MAX 0x7FFFFFFF
|
||||
#define INT_MIN (-INT_MAX - 1)
|
||||
#define UINT_MAX 0xFFFFFFFFU
|
||||
#define LONG_MAX 0x7FFFFFFFL
|
||||
#define LONG_MIN (-LONG_MAX - 1L)
|
||||
#define ULONG_MAX 0xFFFFFFFFUL
|
||||
#define LLONG_MAX 0x7FFFFFFFFFFFFFFFLL
|
||||
#define LLONG_MIN (-LLONG_MAX - 1LL)
|
||||
#define ULLONG_MAX 0xFFFFFFFFFFFFFFFFULL
|
||||
|
||||
#define __LONG_BIT 32
|
||||
#define __WORD_BIT 32
|
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef SIZET_
|
||||
typedef unsigned int size_t;
|
||||
#define SIZET_
|
||||
#endif
|
||||
|
||||
#ifndef _PTRDIFF_T
|
||||
typedef long ptrdiff_t;
|
||||
#define _PTRDIFF_T
|
||||
#endif
|
|
@ -0,0 +1,118 @@
|
|||
/*
|
||||
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#define INT8_MAX 0x7F
|
||||
#define INT8_MIN (-INT8_MAX - 1)
|
||||
#define UINT8_MAX 0xFFU
|
||||
|
||||
#define INT16_MAX 0x7FFF
|
||||
#define INT16_MIN (-INT16_MAX - 1)
|
||||
#define UINT16_MAX 0xFFFFU
|
||||
|
||||
#define INT32_MAX 0x7FFFFFFF
|
||||
#define INT32_MIN (-INT32_MAX - 1)
|
||||
#define UINT32_MAX 0xFFFFFFFFU
|
||||
|
||||
#define INT64_MAX 0x7FFFFFFFFFFFFFFFLL
|
||||
#define INT64_MIN (-INT64_MAX - 1LL)
|
||||
#define UINT64_MAX 0xFFFFFFFFFFFFFFFFULL
|
||||
|
||||
#define INT_LEAST8_MIN INT8_MIN
|
||||
#define INT_LEAST8_MAX INT8_MAX
|
||||
#define UINT_LEAST8_MAX UINT8_MAX
|
||||
|
||||
#define INT_LEAST16_MIN INT16_MIN
|
||||
#define INT_LEAST16_MAX INT16_MAX
|
||||
#define UINT_LEAST16_MAX UINT16_MAX
|
||||
|
||||
#define INT_LEAST32_MIN INT32_MIN
|
||||
#define INT_LEAST32_MAX INT32_MAX
|
||||
#define UINT_LEAST32_MAX UINT32_MAX
|
||||
|
||||
#define INT_LEAST64_MIN INT64_MIN
|
||||
#define INT_LEAST64_MAX INT64_MAX
|
||||
#define UINT_LEAST64_MAX UINT64_MAX
|
||||
|
||||
#define INT_FAST8_MIN INT32_MIN
|
||||
#define INT_FAST8_MAX INT32_MAX
|
||||
#define UINT_FAST8_MAX UINT32_MAX
|
||||
|
||||
#define INT_FAST16_MIN INT32_MIN
|
||||
#define INT_FAST16_MAX INT32_MAX
|
||||
#define UINT_FAST16_MAX UINT32_MAX
|
||||
|
||||
#define INT_FAST32_MIN INT32_MIN
|
||||
#define INT_FAST32_MAX INT32_MAX
|
||||
#define UINT_FAST32_MAX UINT32_MAX
|
||||
|
||||
#define INT_FAST64_MIN INT64_MIN
|
||||
#define INT_FAST64_MAX INT64_MAX
|
||||
#define UINT_FAST64_MAX UINT64_MAX
|
||||
|
||||
#define INTPTR_MIN INT32_MIN
|
||||
#define INTPTR_MAX INT32_MAX
|
||||
#define UINTPTR_MAX UINT32_MAX
|
||||
|
||||
#define INTMAX_MIN INT64_MIN
|
||||
#define INTMAX_MAX INT64_MAX
|
||||
#define UINTMAX_MAX UINT64_MAX
|
||||
|
||||
#define PTRDIFF_MIN INT32_MIN
|
||||
#define PTRDIFF_MAX INT32_MAX
|
||||
|
||||
#define SIZE_MAX UINT32_MAX
|
||||
|
||||
#define INT8_C(x) x
|
||||
#define INT16_C(x) x
|
||||
#define INT32_C(x) x
|
||||
#define INT64_C(x) x ## LL
|
||||
|
||||
#define UINT8_C(x) x
|
||||
#define UINT16_C(x) x
|
||||
#define UINT32_C(x) x ## U
|
||||
#define UINT64_C(x) x ## ULL
|
||||
|
||||
#define INTMAX_C(x) x ## LL
|
||||
#define UINTMAX_C(x) x ## ULL
|
||||
|
||||
typedef signed char int8_t;
|
||||
typedef short int16_t;
|
||||
typedef int int32_t;
|
||||
typedef long long int64_t;
|
||||
|
||||
typedef unsigned char uint8_t;
|
||||
typedef unsigned short uint16_t;
|
||||
typedef unsigned int uint32_t;
|
||||
typedef unsigned long long uint64_t;
|
||||
|
||||
typedef signed char int8_least_t;
|
||||
typedef short int16_least_t;
|
||||
typedef int int32_least_t;
|
||||
typedef long long int64_least_t;
|
||||
|
||||
typedef unsigned char uint8_least_t;
|
||||
typedef unsigned short uint16_least_t;
|
||||
typedef unsigned int uint32_least_t;
|
||||
typedef unsigned long long uint64_least_t;
|
||||
|
||||
typedef int int8_fast_t;
|
||||
typedef int int16_fast_t;
|
||||
typedef int int32_fast_t;
|
||||
typedef long long int64_fast_t;
|
||||
|
||||
typedef unsigned int uint8_fast_t;
|
||||
typedef unsigned int uint16_fast_t;
|
||||
typedef unsigned int uint32_fast_t;
|
||||
typedef unsigned long long uint64_fast_t;
|
||||
|
||||
typedef long intptr_t;
|
||||
typedef unsigned long uintptr_t;
|
||||
|
||||
typedef long long intmax_t;
|
||||
typedef unsigned long long uintmax_t;
|
||||
|
||||
typedef long register_t;
|
||||
typedef unsigned long u_register_t;
|
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef SIZET_
|
||||
typedef unsigned int size_t;
|
||||
#define SIZET_
|
||||
#endif
|
||||
|
||||
#ifndef SSIZET_
|
||||
typedef int ssize_t;
|
||||
#define SSIZET_
|
||||
#endif
|
|
@ -0,0 +1,13 @@
|
|||
/*
|
||||
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef SIZET_
|
||||
typedef unsigned int size_t;
|
||||
#define SIZET_
|
||||
#endif
|
||||
|
||||
#define EXIT_FAILURE 1
|
||||
#define EXIT_SUCCESS 0
|
|
@ -0,0 +1,10 @@
|
|||
/*
|
||||
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef SIZET_
|
||||
typedef unsigned int size_t;
|
||||
#define SIZET_
|
||||
#endif
|
|
@ -0,0 +1,12 @@
|
|||
/*
|
||||
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef SIZET_
|
||||
typedef unsigned int size_t;
|
||||
#define SIZET_
|
||||
#endif
|
||||
|
||||
typedef long int time_t;
|
|
@ -1,4 +1,6 @@
|
|||
/*-
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*
|
||||
* Copyright (c) 2001 David E. O'Brien
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -30,14 +32,14 @@
|
|||
* $FreeBSD$
|
||||
*/
|
||||
/*
|
||||
* Portions copyright (c) 2017, ARM Limited and Contributors.
|
||||
* Portions copyright (c) 2018, ARM Limited and Contributors.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef _MACHINE_ENDIAN_H_
|
||||
#define _MACHINE_ENDIAN_H_
|
||||
#ifndef AARCH64_ENDIAN_H
|
||||
#define AARCH64_ENDIAN_H
|
||||
|
||||
#include <sys/_types.h>
|
||||
#include <stdint.h>
|
||||
|
||||
/*
|
||||
* Definitions for byte order, according to byte significance from low
|
||||
|
@ -63,80 +65,38 @@
|
|||
#define __htonl(x) (__bswap32(x))
|
||||
#define __htons(x) (__bswap16(x))
|
||||
|
||||
#ifdef AARCH32
|
||||
static __inline __uint64_t
|
||||
__bswap64(__uint64_t _x)
|
||||
static __inline uint64_t
|
||||
__bswap64(uint64_t x)
|
||||
{
|
||||
|
||||
return ((_x >> 56) | ((_x >> 40) & 0xff00) | ((_x >> 24) & 0xff0000) |
|
||||
((_x >> 8) & 0xff000000) | ((_x << 8) & ((__uint64_t)0xff << 32)) |
|
||||
((_x << 24) & ((__uint64_t)0xff << 40)) |
|
||||
((_x << 40) & ((__uint64_t)0xff << 48)) | ((_x << 56)));
|
||||
}
|
||||
|
||||
static __inline __uint32_t
|
||||
__bswap32_var(__uint32_t v)
|
||||
{
|
||||
__uint32_t t1;
|
||||
|
||||
__asm __volatile("eor %1, %0, %0, ror #16\n"
|
||||
"bic %1, %1, #0x00ff0000\n"
|
||||
"mov %0, %0, ror #8\n"
|
||||
"eor %0, %0, %1, lsr #8\n"
|
||||
: "+r" (v), "=r" (t1));
|
||||
|
||||
return (v);
|
||||
}
|
||||
|
||||
static __inline __uint16_t
|
||||
__bswap16_var(__uint16_t v)
|
||||
{
|
||||
__uint32_t ret = v & 0xffff;
|
||||
|
||||
__asm __volatile(
|
||||
"mov %0, %0, ror #8\n"
|
||||
"orr %0, %0, %0, lsr #16\n"
|
||||
"bic %0, %0, %0, lsl #16"
|
||||
: "+r" (ret));
|
||||
|
||||
return ((__uint16_t)ret);
|
||||
}
|
||||
#elif defined AARCH64
|
||||
static __inline __uint64_t
|
||||
__bswap64(__uint64_t x)
|
||||
{
|
||||
__uint64_t ret;
|
||||
uint64_t ret;
|
||||
|
||||
__asm __volatile("rev %0, %1\n"
|
||||
: "=&r" (ret), "+r" (x));
|
||||
|
||||
|
||||
return (ret);
|
||||
}
|
||||
|
||||
static __inline __uint32_t
|
||||
__bswap32_var(__uint32_t v)
|
||||
static __inline uint32_t
|
||||
__bswap32_var(uint32_t v)
|
||||
{
|
||||
__uint32_t ret;
|
||||
uint32_t ret;
|
||||
|
||||
__asm __volatile("rev32 %x0, %x1\n"
|
||||
: "=&r" (ret), "+r" (v));
|
||||
|
||||
|
||||
return (ret);
|
||||
}
|
||||
|
||||
static __inline __uint16_t
|
||||
__bswap16_var(__uint16_t v)
|
||||
static __inline uint16_t
|
||||
__bswap16_var(uint16_t v)
|
||||
{
|
||||
__uint32_t ret;
|
||||
uint32_t ret;
|
||||
|
||||
__asm __volatile("rev16 %w0, %w1\n"
|
||||
: "=&r" (ret), "+r" (v));
|
||||
|
||||
return ((__uint16_t)ret);
|
||||
}
|
||||
#else
|
||||
#error "Only AArch32 or AArch64 supported"
|
||||
#endif /* AARCH32 */
|
||||
return ((uint16_t)ret);
|
||||
}
|
||||
|
||||
#ifdef __OPTIMIZE__
|
||||
|
||||
|
@ -151,13 +111,13 @@ __bswap16_var(__uint16_t v)
|
|||
(((x) & 0x00ff) << 8))
|
||||
|
||||
#define __bswap16(x) \
|
||||
((__uint16_t)(__builtin_constant_p(x) ? \
|
||||
__bswap16_constant(x) : \
|
||||
((uint16_t)(__builtin_constant_p(x) ? \
|
||||
__bswap16_constant((uint16_t)(x)) : \
|
||||
__bswap16_var(x)))
|
||||
|
||||
#define __bswap32(x) \
|
||||
((__uint32_t)(__builtin_constant_p(x) ? \
|
||||
__bswap32_constant(x) : \
|
||||
((uint32_t)(__builtin_constant_p(x) ? \
|
||||
__bswap32_constant((uint32_t)(x)) : \
|
||||
__bswap32_var(x)))
|
||||
|
||||
#else
|
||||
|
@ -165,4 +125,4 @@ __bswap16_var(__uint16_t v)
|
|||
#define __bswap32(x) __bswap32_var(x)
|
||||
|
||||
#endif /* __OPTIMIZE__ */
|
||||
#endif /* !_MACHINE_ENDIAN_H_ */
|
||||
#endif /* AARCH64_ENDIAN_H */
|
|
@ -0,0 +1,26 @@
|
|||
/*
|
||||
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#define SCHAR_MAX 0x7F
|
||||
#define SCHAR_MIN (-SCHAR_MIN - 1)
|
||||
#define CHAR_MAX 0x7F
|
||||
#define CHAR_MIN (-CHAR_MAX - 1)
|
||||
#define UCHAR_MAX 0xFFU
|
||||
#define SHRT_MAX 0x7FFF
|
||||
#define SHRT_MIN (-SHRT_MAX - 1)
|
||||
#define USHRT_MAX 0xFFFFU
|
||||
#define INT_MAX 0x7FFFFFFF
|
||||
#define INT_MIN (-INT_MAX - 1)
|
||||
#define UINT_MAX 0xFFFFFFFFU
|
||||
#define LONG_MAX 0x7FFFFFFFFFFFFFFFL
|
||||
#define LONG_MIN (-LONG_MAX - 1L)
|
||||
#define ULONG_MAX 0xFFFFFFFFFFFFFFFFUL
|
||||
#define LLONG_MAX 0x7FFFFFFFFFFFFFFFLL
|
||||
#define LLONG_MIN (-LLONG_MAX - 1LL)
|
||||
#define ULLONG_MAX 0xFFFFFFFFFFFFFFFFULL
|
||||
|
||||
#define __LONG_BIT 64
|
||||
#define __WORD_BIT 32
|
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef SIZET_
|
||||
typedef unsigned long size_t;
|
||||
#define SIZET_
|
||||
#endif
|
||||
|
||||
#ifndef _PTRDIFF_T
|
||||
typedef long ptrdiff_t;
|
||||
#define _PTRDIFF_T
|
||||
#endif
|
|
@ -0,0 +1,118 @@
|
|||
/*
|
||||
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#define INT8_MAX 0x7F
|
||||
#define INT8_MIN (-INT8_MAX - 1)
|
||||
#define UINT8_MAX 0xFFU
|
||||
|
||||
#define INT16_MAX 0x7FFF
|
||||
#define INT16_MIN (-INT16_MAX - 1)
|
||||
#define UINT16_MAX 0xFFFFU
|
||||
|
||||
#define INT32_MAX 0x7FFFFFFF
|
||||
#define INT32_MIN (-INT32_MAX - 1)
|
||||
#define UINT32_MAX 0xFFFFFFFFU
|
||||
|
||||
#define INT64_MAX 0x7FFFFFFFFFFFFFFFLL
|
||||
#define INT64_MIN (-INT64_MAX - 1LL)
|
||||
#define UINT64_MAX 0xFFFFFFFFFFFFFFFFULL
|
||||
|
||||
#define INT_LEAST8_MIN INT8_MIN
|
||||
#define INT_LEAST8_MAX INT8_MAX
|
||||
#define UINT_LEAST8_MAX UINT8_MAX
|
||||
|
||||
#define INT_LEAST16_MIN INT16_MIN
|
||||
#define INT_LEAST16_MAX INT16_MAX
|
||||
#define UINT_LEAST16_MAX UINT16_MAX
|
||||
|
||||
#define INT_LEAST32_MIN INT32_MIN
|
||||
#define INT_LEAST32_MAX INT32_MAX
|
||||
#define UINT_LEAST32_MAX UINT32_MAX
|
||||
|
||||
#define INT_LEAST64_MIN INT64_MIN
|
||||
#define INT_LEAST64_MAX INT64_MAX
|
||||
#define UINT_LEAST64_MAX UINT64_MAX
|
||||
|
||||
#define INT_FAST8_MIN INT32_MIN
|
||||
#define INT_FAST8_MAX INT32_MAX
|
||||
#define UINT_FAST8_MAX UINT32_MAX
|
||||
|
||||
#define INT_FAST16_MIN INT32_MIN
|
||||
#define INT_FAST16_MAX INT32_MAX
|
||||
#define UINT_FAST16_MAX UINT32_MAX
|
||||
|
||||
#define INT_FAST32_MIN INT32_MIN
|
||||
#define INT_FAST32_MAX INT32_MAX
|
||||
#define UINT_FAST32_MAX UINT32_MAX
|
||||
|
||||
#define INT_FAST64_MIN INT64_MIN
|
||||
#define INT_FAST64_MAX INT64_MAX
|
||||
#define UINT_FAST64_MAX UINT64_MAX
|
||||
|
||||
#define INTPTR_MIN INT64_MIN
|
||||
#define INTPTR_MAX INT64_MAX
|
||||
#define UINTPTR_MAX UINT64_MAX
|
||||
|
||||
#define INTMAX_MIN INT64_MIN
|
||||
#define INTMAX_MAX INT64_MAX
|
||||
#define UINTMAX_MAX UINT64_MAX
|
||||
|
||||
#define PTRDIFF_MIN INT64_MIN
|
||||
#define PTRDIFF_MAX INT64_MAX
|
||||
|
||||
#define SIZE_MAX UINT64_MAX
|
||||
|
||||
#define INT8_C(x) x
|
||||
#define INT16_C(x) x
|
||||
#define INT32_C(x) x
|
||||
#define INT64_C(x) x ## LL
|
||||
|
||||
#define UINT8_C(x) x
|
||||
#define UINT16_C(x) x
|
||||
#define UINT32_C(x) x ## U
|
||||
#define UINT64_C(x) x ## ULL
|
||||
|
||||
#define INTMAX_C(x) x ## L
|
||||
#define UINTMAX_C(x) x ## ULL
|
||||
|
||||
typedef signed char int8_t;
|
||||
typedef short int16_t;
|
||||
typedef int int32_t;
|
||||
typedef long long int64_t;
|
||||
|
||||
typedef unsigned char uint8_t;
|
||||
typedef unsigned short uint16_t;
|
||||
typedef unsigned int uint32_t;
|
||||
typedef unsigned long long uint64_t;
|
||||
|
||||
typedef signed char int8_least_t;
|
||||
typedef short int16_least_t;
|
||||
typedef int int32_least_t;
|
||||
typedef long long int64_least_t;
|
||||
|
||||
typedef unsigned char uint8_least_t;
|
||||
typedef unsigned short uint16_least_t;
|
||||
typedef unsigned int uint32_least_t;
|
||||
typedef unsigned long long uint64_least_t;
|
||||
|
||||
typedef int int8_fast_t;
|
||||
typedef int int16_fast_t;
|
||||
typedef int int32_fast_t;
|
||||
typedef long long int64_fast_t;
|
||||
|
||||
typedef unsigned int uint8_fast_t;
|
||||
typedef unsigned int uint16_fast_t;
|
||||
typedef unsigned int uint32_fast_t;
|
||||
typedef unsigned long long uint64_fast_t;
|
||||
|
||||
typedef long intptr_t;
|
||||
typedef unsigned long uintptr_t;
|
||||
|
||||
typedef long intmax_t;
|
||||
typedef unsigned long uintmax_t;
|
||||
|
||||
typedef long register_t;
|
||||
typedef unsigned long u_register_t;
|
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef SIZET_
|
||||
typedef unsigned long size_t;
|
||||
#define SIZET_
|
||||
#endif
|
||||
|
||||
#ifndef SSIZET_
|
||||
typedef long ssize_t;
|
||||
#define SSIZET_
|
||||
#endif
|
|
@ -0,0 +1,13 @@
|
|||
/*
|
||||
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef SIZET_
|
||||
typedef unsigned long size_t;
|
||||
#define SIZET_
|
||||
#endif
|
||||
|
||||
#define EXIT_FAILURE 1
|
||||
#define EXIT_SUCCESS 0
|
|
@ -0,0 +1,10 @@
|
|||
/*
|
||||
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef SIZET_
|
||||
typedef unsigned long size_t;
|
||||
#define SIZET_
|
||||
#endif
|
|
@ -0,0 +1,12 @@
|
|||
/*
|
||||
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef SIZET_
|
||||
typedef unsigned long size_t;
|
||||
#define SIZET_
|
||||
#endif
|
||||
|
||||
typedef long int time_t;
|
|
@ -1,77 +1,39 @@
|
|||
/*-
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
* (c) UNIX System Laboratories, Inc.
|
||||
* All or some portions of this file are derived from material licensed
|
||||
* to the University of California by American Telephone and Telegraph
|
||||
* Co. or Unix System Laboratories, Inc. and are reproduced herein with
|
||||
* the permission of UNIX System Laboratories, Inc.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)assert.h 8.2 (Berkeley) 1/21/94
|
||||
* $FreeBSD$
|
||||
*/
|
||||
/*
|
||||
* Portions copyright (c) 2017, ARM Limited and Contributors.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef _ASSERT_H_
|
||||
#define _ASSERT_H_
|
||||
#ifndef ASSERT_H
|
||||
#define ASSERT_H
|
||||
|
||||
#include <cdefs.h>
|
||||
#include <debug.h>
|
||||
#include <platform_def.h>
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
#ifndef PLAT_LOG_LEVEL_ASSERT
|
||||
#define PLAT_LOG_LEVEL_ASSERT LOG_LEVEL
|
||||
#endif
|
||||
|
||||
#if ENABLE_ASSERTIONS
|
||||
#define _assert(e) assert(e)
|
||||
# if PLAT_LOG_LEVEL_ASSERT >= LOG_LEVEL_VERBOSE
|
||||
# define assert(e) ((e) ? (void)0 : __assert(__FILE__, __LINE__, #e))
|
||||
# define assert(e) ((e) ? (void)0 : __assert(__FILE__, __LINE__, #e))
|
||||
# elif PLAT_LOG_LEVEL_ASSERT >= LOG_LEVEL_INFO
|
||||
# define assert(e) ((e) ? (void)0 : __assert(__FILE__, __LINE__))
|
||||
# define assert(e) ((e) ? (void)0 : __assert(__FILE__, __LINE__))
|
||||
# else
|
||||
# define assert(e) ((e) ? (void)0 : __assert())
|
||||
# define assert(e) ((e) ? (void)0 : __assert())
|
||||
# endif
|
||||
#else
|
||||
#define assert(e) ((void)0)
|
||||
#define _assert(e) ((void)0)
|
||||
#define assert(e) ((void)0)
|
||||
#endif /* ENABLE_ASSERTIONS */
|
||||
|
||||
__BEGIN_DECLS
|
||||
#if PLAT_LOG_LEVEL_ASSERT >= LOG_LEVEL_VERBOSE
|
||||
void __assert(const char *, unsigned int, const char *) __dead2;
|
||||
__dead2 void __assert(const char *file, unsigned int line,
|
||||
const char *assertion);
|
||||
#elif PLAT_LOG_LEVEL_ASSERT >= LOG_LEVEL_INFO
|
||||
void __assert(const char *, unsigned int) __dead2;
|
||||
__dead2 void __assert(const char *file, unsigned int line);
|
||||
#else
|
||||
void __assert(void) __dead2;
|
||||
__dead2 void __assert(void);
|
||||
#endif
|
||||
__END_DECLS
|
||||
|
||||
#endif /* !_ASSERT_H_ */
|
||||
#endif /* ASSERT_H */
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
/*
|
||||
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef CDEFS_H
|
||||
#define CDEFS_H
|
||||
|
||||
#define __dead2 __attribute__((__noreturn__))
|
||||
#define __deprecated __attribute__((__deprecated__))
|
||||
#define __packed __attribute__((__packed__))
|
||||
#define __used __attribute__((__used__))
|
||||
#define __unused __attribute__((__unused__))
|
||||
#define __aligned(x) __attribute__((__aligned__(x)))
|
||||
#define __section(x) __attribute__((__section__(x)))
|
||||
|
||||
#define __printflike(fmtarg, firstvararg) \
|
||||
__attribute__((__format__ (__printf__, fmtarg, firstvararg)))
|
||||
|
||||
#define __weak_reference(sym, alias) \
|
||||
__asm__(".weak alias"); \
|
||||
__asm__(".equ alias, sym")
|
||||
|
||||
#define __STRING(x) #x
|
||||
#define __XSTRING(x) __STRING(x)
|
||||
|
||||
#endif /* CDEFS_H */
|
|
@ -1,4 +1,6 @@
|
|||
/*-
|
||||
* SPDX-License-Identifier: BSD-2-Clause-FreeBSD
|
||||
*
|
||||
* Copyright (c) 2002 Thomas Moestl <tmm@FreeBSD.org>
|
||||
* All rights reserved.
|
||||
*
|
||||
|
@ -25,34 +27,18 @@
|
|||
*
|
||||
* $FreeBSD$
|
||||
*/
|
||||
/*
|
||||
* Portions copyright (c) 2018, ARM Limited and Contributors.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef _SYS_ENDIAN_H_
|
||||
#define _SYS_ENDIAN_H_
|
||||
#ifndef ENDIAN_H
|
||||
#define ENDIAN_H
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <sys/_types.h>
|
||||
#include <machine/endian.h>
|
||||
#include <cdefs.h>
|
||||
#include <stdint.h>
|
||||
#include <endian_.h>
|
||||
|
||||
#ifndef _UINT8_T_DECLARED
|
||||
typedef __uint8_t uint8_t;
|
||||
#define _UINT8_T_DECLARED
|
||||
#endif
|
||||
|
||||
#ifndef _UINT16_T_DECLARED
|
||||
typedef __uint16_t uint16_t;
|
||||
#define _UINT16_T_DECLARED
|
||||
#endif
|
||||
|
||||
#ifndef _UINT32_T_DECLARED
|
||||
typedef __uint32_t uint32_t;
|
||||
#define _UINT32_T_DECLARED
|
||||
#endif
|
||||
|
||||
#ifndef _UINT64_T_DECLARED
|
||||
typedef __uint64_t uint64_t;
|
||||
#define _UINT64_T_DECLARED
|
||||
#endif
|
||||
|
||||
/*
|
||||
* General byte order swapping functions.
|
||||
*/
|
||||
|
@ -202,4 +188,4 @@ le64enc(void *pp, uint64_t u)
|
|||
le32enc(p + 4, (uint32_t)(u >> 32));
|
||||
}
|
||||
|
||||
#endif /* _SYS_ENDIAN_H_ */
|
||||
#endif /* SYS_ENDIAN_H */
|
|
@ -1,4 +1,6 @@
|
|||
/*-
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*
|
||||
* Copyright (c) 1982, 1986, 1989, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
* (c) UNIX System Laboratories, Inc.
|
||||
|
@ -15,7 +17,7 @@
|
|||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* 3. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
|
@ -34,17 +36,13 @@
|
|||
* @(#)errno.h 8.5 (Berkeley) 1/21/94
|
||||
* $FreeBSD$
|
||||
*/
|
||||
/*
|
||||
* Portions copyright (c) 2018, ARM Limited and Contributors.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef _SYS_ERRNO_H_
|
||||
#define _SYS_ERRNO_H_
|
||||
|
||||
#ifndef _KERNEL
|
||||
#include <sys/cdefs.h>
|
||||
__BEGIN_DECLS
|
||||
int * __error(void);
|
||||
__END_DECLS
|
||||
#define errno (* __error())
|
||||
#endif
|
||||
#ifndef ERRNO_H
|
||||
#define ERRNO_H
|
||||
|
||||
#define EPERM 1 /* Operation not permitted */
|
||||
#define ENOENT 2 /* No such file or directory */
|
||||
|
@ -61,9 +59,7 @@ __END_DECLS
|
|||
#define ENOMEM 12 /* Cannot allocate memory */
|
||||
#define EACCES 13 /* Permission denied */
|
||||
#define EFAULT 14 /* Bad address */
|
||||
#ifndef _POSIX_SOURCE
|
||||
#define ENOTBLK 15 /* Block device required */
|
||||
#endif
|
||||
#define EBUSY 16 /* Device busy */
|
||||
#define EEXIST 17 /* File exists */
|
||||
#define EXDEV 18 /* Cross-device link */
|
||||
|
@ -74,9 +70,7 @@ __END_DECLS
|
|||
#define ENFILE 23 /* Too many open files in system */
|
||||
#define EMFILE 24 /* Too many open files */
|
||||
#define ENOTTY 25 /* Inappropriate ioctl for device */
|
||||
#ifndef _POSIX_SOURCE
|
||||
#define ETXTBSY 26 /* Text file busy */
|
||||
#endif
|
||||
#define EFBIG 27 /* File too large */
|
||||
#define ENOSPC 28 /* No space left on device */
|
||||
#define ESPIPE 29 /* Illegal seek */
|
||||
|
@ -90,7 +84,6 @@ __END_DECLS
|
|||
|
||||
/* non-blocking and interrupt i/o */
|
||||
#define EAGAIN 35 /* Resource temporarily unavailable */
|
||||
#ifndef _POSIX_SOURCE
|
||||
#define EWOULDBLOCK EAGAIN /* Operation would block */
|
||||
#define EINPROGRESS 36 /* Operation now in progress */
|
||||
#define EALREADY 37 /* Operation already in progress */
|
||||
|
@ -125,18 +118,14 @@ __END_DECLS
|
|||
#define ECONNREFUSED 61 /* Connection refused */
|
||||
|
||||
#define ELOOP 62 /* Too many levels of symbolic links */
|
||||
#endif /* _POSIX_SOURCE */
|
||||
#define ENAMETOOLONG 63 /* File name too long */
|
||||
|
||||
/* should be rearranged */
|
||||
#ifndef _POSIX_SOURCE
|
||||
#define EHOSTDOWN 64 /* Host is down */
|
||||
#define EHOSTUNREACH 65 /* No route to host */
|
||||
#endif /* _POSIX_SOURCE */
|
||||
#define ENOTEMPTY 66 /* Directory not empty */
|
||||
|
||||
/* quotas & mush */
|
||||
#ifndef _POSIX_SOURCE
|
||||
#define EPROCLIM 67 /* Too many processes */
|
||||
#define EUSERS 68 /* Too many users */
|
||||
#define EDQUOT 69 /* Disc quota exceeded */
|
||||
|
@ -149,12 +138,10 @@ __END_DECLS
|
|||
#define EPROGUNAVAIL 74 /* RPC prog. not avail */
|
||||
#define EPROGMISMATCH 75 /* Program version wrong */
|
||||
#define EPROCUNAVAIL 76 /* Bad procedure for program */
|
||||
#endif /* _POSIX_SOURCE */
|
||||
|
||||
#define ENOLCK 77 /* No locks available */
|
||||
#define ENOSYS 78 /* Function not implemented */
|
||||
|
||||
#ifndef _POSIX_SOURCE
|
||||
#define EFTYPE 79 /* Inappropriate file type or format */
|
||||
#define EAUTH 80 /* Authentication error */
|
||||
#define ENEEDAUTH 81 /* Need authenticator */
|
||||
|
@ -166,28 +153,17 @@ __END_DECLS
|
|||
#define ENOATTR 87 /* Attribute not found */
|
||||
|
||||
#define EDOOFUS 88 /* Programming error */
|
||||
#endif /* _POSIX_SOURCE */
|
||||
|
||||
#define EBADMSG 89 /* Bad message */
|
||||
#define EMULTIHOP 90 /* Multihop attempted */
|
||||
#define ENOLINK 91 /* Link has been severed */
|
||||
#define EPROTO 92 /* Protocol error */
|
||||
|
||||
#ifndef _POSIX_SOURCE
|
||||
#define ENOTCAPABLE 93 /* Capabilities insufficient */
|
||||
#define ECAPMODE 94 /* Not permitted in capability mode */
|
||||
#endif /* _POSIX_SOURCE */
|
||||
#define ENOTRECOVERABLE 95 /* State not recoverable */
|
||||
#define EOWNERDEAD 96 /* Previous owner died */
|
||||
|
||||
#ifndef _POSIX_SOURCE
|
||||
#define ELAST 94 /* Must be equal largest errno */
|
||||
#endif /* _POSIX_SOURCE */
|
||||
#define ELAST 96 /* Must be equal largest errno */
|
||||
|
||||
#ifdef _KERNEL
|
||||
/* pseudo-errors returned inside kernel to modify return to process */
|
||||
#define ERESTART (-1) /* restart syscall */
|
||||
#define EJUSTRETURN (-2) /* don't modify regs, just return */
|
||||
#define ENOIOCTL (-3) /* ioctl not handled by this layer */
|
||||
#define EDIRIOCTL (-4) /* do direct ioctl in GEOM */
|
||||
#endif
|
||||
|
||||
#endif
|
||||
#endif /* ERRNO_H */
|
|
@ -1,52 +0,0 @@
|
|||
/*-
|
||||
* Copyright (c) 2001 Mike Barcroft <mike@FreeBSD.org>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $FreeBSD$
|
||||
*/
|
||||
|
||||
#ifndef _INTTYPES_H_
|
||||
#define _INTTYPES_H_
|
||||
|
||||
#include <machine/_inttypes.h>
|
||||
#include <sys/stdint.h>
|
||||
|
||||
typedef struct {
|
||||
intmax_t quot; /* Quotient. */
|
||||
intmax_t rem; /* Remainder. */
|
||||
} imaxdiv_t;
|
||||
|
||||
__BEGIN_DECLS
|
||||
#ifdef _XLOCALE_H_
|
||||
#include <xlocale/_inttypes.h>
|
||||
#endif
|
||||
intmax_t imaxabs(intmax_t) __pure2;
|
||||
imaxdiv_t imaxdiv(intmax_t, intmax_t) __pure2;
|
||||
|
||||
intmax_t strtoimax(const char *__restrict, char **__restrict, int);
|
||||
uintmax_t strtoumax(const char *__restrict, char **__restrict, int);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* !_INTTYPES_H_ */
|
|
@ -0,0 +1,19 @@
|
|||
/*
|
||||
* Copyright (c) 2012-2017 Roberto E. Vargas Caballero
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
/*
|
||||
* Portions copyright (c) 2018, ARM Limited and Contributors.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef LIMITS_H
|
||||
#define LIMITS_H
|
||||
|
||||
#include <limits_.h>
|
||||
|
||||
#define CHAR_BIT 8
|
||||
#define MB_LEN_MAX 1
|
||||
|
||||
#endif /* LIMITS_H */
|
|
@ -1,15 +0,0 @@
|
|||
/*
|
||||
* Copyright (c) 2015, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef _MACHINE_INTTYPES_H_
|
||||
#define _MACHINE_INTTYPES_H_
|
||||
|
||||
/*
|
||||
* Trusted Firmware does not depend on any definitions in this file. Content
|
||||
* will be added as needed.
|
||||
*/
|
||||
|
||||
#endif /* !_MACHINE_INTTYPES_H_ */
|
|
@ -1,105 +0,0 @@
|
|||
/*-
|
||||
* Copyright (c) 1988, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)limits.h 8.3 (Berkeley) 1/4/94
|
||||
* $FreeBSD$
|
||||
*/
|
||||
|
||||
/*
|
||||
* Portions copyright (c) 2017, ARM Limited and Contributors.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef _MACHINE__LIMITS_H_
|
||||
#define _MACHINE__LIMITS_H_
|
||||
|
||||
/*
|
||||
* According to ANSI (section 2.2.4.2), the values below must be usable by
|
||||
* #if preprocessing directives. Additionally, the expression must have the
|
||||
* same type as would an expression that is an object of the corresponding
|
||||
* type converted according to the integral promotions. The subtraction for
|
||||
* INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
|
||||
* unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
|
||||
*/
|
||||
|
||||
#define __CHAR_BIT 8 /* number of bits in a char */
|
||||
|
||||
#define __SCHAR_MAX 0x7f /* max value for a signed char */
|
||||
#define __SCHAR_MIN (-0x7f-1) /* min value for a signed char */
|
||||
|
||||
#define __UCHAR_MAX 0xff /* max value for an unsigned char */
|
||||
|
||||
#define __USHRT_MAX 0xffff /* max value for an unsigned short */
|
||||
#define __SHRT_MAX 0x7fff /* max value for a short */
|
||||
#define __SHRT_MIN (-0x7fff-1) /* min value for a short */
|
||||
|
||||
#define __UINT_MAX 0xffffffffU /* max value for an unsigned int */
|
||||
#define __INT_MAX 0x7fffffff /* max value for an int */
|
||||
#define __INT_MIN (-0x7fffffff-1) /* min value for an int */
|
||||
|
||||
#ifdef AARCH32
|
||||
#define __ULONG_MAX 0xffffffffUL /* max for an unsigned long */
|
||||
#define __LONG_MAX 0x7fffffffL /* max for a long */
|
||||
#define __LONG_MIN (-0x7fffffffL-1) /* min for a long */
|
||||
#else
|
||||
#define __ULONG_MAX 0xffffffffffffffffUL /* max for an unsigned long */
|
||||
#define __LONG_MAX 0x7fffffffffffffffL /* max for a long */
|
||||
#define __LONG_MIN (-0x7fffffffffffffffL-1) /* min for a long */
|
||||
#endif
|
||||
|
||||
#define __ULLONG_MAX 0xffffffffffffffffULL /* max for an unsigned long long */
|
||||
#define __LLONG_MAX 0x7fffffffffffffffLL /* max for a long long */
|
||||
#define __LLONG_MIN (-0x7fffffffffffffffLL-1) /* min for a long long */
|
||||
|
||||
#define __SSIZE_MAX __LONG_MAX /* max value for a ssize_t */
|
||||
|
||||
#define __SIZE_T_MAX __ULONG_MAX /* max value for a size_t */
|
||||
|
||||
#define __OFF_MAX __LONG_MAX /* max value for an off_t */
|
||||
#define __OFF_MIN __LONG_MIN /* min value for an off_t */
|
||||
|
||||
#ifdef AARCH32
|
||||
/* Quads and long longs are the same size. Ensure they stay in sync. */
|
||||
#define __UQUAD_MAX (__ULLONG_MAX) /* max value for a uquad_t */
|
||||
#define __QUAD_MAX (__LLONG_MAX) /* max value for a quad_t */
|
||||
#define __QUAD_MIN (__LLONG_MIN) /* min value for a quad_t */
|
||||
#else
|
||||
/* Quads and longs are the same size. Ensure they stay in sync. */
|
||||
#define __UQUAD_MAX (__ULONG_MAX) /* max value for a uquad_t */
|
||||
#define __QUAD_MAX (__LONG_MAX) /* max value for a quad_t */
|
||||
#define __QUAD_MIN (__LONG_MIN) /* min value for a quad_t */
|
||||
#endif
|
||||
|
||||
#ifdef AARCH32
|
||||
#define __LONG_BIT 32
|
||||
#else
|
||||
#define __LONG_BIT 64
|
||||
#endif
|
||||
#define __WORD_BIT 32
|
||||
|
||||
/* Minimum signal stack size. */
|
||||
#define __MINSIGSTKSZ (1024 * 4)
|
||||
|
||||
#endif /* !_MACHINE__LIMITS_H_ */
|
|
@ -1,184 +0,0 @@
|
|||
/*-
|
||||
* Copyright (c) 2001, 2002 Mike Barcroft <mike@FreeBSD.org>
|
||||
* Copyright (c) 2001 The NetBSD Foundation, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This code is derived from software contributed to The NetBSD Foundation
|
||||
* by Klaus Klein.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
|
||||
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
|
||||
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* $FreeBSD$
|
||||
*/
|
||||
|
||||
/*
|
||||
* Portions copyright (c) 2016-2017, ARM Limited and Contributors.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef _MACHINE__STDINT_H_
|
||||
#define _MACHINE__STDINT_H_
|
||||
|
||||
#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS)
|
||||
|
||||
#define INT8_C(c) (c)
|
||||
#define INT16_C(c) (c)
|
||||
#define INT32_C(c) (c)
|
||||
#define INT64_C(c) (c ## LL)
|
||||
|
||||
#define UINT8_C(c) (c)
|
||||
#define UINT16_C(c) (c)
|
||||
#define UINT32_C(c) (c ## U)
|
||||
#define UINT64_C(c) (c ## ULL)
|
||||
|
||||
#define INTMAX_C(c) INT64_C(c)
|
||||
#define UINTMAX_C(c) UINT64_C(c)
|
||||
|
||||
#endif /* !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) */
|
||||
|
||||
#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
|
||||
|
||||
/*
|
||||
* ISO/IEC 9899:1999
|
||||
* 7.18.2.1 Limits of exact-width integer types
|
||||
*/
|
||||
/* Minimum values of exact-width signed integer types. */
|
||||
#define INT8_MIN (-0x7f-1)
|
||||
#define INT16_MIN (-0x7fff-1)
|
||||
#define INT32_MIN (-0x7fffffff-1)
|
||||
#define INT64_MIN (-0x7fffffffffffffffLL-1)
|
||||
|
||||
/* Maximum values of exact-width signed integer types. */
|
||||
#define INT8_MAX 0x7f
|
||||
#define INT16_MAX 0x7fff
|
||||
#define INT32_MAX 0x7fffffff
|
||||
#define INT64_MAX 0x7fffffffffffffffLL
|
||||
|
||||
/* Maximum values of exact-width unsigned integer types. */
|
||||
#define UINT8_MAX 0xff
|
||||
#define UINT16_MAX 0xffff
|
||||
#define UINT32_MAX 0xffffffffU
|
||||
#define UINT64_MAX 0xffffffffffffffffULL
|
||||
|
||||
/*
|
||||
* ISO/IEC 9899:1999
|
||||
* 7.18.2.2 Limits of minimum-width integer types
|
||||
*/
|
||||
/* Minimum values of minimum-width signed integer types. */
|
||||
#define INT_LEAST8_MIN INT8_MIN
|
||||
#define INT_LEAST16_MIN INT16_MIN
|
||||
#define INT_LEAST32_MIN INT32_MIN
|
||||
#define INT_LEAST64_MIN INT64_MIN
|
||||
|
||||
/* Maximum values of minimum-width signed integer types. */
|
||||
#define INT_LEAST8_MAX INT8_MAX
|
||||
#define INT_LEAST16_MAX INT16_MAX
|
||||
#define INT_LEAST32_MAX INT32_MAX
|
||||
#define INT_LEAST64_MAX INT64_MAX
|
||||
|
||||
/* Maximum values of minimum-width unsigned integer types. */
|
||||
#define UINT_LEAST8_MAX UINT8_MAX
|
||||
#define UINT_LEAST16_MAX UINT16_MAX
|
||||
#define UINT_LEAST32_MAX UINT32_MAX
|
||||
#define UINT_LEAST64_MAX UINT64_MAX
|
||||
|
||||
/*
|
||||
* ISO/IEC 9899:1999
|
||||
* 7.18.2.3 Limits of fastest minimum-width integer types
|
||||
*/
|
||||
/* Minimum values of fastest minimum-width signed integer types. */
|
||||
#define INT_FAST8_MIN INT32_MIN
|
||||
#define INT_FAST16_MIN INT32_MIN
|
||||
#define INT_FAST32_MIN INT32_MIN
|
||||
#define INT_FAST64_MIN INT64_MIN
|
||||
|
||||
/* Maximum values of fastest minimum-width signed integer types. */
|
||||
#define INT_FAST8_MAX INT32_MAX
|
||||
#define INT_FAST16_MAX INT32_MAX
|
||||
#define INT_FAST32_MAX INT32_MAX
|
||||
#define INT_FAST64_MAX INT64_MAX
|
||||
|
||||
/* Maximum values of fastest minimum-width unsigned integer types. */
|
||||
#define UINT_FAST8_MAX UINT32_MAX
|
||||
#define UINT_FAST16_MAX UINT32_MAX
|
||||
#define UINT_FAST32_MAX UINT32_MAX
|
||||
#define UINT_FAST64_MAX UINT64_MAX
|
||||
|
||||
/*
|
||||
* ISO/IEC 9899:1999
|
||||
* 7.18.2.4 Limits of integer types capable of holding object pointers
|
||||
*/
|
||||
#ifdef AARCH32
|
||||
#define INTPTR_MIN INT32_MIN
|
||||
#define INTPTR_MAX INT32_MAX
|
||||
#define UINTPTR_MAX UINT32_MAX
|
||||
#else
|
||||
#define INTPTR_MIN INT64_MIN
|
||||
#define INTPTR_MAX INT64_MAX
|
||||
#define UINTPTR_MAX UINT64_MAX
|
||||
#endif
|
||||
|
||||
/*
|
||||
* ISO/IEC 9899:1999
|
||||
* 7.18.2.5 Limits of greatest-width integer types
|
||||
*/
|
||||
#define INTMAX_MIN INT64_MIN
|
||||
#define INTMAX_MAX INT64_MAX
|
||||
#define UINTMAX_MAX UINT64_MAX
|
||||
|
||||
/*
|
||||
* ISO/IEC 9899:1999
|
||||
* 7.18.3 Limits of other integer types
|
||||
*/
|
||||
/* Limits of ptrdiff_t. */
|
||||
#ifdef AARCH32
|
||||
#define PTRDIFF_MIN INT32_MIN
|
||||
#define PTRDIFF_MAX INT32_MAX
|
||||
#else
|
||||
#define PTRDIFF_MIN INT64_MIN
|
||||
#define PTRDIFF_MAX INT64_MAX
|
||||
#endif
|
||||
|
||||
/* Limits of sig_atomic_t. */
|
||||
#define SIG_ATOMIC_MIN INT32_MIN
|
||||
#define SIG_ATOMIC_MAX INT32_MAX
|
||||
|
||||
/* Limit of size_t. */
|
||||
#ifdef AARCH32
|
||||
#define SIZE_MAX UINT32_MAX
|
||||
#else
|
||||
#define SIZE_MAX UINT64_MAX
|
||||
#endif
|
||||
|
||||
#ifndef WCHAR_MIN /* Also possibly defined in <wchar.h> */
|
||||
/* Limits of wchar_t. */
|
||||
#define WCHAR_MIN INT32_MIN
|
||||
#define WCHAR_MAX INT32_MAX
|
||||
#endif
|
||||
|
||||
/* Limits of wint_t. */
|
||||
#define WINT_MIN INT32_MIN
|
||||
#define WINT_MAX INT32_MAX
|
||||
|
||||
#endif /* !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) */
|
||||
|
||||
#endif /* !_MACHINE__STDINT_H_ */
|
|
@ -1,121 +0,0 @@
|
|||
/*-
|
||||
* Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
|
||||
* Copyright (c) 1990, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* From: @(#)ansi.h 8.2 (Berkeley) 1/4/94
|
||||
* From: @(#)types.h 8.3 (Berkeley) 1/5/94
|
||||
* $FreeBSD$
|
||||
*/
|
||||
/*
|
||||
* Portions copyright (c) 2016, ARM Limited and Contributors.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef _MACHINE__TYPES_H_
|
||||
#define _MACHINE__TYPES_H_
|
||||
|
||||
#ifndef _SYS_CDEFS_H_
|
||||
#error this file needs sys/cdefs.h as a prerequisite
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Basic types upon which most other types are built.
|
||||
*/
|
||||
typedef __signed char __int8_t;
|
||||
typedef unsigned char __uint8_t;
|
||||
typedef short __int16_t;
|
||||
typedef unsigned short __uint16_t;
|
||||
typedef int __int32_t;
|
||||
typedef unsigned int __uint32_t;
|
||||
typedef long long __int64_t;
|
||||
typedef unsigned long long __uint64_t;
|
||||
|
||||
/*
|
||||
* Standard type definitions.
|
||||
*/
|
||||
typedef __int32_t __clock_t; /* clock()... */
|
||||
typedef long __critical_t;
|
||||
typedef double __double_t;
|
||||
typedef float __float_t;
|
||||
typedef long __intfptr_t;
|
||||
typedef __int64_t __intmax_t;
|
||||
typedef long __intptr_t;
|
||||
typedef __int32_t __int_fast8_t;
|
||||
typedef __int32_t __int_fast16_t;
|
||||
typedef __int32_t __int_fast32_t;
|
||||
typedef __int64_t __int_fast64_t;
|
||||
typedef __int8_t __int_least8_t;
|
||||
typedef __int16_t __int_least16_t;
|
||||
typedef __int32_t __int_least32_t;
|
||||
typedef __int64_t __int_least64_t;
|
||||
typedef long __ptrdiff_t; /* ptr1 - ptr2 */
|
||||
typedef long __register_t;
|
||||
typedef long __segsz_t; /* segment size (in pages) */
|
||||
#ifdef AARCH32
|
||||
typedef unsigned int __size_t; /* sizeof() */
|
||||
typedef int __ssize_t; /* byte count or error */
|
||||
#elif defined AARCH64
|
||||
typedef unsigned long __size_t; /* sizeof() */
|
||||
typedef long __ssize_t; /* byte count or error */
|
||||
#else
|
||||
#error "Only AArch32 or AArch64 supported"
|
||||
#endif /* AARCH32 */
|
||||
typedef __int64_t __time_t; /* time()... */
|
||||
typedef unsigned long __uintfptr_t;
|
||||
typedef __uint64_t __uintmax_t;
|
||||
typedef unsigned long __uintptr_t;
|
||||
typedef __uint32_t __uint_fast8_t;
|
||||
typedef __uint32_t __uint_fast16_t;
|
||||
typedef __uint32_t __uint_fast32_t;
|
||||
typedef __uint64_t __uint_fast64_t;
|
||||
typedef __uint8_t __uint_least8_t;
|
||||
typedef __uint16_t __uint_least16_t;
|
||||
typedef __uint32_t __uint_least32_t;
|
||||
typedef __uint64_t __uint_least64_t;
|
||||
typedef unsigned long __u_register_t;
|
||||
typedef unsigned long __vm_offset_t;
|
||||
typedef __int64_t __vm_ooffset_t;
|
||||
typedef unsigned long __vm_paddr_t;
|
||||
typedef __uint64_t __vm_pindex_t;
|
||||
typedef unsigned long __vm_size_t;
|
||||
|
||||
/*
|
||||
* Unusual type definitions.
|
||||
*/
|
||||
#ifdef __GNUCLIKE_BUILTIN_VARARGS
|
||||
typedef __builtin_va_list __va_list; /* internally known to gcc */
|
||||
#else
|
||||
typedef char * __va_list;
|
||||
#endif /* __GNUCLIKE_BUILTIN_VARARGS */
|
||||
#if defined(__GNUCLIKE_BUILTIN_VAALIST) && !defined(__GNUC_VA_LIST) \
|
||||
&& !defined(__NO_GNUC_VA_LIST)
|
||||
#define __GNUC_VA_LIST
|
||||
typedef __va_list __gnuc_va_list; /* compatibility w/GNU headers*/
|
||||
#endif
|
||||
|
||||
#endif /* !_MACHINE__TYPES_H_ */
|
|
@ -0,0 +1,20 @@
|
|||
/*
|
||||
* Copyright (c) 2012-2017 Roberto E. Vargas Caballero
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
/*
|
||||
* Portions copyright (c) 2018, ARM Limited and Contributors.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef STDARG_H
|
||||
#define STDARG_H
|
||||
|
||||
#define va_list __builtin_va_list
|
||||
#define va_start(ap, last) __builtin_va_start(ap, last)
|
||||
#define va_end(ap) __builtin_va_end(ap)
|
||||
#define va_copy(to, from) __builtin_va_copy(to, from)
|
||||
#define va_arg(to, type) __builtin_va_arg(to, type)
|
||||
|
||||
#endif /* STDARG_H */
|
|
@ -1,64 +1,22 @@
|
|||
/*-
|
||||
* Copyright (c) 1990, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
/*
|
||||
* Copyright (c) 2012-2017 Roberto E. Vargas Caballero
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)stddef.h 8.1 (Berkeley) 6/2/93
|
||||
*
|
||||
* $FreeBSD$
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
/*
|
||||
* Portions copyright (c) 2018, ARM Limited and Contributors.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef _STDDEF_H_
|
||||
#define _STDDEF_H_
|
||||
#ifndef STDDEF_H
|
||||
#define STDDEF_H
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <sys/_null.h>
|
||||
#include <sys/_types.h>
|
||||
#include <stddef_.h>
|
||||
|
||||
typedef __ptrdiff_t ptrdiff_t;
|
||||
|
||||
#if __BSD_VISIBLE
|
||||
#ifndef _RUNE_T_DECLARED
|
||||
typedef __rune_t rune_t;
|
||||
#define _RUNE_T_DECLARED
|
||||
#endif
|
||||
#ifndef NULL
|
||||
#define NULL ((void *) 0)
|
||||
#endif
|
||||
|
||||
#ifndef _SIZE_T_DECLARED
|
||||
typedef __size_t size_t;
|
||||
#define _SIZE_T_DECLARED
|
||||
#endif
|
||||
#define offsetof(st, m) __builtin_offsetof(st, m)
|
||||
|
||||
#ifndef __cplusplus
|
||||
#ifndef _WCHAR_T_DECLARED
|
||||
typedef __wchar_t wchar_t;
|
||||
#define _WCHAR_T_DECLARED
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define offsetof(type, member) __offsetof(type, member)
|
||||
|
||||
#endif /* _STDDEF_H_ */
|
||||
#endif /* STDDEF_H */
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
/*
|
||||
* Copyright (c) 2012-2017 Roberto E. Vargas Caballero
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
/*
|
||||
* Portions copyright (c) 2018, ARM Limited and Contributors.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef STDINT_H
|
||||
#define STDINT_H
|
||||
|
||||
#include <stdint_.h>
|
||||
|
||||
#endif /* STDINT_H */
|
|
@ -1,78 +1,33 @@
|
|||
/*-
|
||||
* Copyright (c) 1990, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This code is derived from software contributed to Berkeley by
|
||||
* Chris Torek.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)stdio.h 8.5 (Berkeley) 4/29/95
|
||||
* $FreeBSD$
|
||||
*/
|
||||
|
||||
/*
|
||||
* Portions copyright (c) 2013-2014, ARM Limited and Contributors.
|
||||
* Copyright (c) 2012-2017 Roberto E. Vargas Caballero
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
/*
|
||||
* Portions copyright (c) 2018, ARM Limited and Contributors.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef STDIO_H
|
||||
#define STDIO_H
|
||||
|
||||
#ifndef _STDIO_H_
|
||||
#define _STDIO_H_
|
||||
#include <cdefs.h>
|
||||
#include <stdio_.h>
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <sys/_null.h>
|
||||
#include <sys/_types.h>
|
||||
|
||||
#ifndef _SIZE_T_DECLARED
|
||||
typedef __size_t size_t;
|
||||
#define _SIZE_T_DECLARED
|
||||
#ifndef NULL
|
||||
#define NULL ((void *) 0)
|
||||
#endif
|
||||
|
||||
#ifndef _SSIZE_T_DECLARED
|
||||
#define _SSIZE_T_DECLARED
|
||||
typedef __ssize_t ssize_t;
|
||||
#define EOF -1
|
||||
|
||||
int printf(const char *fmt, ...) __printflike(1, 2);
|
||||
int snprintf(char *s, size_t n, const char *fmt, ...) __printflike(3, 4);
|
||||
|
||||
#ifdef STDARG_H
|
||||
int vprintf(const char *fmt, va_list args);
|
||||
#endif
|
||||
|
||||
#define EOF (-1)
|
||||
int putchar(int c);
|
||||
int puts(const char *s);
|
||||
|
||||
int printf(const char * __restrict, ...) __printflike(1, 2);
|
||||
int putchar(int);
|
||||
int puts(const char *);
|
||||
int sprintf(char * __restrict, const char * __restrict, ...)
|
||||
__printflike(2, 3);
|
||||
int vsprintf(char * __restrict, const char * __restrict,
|
||||
__va_list) __printflike(2, 0);
|
||||
|
||||
int sscanf(const char *__restrict, char const *__restrict, ...);
|
||||
|
||||
#if __ISO_C_VISIBLE >= 1999
|
||||
int snprintf(char * __restrict, size_t, const char * __restrict,
|
||||
...) __printflike(3, 4);
|
||||
int vsnprintf(char * __restrict, size_t, const char * __restrict,
|
||||
__va_list) __printflike(3, 0);
|
||||
#endif
|
||||
|
||||
#endif /* !_STDIO_H_ */
|
||||
#endif /* STDIO_H */
|
||||
|
|
|
@ -1,313 +1,26 @@
|
|||
/*-
|
||||
* Copyright (c) 1990, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
/*
|
||||
* Copyright (c) 2012-2017 Roberto E. Vargas Caballero
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)stdlib.h 8.5 (Berkeley) 5/19/95
|
||||
* $FreeBSD$
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef _STDLIB_H_
|
||||
#define _STDLIB_H_
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <sys/_null.h>
|
||||
#include <sys/_types.h>
|
||||
|
||||
#if __BSD_VISIBLE
|
||||
#ifndef _RUNE_T_DECLARED
|
||||
typedef __rune_t rune_t;
|
||||
#define _RUNE_T_DECLARED
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef _SIZE_T_DECLARED
|
||||
typedef __size_t size_t;
|
||||
#define _SIZE_T_DECLARED
|
||||
#endif
|
||||
|
||||
typedef struct {
|
||||
int quot; /* quotient */
|
||||
int rem; /* remainder */
|
||||
} div_t;
|
||||
|
||||
typedef struct {
|
||||
long quot;
|
||||
long rem;
|
||||
} ldiv_t;
|
||||
|
||||
#define EXIT_FAILURE 1
|
||||
#define EXIT_SUCCESS 0
|
||||
|
||||
#define RAND_MAX 0x7ffffffd
|
||||
|
||||
__BEGIN_DECLS
|
||||
#ifdef _XLOCALE_H_
|
||||
#include <xlocale/_stdlib.h>
|
||||
#endif
|
||||
extern int __mb_cur_max;
|
||||
extern int ___mb_cur_max(void);
|
||||
#define MB_CUR_MAX (___mb_cur_max())
|
||||
|
||||
_Noreturn void abort(void);
|
||||
int abs(int) __pure2;
|
||||
int atexit(void (*)(void));
|
||||
double atof(const char *);
|
||||
int atoi(const char *);
|
||||
long atol(const char *);
|
||||
void *bsearch(const void *, const void *, size_t,
|
||||
size_t, int (*)(const void *, const void *));
|
||||
void *calloc(size_t, size_t) __malloc_like;
|
||||
div_t div(int, int) __pure2;
|
||||
_Noreturn void exit(int);
|
||||
void free(void *);
|
||||
char *getenv(const char *);
|
||||
long labs(long) __pure2;
|
||||
ldiv_t ldiv(long, long) __pure2;
|
||||
void *malloc(size_t) __malloc_like;
|
||||
int mblen(const char *, size_t);
|
||||
void qsort(void *, size_t, size_t,
|
||||
int (*)(const void *, const void *));
|
||||
int rand(void);
|
||||
void *realloc(void *, size_t);
|
||||
void srand(unsigned);
|
||||
double strtod(const char *__restrict, char **__restrict);
|
||||
float strtof(const char *__restrict, char **__restrict);
|
||||
long strtol(const char *__restrict, char **__restrict, int);
|
||||
long double
|
||||
strtold(const char *__restrict, char **__restrict);
|
||||
unsigned long
|
||||
strtoul(const char *__restrict, char **__restrict, int);
|
||||
int system(const char *);
|
||||
|
||||
/*
|
||||
* Functions added in C99 which we make conditionally available in the
|
||||
* BSD^C89 namespace if the compiler supports `long long'.
|
||||
* The #if test is more complicated than it ought to be because
|
||||
* __BSD_VISIBLE implies __ISO_C_VISIBLE == 1999 *even if* `long long'
|
||||
* is not supported in the compilation environment (which therefore means
|
||||
* that it can't really be ISO C99).
|
||||
*
|
||||
* (The only other extension made by C99 in thie header is _Exit().)
|
||||
* Portions copyright (c) 2018, ARM Limited and Contributors.
|
||||
* All rights reserved.
|
||||
*/
|
||||
#if __ISO_C_VISIBLE >= 1999
|
||||
#ifdef __LONG_LONG_SUPPORTED
|
||||
/* LONGLONG */
|
||||
typedef struct {
|
||||
long long quot;
|
||||
long long rem;
|
||||
} lldiv_t;
|
||||
|
||||
/* LONGLONG */
|
||||
long long
|
||||
atoll(const char *);
|
||||
/* LONGLONG */
|
||||
long long
|
||||
llabs(long long) __pure2;
|
||||
/* LONGLONG */
|
||||
lldiv_t lldiv(long long, long long) __pure2;
|
||||
/* LONGLONG */
|
||||
long long
|
||||
strtoll(const char *__restrict, char **__restrict, int);
|
||||
/* LONGLONG */
|
||||
unsigned long long
|
||||
strtoull(const char *__restrict, char **__restrict, int);
|
||||
#endif /* __LONG_LONG_SUPPORTED */
|
||||
#ifndef STDLIB_H
|
||||
#define STDLIB_H
|
||||
|
||||
_Noreturn void _Exit(int);
|
||||
#endif /* __ISO_C_VISIBLE >= 1999 */
|
||||
#include <stdlib_.h>
|
||||
|
||||
/*
|
||||
* If we're in a mode greater than C99, expose C11 functions.
|
||||
*/
|
||||
#if __ISO_C_VISIBLE >= 2011 || __cplusplus >= 201103L
|
||||
void *aligned_alloc(size_t, size_t) __malloc_like;
|
||||
int at_quick_exit(void (*)(void));
|
||||
_Noreturn void
|
||||
quick_exit(int);
|
||||
#endif /* __ISO_C_VISIBLE >= 2011 */
|
||||
/*
|
||||
* Extensions made by POSIX relative to C.
|
||||
*/
|
||||
#if __POSIX_VISIBLE >= 199506 || __XSI_VISIBLE
|
||||
char *realpath(const char *__restrict, char *__restrict);
|
||||
#endif
|
||||
#if __POSIX_VISIBLE >= 199506
|
||||
int rand_r(unsigned *); /* (TSF) */
|
||||
#endif
|
||||
#if __POSIX_VISIBLE >= 200112
|
||||
int posix_memalign(void **, size_t, size_t); /* (ADV) */
|
||||
int setenv(const char *, const char *, int);
|
||||
int unsetenv(const char *);
|
||||
#ifndef NULL
|
||||
#define NULL ((void *) 0)
|
||||
#endif
|
||||
|
||||
#if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE
|
||||
int getsubopt(char **, char *const *, char **);
|
||||
#ifndef _MKDTEMP_DECLARED
|
||||
char *mkdtemp(char *);
|
||||
#define _MKDTEMP_DECLARED
|
||||
#endif
|
||||
#ifndef _MKSTEMP_DECLARED
|
||||
int mkstemp(char *);
|
||||
#define _MKSTEMP_DECLARED
|
||||
#endif
|
||||
#endif /* __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE */
|
||||
#define _ATEXIT_MAX 1
|
||||
|
||||
/*
|
||||
* The only changes to the XSI namespace in revision 6 were the deletion
|
||||
* of the ttyslot() and valloc() functions, which FreeBSD never declared
|
||||
* in this header. For revision 7, ecvt(), fcvt(), and gcvt(), which
|
||||
* FreeBSD also does not have, and mktemp(), are to be deleted.
|
||||
*/
|
||||
#if __XSI_VISIBLE
|
||||
/* XXX XSI requires pollution from <sys/wait.h> here. We'd rather not. */
|
||||
long a64l(const char *);
|
||||
double drand48(void);
|
||||
/* char *ecvt(double, int, int * __restrict, int * __restrict); */
|
||||
double erand48(unsigned short[3]);
|
||||
/* char *fcvt(double, int, int * __restrict, int * __restrict); */
|
||||
/* char *gcvt(double, int, int * __restrict, int * __restrict); */
|
||||
int grantpt(int);
|
||||
char *initstate(unsigned long /* XSI requires u_int */, char *, long);
|
||||
long jrand48(unsigned short[3]);
|
||||
char *l64a(long);
|
||||
void lcong48(unsigned short[7]);
|
||||
long lrand48(void);
|
||||
#if !defined(_MKTEMP_DECLARED) && (__BSD_VISIBLE || __XSI_VISIBLE <= 600)
|
||||
char *mktemp(char *);
|
||||
#define _MKTEMP_DECLARED
|
||||
#endif
|
||||
long mrand48(void);
|
||||
long nrand48(unsigned short[3]);
|
||||
int posix_openpt(int);
|
||||
char *ptsname(int);
|
||||
int putenv(char *);
|
||||
long random(void);
|
||||
unsigned short
|
||||
*seed48(unsigned short[3]);
|
||||
#ifndef _SETKEY_DECLARED
|
||||
int setkey(const char *);
|
||||
#define _SETKEY_DECLARED
|
||||
#endif
|
||||
char *setstate(/* const */ char *);
|
||||
void srand48(long);
|
||||
void srandom(unsigned long);
|
||||
int unlockpt(int);
|
||||
#endif /* __XSI_VISIBLE */
|
||||
extern void abort(void);
|
||||
extern int atexit(void (*func)(void));
|
||||
extern void exit(int status);
|
||||
|
||||
#if __BSD_VISIBLE
|
||||
extern const char *malloc_conf;
|
||||
extern void (*malloc_message)(void *, const char *);
|
||||
|
||||
/*
|
||||
* The alloca() function can't be implemented in C, and on some
|
||||
* platforms it can't be implemented at all as a callable function.
|
||||
* The GNU C compiler provides a built-in alloca() which we can use;
|
||||
* in all other cases, provide a prototype, mainly to pacify various
|
||||
* incarnations of lint. On platforms where alloca() is not in libc,
|
||||
* programs which use it will fail to link when compiled with non-GNU
|
||||
* compilers.
|
||||
*/
|
||||
#if __GNUC__ >= 2 || defined(__INTEL_COMPILER)
|
||||
#undef alloca /* some GNU bits try to get cute and define this on their own */
|
||||
#define alloca(sz) __builtin_alloca(sz)
|
||||
#elif defined(lint)
|
||||
void *alloca(size_t);
|
||||
#endif
|
||||
|
||||
void abort2(const char *, int, void **) __dead2;
|
||||
__uint32_t
|
||||
arc4random(void);
|
||||
void arc4random_addrandom(unsigned char *, int);
|
||||
void arc4random_buf(void *, size_t);
|
||||
void arc4random_stir(void);
|
||||
__uint32_t
|
||||
arc4random_uniform(__uint32_t);
|
||||
#ifdef __BLOCKS__
|
||||
int atexit_b(void (^)(void));
|
||||
void *bsearch_b(const void *, const void *, size_t,
|
||||
size_t, int (^)(const void *, const void *));
|
||||
#endif
|
||||
char *getbsize(int *, long *);
|
||||
/* getcap(3) functions */
|
||||
char *cgetcap(char *, const char *, int);
|
||||
int cgetclose(void);
|
||||
int cgetent(char **, char **, const char *);
|
||||
int cgetfirst(char **, char **);
|
||||
int cgetmatch(const char *, const char *);
|
||||
int cgetnext(char **, char **);
|
||||
int cgetnum(char *, const char *, long *);
|
||||
int cgetset(const char *);
|
||||
int cgetstr(char *, const char *, char **);
|
||||
int cgetustr(char *, const char *, char **);
|
||||
|
||||
int daemon(int, int);
|
||||
char *devname(__dev_t, __mode_t);
|
||||
char *devname_r(__dev_t, __mode_t, char *, int);
|
||||
char *fdevname(int);
|
||||
char *fdevname_r(int, char *, int);
|
||||
int getloadavg(double [], int);
|
||||
const char *
|
||||
getprogname(void);
|
||||
|
||||
int heapsort(void *, size_t, size_t, int (*)(const void *, const void *));
|
||||
#ifdef __BLOCKS__
|
||||
int heapsort_b(void *, size_t, size_t, int (^)(const void *, const void *));
|
||||
void qsort_b(void *, size_t, size_t,
|
||||
int (^)(const void *, const void *));
|
||||
#endif
|
||||
int l64a_r(long, char *, int);
|
||||
int mergesort(void *, size_t, size_t, int (*)(const void *, const void *));
|
||||
#ifdef __BLOCKS__
|
||||
int mergesort_b(void *, size_t, size_t, int (^)(const void *, const void *));
|
||||
#endif
|
||||
int mkostemp(char *, int);
|
||||
int mkostemps(char *, int, int);
|
||||
void qsort_r(void *, size_t, size_t, void *,
|
||||
int (*)(void *, const void *, const void *));
|
||||
int radixsort(const unsigned char **, int, const unsigned char *,
|
||||
unsigned);
|
||||
void *reallocf(void *, size_t);
|
||||
int rpmatch(const char *);
|
||||
void setprogname(const char *);
|
||||
int sradixsort(const unsigned char **, int, const unsigned char *,
|
||||
unsigned);
|
||||
void sranddev(void);
|
||||
void srandomdev(void);
|
||||
long long
|
||||
strtonum(const char *, long long, long long, const char **);
|
||||
|
||||
/* Deprecated interfaces, to be removed in FreeBSD 6.0. */
|
||||
__int64_t
|
||||
strtoq(const char *, char **, int);
|
||||
__uint64_t
|
||||
strtouq(const char *, char **, int);
|
||||
|
||||
extern char *suboptarg; /* getsubopt(3) external variable */
|
||||
#endif /* __BSD_VISIBLE */
|
||||
__END_DECLS
|
||||
|
||||
#endif /* !_STDLIB_H_ */
|
||||
#endif /* STDLIB_H */
|
||||
|
|
|
@ -1,69 +1,31 @@
|
|||
/*-
|
||||
* Copyright (c) 1990, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)string.h 8.1 (Berkeley) 6/2/93
|
||||
* $FreeBSD$
|
||||
*/
|
||||
|
||||
/*
|
||||
* Portions copyright (c) 2013-2017, ARM Limited and Contributors.
|
||||
* Copyright (c) 2012-2017 Roberto E. Vargas Caballero
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
/*
|
||||
* Portions copyright (c) 2018, ARM Limited and Contributors.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef _STRING_H_
|
||||
#define _STRING_H_
|
||||
#ifndef STRING_H
|
||||
#define STRING_H
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <sys/_null.h>
|
||||
#include <sys/_types.h>
|
||||
#include <string_.h>
|
||||
|
||||
#ifndef _SIZE_T_DECLARED
|
||||
typedef __size_t size_t;
|
||||
#define _SIZE_T_DECLARED
|
||||
#ifndef NULL
|
||||
#define NULL ((void *) 0)
|
||||
#endif
|
||||
|
||||
__BEGIN_DECLS
|
||||
void *memcpy(void *dst, const void *src, size_t len);
|
||||
void *memmove(void *dst, const void *src, size_t len);
|
||||
int memcmp(const void *s1, const void *s2, size_t len);
|
||||
int strcmp(const char *s1, const char *s2);
|
||||
int strncmp(const char *s1, const char *s2, size_t n);
|
||||
void *memchr(const void *src, int c, size_t len);
|
||||
char *strchr(const char *s, int c);
|
||||
void *memset(void *dst, int val, size_t count);
|
||||
size_t strlen(const char *s);
|
||||
size_t strnlen(const char *s, size_t maxlen);
|
||||
|
||||
void *memchr(const void *, int, size_t) __pure;
|
||||
int memcmp(const void *, const void *, size_t) __pure;
|
||||
void *memcpy(void * __restrict, const void * __restrict, size_t);
|
||||
void *memcpy16(void * __restrict, const void * __restrict, size_t);
|
||||
void *memmove(void *, const void *, size_t);
|
||||
void *memset(void *, int, size_t);
|
||||
|
||||
char *strchr(const char *, int) __pure;
|
||||
int strcmp(const char *, const char *) __pure;
|
||||
size_t strlen(const char *) __pure;
|
||||
int strncmp(const char *, const char *, size_t) __pure;
|
||||
size_t strnlen(const char *, size_t) __pure;
|
||||
int strcasecmp(const char *, const char *);
|
||||
int timingsafe_bcmp(const void *, const void *, size_t);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* _STRING_H_ */
|
||||
#endif /* STRING_H */
|
||||
|
|
|
@ -1,71 +0,0 @@
|
|||
/*-
|
||||
* Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $FreeBSD$
|
||||
*/
|
||||
|
||||
#ifndef _STRINGS_H_
|
||||
#define _STRINGS_H_
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <sys/_types.h>
|
||||
|
||||
#ifndef _SIZE_T_DECLARED
|
||||
typedef __size_t size_t;
|
||||
#define _SIZE_T_DECLARED
|
||||
#endif
|
||||
|
||||
__BEGIN_DECLS
|
||||
#if __BSD_VISIBLE || __POSIX_VISIBLE <= 200112
|
||||
int bcmp(const void *, const void *, size_t) __pure; /* LEGACY */
|
||||
void bcopy(const void *, void *, size_t); /* LEGACY */
|
||||
void bzero(void *, size_t); /* LEGACY */
|
||||
#endif
|
||||
#if __BSD_VISIBLE
|
||||
void explicit_bzero(void *, size_t);
|
||||
#endif
|
||||
#if __XSI_VISIBLE
|
||||
int ffs(int) __pure2;
|
||||
#endif
|
||||
#if __BSD_VISIBLE
|
||||
int ffsl(long) __pure2;
|
||||
int ffsll(long long) __pure2;
|
||||
int fls(int) __pure2;
|
||||
int flsl(long) __pure2;
|
||||
int flsll(long long) __pure2;
|
||||
#endif
|
||||
#if __BSD_VISIBLE || __POSIX_VISIBLE <= 200112
|
||||
char *index(const char *, int) __pure; /* LEGACY */
|
||||
char *rindex(const char *, int) __pure; /* LEGACY */
|
||||
#endif
|
||||
int strcasecmp(const char *, const char *) __pure;
|
||||
int strncasecmp(const char *, const char *, size_t) __pure;
|
||||
|
||||
#if __POSIX_VISIBLE >= 200809 || defined(_XLOCALE_H_)
|
||||
#include <xlocale/_strings.h>
|
||||
#endif
|
||||
__END_DECLS
|
||||
|
||||
#endif /* _STRINGS_H_ */
|
|
@ -1,47 +0,0 @@
|
|||
/*-
|
||||
* Copyright (c) 2003 Marcel Moolenaar
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* $FreeBSD$
|
||||
*/
|
||||
|
||||
#ifndef NULL
|
||||
|
||||
#if !defined(__cplusplus)
|
||||
#define NULL ((void *)0)
|
||||
#else
|
||||
#if __cplusplus >= 201103L
|
||||
#define NULL nullptr
|
||||
#elif defined(__GNUG__) && defined(__GNUC__) && __GNUC__ >= 4
|
||||
#define NULL __null
|
||||
#else
|
||||
#if defined(__LP64__)
|
||||
#define NULL (0L)
|
||||
#else
|
||||
#define NULL 0
|
||||
#endif /* __LP64__ */
|
||||
#endif /* __GNUG__ */
|
||||
#endif /* !__cplusplus */
|
||||
|
||||
#endif
|
|
@ -1,82 +0,0 @@
|
|||
/*-
|
||||
* Copyright (c) 2011 David E. O'Brien <obrien@FreeBSD.org>
|
||||
* Copyright (c) 2001 Mike Barcroft <mike@FreeBSD.org>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $FreeBSD$
|
||||
*/
|
||||
|
||||
#ifndef _SYS__STDINT_H_
|
||||
#define _SYS__STDINT_H_
|
||||
|
||||
#ifndef _INT8_T_DECLARED
|
||||
typedef __int8_t int8_t;
|
||||
#define _INT8_T_DECLARED
|
||||
#endif
|
||||
|
||||
#ifndef _INT16_T_DECLARED
|
||||
typedef __int16_t int16_t;
|
||||
#define _INT16_T_DECLARED
|
||||
#endif
|
||||
|
||||
#ifndef _INT32_T_DECLARED
|
||||
typedef __int32_t int32_t;
|
||||
#define _INT32_T_DECLARED
|
||||
#endif
|
||||
|
||||
#ifndef _INT64_T_DECLARED
|
||||
typedef __int64_t int64_t;
|
||||
#define _INT64_T_DECLARED
|
||||
#endif
|
||||
|
||||
#ifndef _UINT8_T_DECLARED
|
||||
typedef __uint8_t uint8_t;
|
||||
#define _UINT8_T_DECLARED
|
||||
#endif
|
||||
|
||||
#ifndef _UINT16_T_DECLARED
|
||||
typedef __uint16_t uint16_t;
|
||||
#define _UINT16_T_DECLARED
|
||||
#endif
|
||||
|
||||
#ifndef _UINT32_T_DECLARED
|
||||
typedef __uint32_t uint32_t;
|
||||
#define _UINT32_T_DECLARED
|
||||
#endif
|
||||
|
||||
#ifndef _UINT64_T_DECLARED
|
||||
typedef __uint64_t uint64_t;
|
||||
#define _UINT64_T_DECLARED
|
||||
#endif
|
||||
|
||||
#ifndef _INTPTR_T_DECLARED
|
||||
typedef __intptr_t intptr_t;
|
||||
#define _INTPTR_T_DECLARED
|
||||
#endif
|
||||
#ifndef _UINTPTR_T_DECLARED
|
||||
typedef __uintptr_t uintptr_t;
|
||||
#define _UINTPTR_T_DECLARED
|
||||
#endif
|
||||
|
||||
#endif /* !_SYS__STDINT_H_ */
|
|
@ -1,49 +0,0 @@
|
|||
/*-
|
||||
* Copyright (c) 1982, 1986, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)time.h 8.5 (Berkeley) 5/4/95
|
||||
* from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
|
||||
* $FreeBSD$
|
||||
*/
|
||||
|
||||
#ifndef _SYS__TIMESPEC_H_
|
||||
#define _SYS__TIMESPEC_H_
|
||||
|
||||
#include <sys/_types.h>
|
||||
|
||||
#ifndef _TIME_T_DECLARED
|
||||
typedef __time_t time_t;
|
||||
#define _TIME_T_DECLARED
|
||||
#endif
|
||||
|
||||
struct timespec {
|
||||
time_t tv_sec; /* seconds */
|
||||
long tv_nsec; /* and nanoseconds */
|
||||
};
|
||||
|
||||
#endif /* !_SYS__TIMESPEC_H_ */
|
|
@ -1,106 +0,0 @@
|
|||
/*-
|
||||
* Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $FreeBSD$
|
||||
*/
|
||||
|
||||
#ifndef _SYS__TYPES_H_
|
||||
#define _SYS__TYPES_H_
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <machine/_types.h>
|
||||
|
||||
/*
|
||||
* Standard type definitions.
|
||||
*/
|
||||
typedef __uint32_t __blksize_t; /* file block size */
|
||||
typedef __int64_t __blkcnt_t; /* file block count */
|
||||
typedef __int32_t __clockid_t; /* clock_gettime()... */
|
||||
typedef __uint64_t __cap_rights_t; /* capability rights */
|
||||
typedef __uint32_t __fflags_t; /* file flags */
|
||||
typedef __uint64_t __fsblkcnt_t;
|
||||
typedef __uint64_t __fsfilcnt_t;
|
||||
typedef __uint32_t __gid_t;
|
||||
typedef __int64_t __id_t; /* can hold a gid_t, pid_t, or uid_t */
|
||||
typedef __uint32_t __ino_t; /* inode number */
|
||||
typedef long __key_t; /* IPC key (for Sys V IPC) */
|
||||
typedef __int32_t __lwpid_t; /* Thread ID (a.k.a. LWP) */
|
||||
typedef __uint16_t __mode_t; /* permissions */
|
||||
typedef int __accmode_t; /* access permissions */
|
||||
typedef int __nl_item;
|
||||
typedef __uint16_t __nlink_t; /* link count */
|
||||
typedef __int64_t __off_t; /* file offset */
|
||||
typedef __int32_t __pid_t; /* process [group] */
|
||||
typedef __int64_t __rlim_t; /* resource limit - intentionally */
|
||||
/* signed, because of legacy code */
|
||||
/* that uses -1 for RLIM_INFINITY */
|
||||
typedef __uint8_t __sa_family_t;
|
||||
typedef __uint32_t __socklen_t;
|
||||
typedef long __suseconds_t; /* microseconds (signed) */
|
||||
typedef struct __timer *__timer_t; /* timer_gettime()... */
|
||||
typedef struct __mq *__mqd_t; /* mq_open()... */
|
||||
typedef __uint32_t __uid_t;
|
||||
typedef unsigned int __useconds_t; /* microseconds (unsigned) */
|
||||
typedef int __cpuwhich_t; /* which parameter for cpuset. */
|
||||
typedef int __cpulevel_t; /* level parameter for cpuset. */
|
||||
typedef int __cpusetid_t; /* cpuset identifier. */
|
||||
|
||||
/*
|
||||
* Unusual type definitions.
|
||||
*/
|
||||
/*
|
||||
* rune_t is declared to be an ``int'' instead of the more natural
|
||||
* ``unsigned long'' or ``long''. Two things are happening here. It is not
|
||||
* unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
|
||||
* it looks like 10646 will be a 31 bit standard. This means that if your
|
||||
* ints cannot hold 32 bits, you will be in trouble. The reason an int was
|
||||
* chosen over a long is that the is*() and to*() routines take ints (says
|
||||
* ANSI C), but they use __ct_rune_t instead of int.
|
||||
*
|
||||
* NOTE: rune_t is not covered by ANSI nor other standards, and should not
|
||||
* be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
|
||||
* rune_t must be the same type. Also, wint_t must be no narrower than
|
||||
* wchar_t, and should be able to hold all members of the largest
|
||||
* character set plus one extra value (WEOF), and must be at least 16 bits.
|
||||
*/
|
||||
typedef int __ct_rune_t; /* arg type for ctype funcs */
|
||||
typedef __ct_rune_t __rune_t; /* rune_t (see above) */
|
||||
typedef __ct_rune_t __wchar_t; /* wchar_t (see above) */
|
||||
typedef __ct_rune_t __wint_t; /* wint_t (see above) */
|
||||
|
||||
typedef __uint32_t __dev_t; /* device number */
|
||||
|
||||
typedef __uint32_t __fixpt_t; /* fixed point number */
|
||||
|
||||
/*
|
||||
* mbstate_t is an opaque object to keep conversion state during multibyte
|
||||
* stream conversions.
|
||||
*/
|
||||
typedef union {
|
||||
char __mbstate8[128];
|
||||
__int64_t _mbstateL; /* for alignment */
|
||||
} __mbstate_t;
|
||||
|
||||
#endif /* !_SYS__TYPES_H_ */
|
|
@ -1,688 +0,0 @@
|
|||
/*-
|
||||
* Copyright (c) 1991, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This code is derived from software contributed to Berkeley by
|
||||
* Berkeley Software Design, Inc.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)cdefs.h 8.8 (Berkeley) 1/9/95
|
||||
* $FreeBSD$
|
||||
*/
|
||||
|
||||
#ifndef _SYS_CDEFS_H_
|
||||
#define _SYS_CDEFS_H_
|
||||
|
||||
#if defined(__cplusplus)
|
||||
#define __BEGIN_DECLS extern "C" {
|
||||
#define __END_DECLS }
|
||||
#else
|
||||
#define __BEGIN_DECLS
|
||||
#define __END_DECLS
|
||||
#endif
|
||||
|
||||
/*
|
||||
* This code has been put in place to help reduce the addition of
|
||||
* compiler specific defines in FreeBSD code. It helps to aid in
|
||||
* having a compiler-agnostic source tree.
|
||||
*/
|
||||
|
||||
#if defined(__GNUC__) || defined(__INTEL_COMPILER)
|
||||
|
||||
#if __GNUC__ >= 3 || defined(__INTEL_COMPILER)
|
||||
#define __GNUCLIKE_ASM 3
|
||||
#define __GNUCLIKE_MATH_BUILTIN_CONSTANTS
|
||||
#else
|
||||
#define __GNUCLIKE_ASM 2
|
||||
#endif
|
||||
#define __GNUCLIKE___TYPEOF 1
|
||||
#define __GNUCLIKE___OFFSETOF 1
|
||||
#define __GNUCLIKE___SECTION 1
|
||||
|
||||
#ifndef __INTEL_COMPILER
|
||||
# define __GNUCLIKE_CTOR_SECTION_HANDLING 1
|
||||
#endif
|
||||
|
||||
#define __GNUCLIKE_BUILTIN_CONSTANT_P 1
|
||||
# if defined(__INTEL_COMPILER) && defined(__cplusplus) \
|
||||
&& __INTEL_COMPILER < 800
|
||||
# undef __GNUCLIKE_BUILTIN_CONSTANT_P
|
||||
# endif
|
||||
|
||||
#if (__GNUC_MINOR__ > 95 || __GNUC__ >= 3) && !defined(__INTEL_COMPILER)
|
||||
# define __GNUCLIKE_BUILTIN_VARARGS 1
|
||||
# define __GNUCLIKE_BUILTIN_STDARG 1
|
||||
# define __GNUCLIKE_BUILTIN_VAALIST 1
|
||||
#endif
|
||||
|
||||
#if defined(__GNUC__)
|
||||
# define __GNUC_VA_LIST_COMPATIBILITY 1
|
||||
#endif
|
||||
|
||||
#ifndef __INTEL_COMPILER
|
||||
# define __GNUCLIKE_BUILTIN_NEXT_ARG 1
|
||||
# define __GNUCLIKE_MATH_BUILTIN_RELOPS
|
||||
#endif
|
||||
|
||||
#define __GNUCLIKE_BUILTIN_MEMCPY 1
|
||||
|
||||
/* XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced */
|
||||
#define __CC_SUPPORTS_INLINE 1
|
||||
#define __CC_SUPPORTS___INLINE 1
|
||||
#define __CC_SUPPORTS___INLINE__ 1
|
||||
|
||||
#define __CC_SUPPORTS___FUNC__ 1
|
||||
#define __CC_SUPPORTS_WARNING 1
|
||||
|
||||
#define __CC_SUPPORTS_VARADIC_XXX 1 /* see varargs.h */
|
||||
|
||||
#define __CC_SUPPORTS_DYNAMIC_ARRAY_INIT 1
|
||||
|
||||
#endif /* __GNUC__ || __INTEL_COMPILER */
|
||||
|
||||
/*
|
||||
* Macro to test if we're using a specific version of gcc or later.
|
||||
*/
|
||||
#if defined(__GNUC__) && !defined(__INTEL_COMPILER)
|
||||
#define __GNUC_PREREQ__(ma, mi) \
|
||||
(__GNUC__ > (ma) || __GNUC__ == (ma) && __GNUC_MINOR__ >= (mi))
|
||||
#else
|
||||
#define __GNUC_PREREQ__(ma, mi) 0
|
||||
#endif
|
||||
|
||||
/*
|
||||
* The __CONCAT macro is used to concatenate parts of symbol names, e.g.
|
||||
* with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
|
||||
* The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
|
||||
* mode -- there must be no spaces between its arguments, and for nested
|
||||
* __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
|
||||
* concatenate double-quoted strings produced by the __STRING macro, but
|
||||
* this only works with ANSI C.
|
||||
*
|
||||
* __XSTRING is like __STRING, but it expands any macros in its argument
|
||||
* first. It is only available with ANSI C.
|
||||
*/
|
||||
#if defined(__STDC__) || defined(__cplusplus)
|
||||
#define __P(protos) protos /* full-blown ANSI C */
|
||||
#define __CONCAT1(x,y) x ## y
|
||||
#define __CONCAT(x,y) __CONCAT1(x,y)
|
||||
#define __STRING(x) #x /* stringify without expanding x */
|
||||
#define __XSTRING(x) __STRING(x) /* expand x, then stringify */
|
||||
|
||||
#define __const const /* define reserved names to standard */
|
||||
#define __signed signed
|
||||
#define __volatile volatile
|
||||
#if defined(__cplusplus)
|
||||
#define __inline inline /* convert to C++ keyword */
|
||||
#else
|
||||
#if !(defined(__CC_SUPPORTS___INLINE))
|
||||
#define __inline /* delete GCC keyword */
|
||||
#endif /* ! __CC_SUPPORTS___INLINE */
|
||||
#endif /* !__cplusplus */
|
||||
|
||||
#else /* !(__STDC__ || __cplusplus) */
|
||||
#define __P(protos) () /* traditional C preprocessor */
|
||||
#define __CONCAT(x,y) x/**/y
|
||||
#define __STRING(x) "x"
|
||||
|
||||
#if !defined(__CC_SUPPORTS___INLINE)
|
||||
#define __const /* delete pseudo-ANSI C keywords */
|
||||
#define __inline
|
||||
#define __signed
|
||||
#define __volatile
|
||||
/*
|
||||
* In non-ANSI C environments, new programs will want ANSI-only C keywords
|
||||
* deleted from the program and old programs will want them left alone.
|
||||
* When using a compiler other than gcc, programs using the ANSI C keywords
|
||||
* const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
|
||||
* When using "gcc -traditional", we assume that this is the intent; if
|
||||
* __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
|
||||
*/
|
||||
#ifndef NO_ANSI_KEYWORDS
|
||||
#define const /* delete ANSI C keywords */
|
||||
#define inline
|
||||
#define signed
|
||||
#define volatile
|
||||
#endif /* !NO_ANSI_KEYWORDS */
|
||||
#endif /* !__CC_SUPPORTS___INLINE */
|
||||
#endif /* !(__STDC__ || __cplusplus) */
|
||||
|
||||
/*
|
||||
* Compiler-dependent macros to help declare dead (non-returning) and
|
||||
* pure (no side effects) functions, and unused variables. They are
|
||||
* null except for versions of gcc that are known to support the features
|
||||
* properly (old versions of gcc-2 supported the dead and pure features
|
||||
* in a different (wrong) way). If we do not provide an implementation
|
||||
* for a given compiler, let the compile fail if it is told to use
|
||||
* a feature that we cannot live without.
|
||||
*/
|
||||
#ifdef lint
|
||||
#define __dead2
|
||||
#define __pure2
|
||||
#define __unused
|
||||
#define __packed
|
||||
#define __aligned(x)
|
||||
#define __section(x)
|
||||
#else
|
||||
#if !__GNUC_PREREQ__(2, 5) && !defined(__INTEL_COMPILER)
|
||||
#define __dead2
|
||||
#define __pure2
|
||||
#define __unused
|
||||
#endif
|
||||
#if __GNUC__ == 2 && __GNUC_MINOR__ >= 5 && __GNUC_MINOR__ < 7 && !defined(__INTEL_COMPILER)
|
||||
#define __dead2 __attribute__((__noreturn__))
|
||||
#define __pure2 __attribute__((__const__))
|
||||
#define __unused
|
||||
/* XXX Find out what to do for __packed, __aligned and __section */
|
||||
#endif
|
||||
#if __GNUC_PREREQ__(2, 7)
|
||||
#define __dead2 __attribute__((__noreturn__))
|
||||
#define __pure2 __attribute__((__const__))
|
||||
#define __unused __attribute__((__unused__))
|
||||
#define __used __attribute__((__used__))
|
||||
#define __packed __attribute__((__packed__))
|
||||
#define __aligned(x) __attribute__((__aligned__(x)))
|
||||
#define __section(x) __attribute__((__section__(x)))
|
||||
#endif
|
||||
#if defined(__INTEL_COMPILER)
|
||||
#define __dead2 __attribute__((__noreturn__))
|
||||
#define __pure2 __attribute__((__const__))
|
||||
#define __unused __attribute__((__unused__))
|
||||
#define __used __attribute__((__used__))
|
||||
#define __packed __attribute__((__packed__))
|
||||
#define __aligned(x) __attribute__((__aligned__(x)))
|
||||
#define __section(x) __attribute__((__section__(x)))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if !__GNUC_PREREQ__(2, 95)
|
||||
#define __alignof(x) __offsetof(struct { char __a; x __b; }, __b)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Keywords added in C11.
|
||||
*/
|
||||
#if defined(__cplusplus) && __cplusplus >= 201103L
|
||||
#define _Alignas(e) alignas(e)
|
||||
#define _Alignof(e) alignof(e)
|
||||
#define _Noreturn [[noreturn]]
|
||||
#define _Static_assert(e, s) static_assert(e, s)
|
||||
/* FIXME: change this to thread_local when clang in base supports it */
|
||||
#define _Thread_local __thread
|
||||
#elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
|
||||
/* Do nothing. They are language keywords. */
|
||||
#else
|
||||
/* Not supported. Implement them using our versions. */
|
||||
#define _Alignas(x) __aligned(x)
|
||||
#define _Alignof(x) __alignof(x)
|
||||
#define _Noreturn __dead2
|
||||
#define _Thread_local __thread
|
||||
#ifdef __COUNTER__
|
||||
#define _Static_assert(x, y) __Static_assert(x, __COUNTER__)
|
||||
#define __Static_assert(x, y) ___Static_assert(x, y)
|
||||
#define ___Static_assert(x, y) typedef char __assert_ ## y[(x) ? 1 : -1]
|
||||
#else
|
||||
#define _Static_assert(x, y) struct __hack
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Emulation of C11 _Generic(). Unlike the previously defined C11
|
||||
* keywords, it is not possible to implement this using exactly the same
|
||||
* syntax. Therefore implement something similar under the name
|
||||
* __generic(). Unlike _Generic(), this macro can only distinguish
|
||||
* between a single type, so it requires nested invocations to
|
||||
* distinguish multiple cases.
|
||||
*/
|
||||
|
||||
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
|
||||
#define __generic(expr, t, yes, no) \
|
||||
_Generic(expr, t: yes, default: no)
|
||||
#elif __GNUC_PREREQ__(3, 1) && !defined(__cplusplus)
|
||||
#define __generic(expr, t, yes, no) \
|
||||
__builtin_choose_expr( \
|
||||
__builtin_types_compatible_p(__typeof(expr), t), yes, no)
|
||||
#endif
|
||||
|
||||
#if __GNUC_PREREQ__(2, 96)
|
||||
#define __malloc_like __attribute__((__malloc__))
|
||||
#define __pure __attribute__((__pure__))
|
||||
#else
|
||||
#define __malloc_like
|
||||
#define __pure
|
||||
#endif
|
||||
|
||||
#if __GNUC_PREREQ__(3, 1) || (defined(__INTEL_COMPILER) && __INTEL_COMPILER >= 800)
|
||||
#define __always_inline __attribute__((__always_inline__))
|
||||
#else
|
||||
#define __always_inline
|
||||
#endif
|
||||
|
||||
#if __GNUC_PREREQ__(3, 1)
|
||||
#define __noinline __attribute__ ((__noinline__))
|
||||
#define __deprecated __attribute__ ((__deprecated__))
|
||||
#else
|
||||
#define __noinline
|
||||
#define __deprecated
|
||||
#endif
|
||||
|
||||
#if __GNUC_PREREQ__(3, 3)
|
||||
#define __nonnull(x) __attribute__((__nonnull__(x)))
|
||||
#else
|
||||
#define __nonnull(x)
|
||||
#endif
|
||||
|
||||
#if __GNUC_PREREQ__(3, 4)
|
||||
#define __fastcall __attribute__((__fastcall__))
|
||||
#else
|
||||
#define __fastcall
|
||||
#endif
|
||||
|
||||
#if __GNUC_PREREQ__(4, 1)
|
||||
#define __returns_twice __attribute__((__returns_twice__))
|
||||
#else
|
||||
#define __returns_twice
|
||||
#endif
|
||||
|
||||
/* XXX: should use `#if __STDC_VERSION__ < 199901'. */
|
||||
#if !__GNUC_PREREQ__(2, 7) && !defined(__INTEL_COMPILER)
|
||||
#define __func__ NULL
|
||||
#endif
|
||||
|
||||
#if (defined(__INTEL_COMPILER) || (defined(__GNUC__) && __GNUC__ >= 2)) && !defined(__STRICT_ANSI__) || __STDC_VERSION__ >= 199901
|
||||
#define __LONG_LONG_SUPPORTED
|
||||
#endif
|
||||
|
||||
/* C++11 exposes a load of C99 stuff */
|
||||
#if defined(__cplusplus) && __cplusplus >= 201103L
|
||||
#define __LONG_LONG_SUPPORTED
|
||||
#ifndef __STDC_LIMIT_MACROS
|
||||
#define __STDC_LIMIT_MACROS
|
||||
#endif
|
||||
#ifndef __STDC_CONSTANT_MACROS
|
||||
#define __STDC_CONSTANT_MACROS
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
* GCC 2.95 provides `__restrict' as an extension to C90 to support the
|
||||
* C99-specific `restrict' type qualifier. We happen to use `__restrict' as
|
||||
* a way to define the `restrict' type qualifier without disturbing older
|
||||
* software that is unaware of C99 keywords.
|
||||
*/
|
||||
#if !(__GNUC__ == 2 && __GNUC_MINOR__ == 95)
|
||||
#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901 || defined(lint)
|
||||
#define __restrict
|
||||
#else
|
||||
#define __restrict restrict
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
* GNU C version 2.96 adds explicit branch prediction so that
|
||||
* the CPU back-end can hint the processor and also so that
|
||||
* code blocks can be reordered such that the predicted path
|
||||
* sees a more linear flow, thus improving cache behavior, etc.
|
||||
*
|
||||
* The following two macros provide us with a way to utilize this
|
||||
* compiler feature. Use __predict_true() if you expect the expression
|
||||
* to evaluate to true, and __predict_false() if you expect the
|
||||
* expression to evaluate to false.
|
||||
*
|
||||
* A few notes about usage:
|
||||
*
|
||||
* * Generally, __predict_false() error condition checks (unless
|
||||
* you have some _strong_ reason to do otherwise, in which case
|
||||
* document it), and/or __predict_true() `no-error' condition
|
||||
* checks, assuming you want to optimize for the no-error case.
|
||||
*
|
||||
* * Other than that, if you don't know the likelihood of a test
|
||||
* succeeding from empirical or other `hard' evidence, don't
|
||||
* make predictions.
|
||||
*
|
||||
* * These are meant to be used in places that are run `a lot'.
|
||||
* It is wasteful to make predictions in code that is run
|
||||
* seldomly (e.g. at subsystem initialization time) as the
|
||||
* basic block reordering that this affects can often generate
|
||||
* larger code.
|
||||
*/
|
||||
#if __GNUC_PREREQ__(2, 96)
|
||||
#define __predict_true(exp) __builtin_expect((exp), 1)
|
||||
#define __predict_false(exp) __builtin_expect((exp), 0)
|
||||
#else
|
||||
#define __predict_true(exp) (exp)
|
||||
#define __predict_false(exp) (exp)
|
||||
#endif
|
||||
|
||||
#if __GNUC_PREREQ__(4, 2)
|
||||
#define __hidden __attribute__((__visibility__("hidden")))
|
||||
#define __exported __attribute__((__visibility__("default")))
|
||||
#else
|
||||
#define __hidden
|
||||
#define __exported
|
||||
#endif
|
||||
|
||||
/*
|
||||
* We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
|
||||
* require it.
|
||||
*/
|
||||
#if __GNUC_PREREQ__(4, 1)
|
||||
#define __offsetof(type, field) __builtin_offsetof(type, field)
|
||||
#else
|
||||
#ifndef __cplusplus
|
||||
#define __offsetof(type, field) \
|
||||
((__size_t)(__uintptr_t)((const volatile void *)&((type *)0)->field))
|
||||
#else
|
||||
#define __offsetof(type, field) \
|
||||
(__offsetof__ (reinterpret_cast <__size_t> \
|
||||
(&reinterpret_cast <const volatile char &> \
|
||||
(static_cast<type *> (0)->field))))
|
||||
#endif
|
||||
#endif
|
||||
#define __rangeof(type, start, end) \
|
||||
(__offsetof(type, end) - __offsetof(type, start))
|
||||
|
||||
/*
|
||||
* Given the pointer x to the member m of the struct s, return
|
||||
* a pointer to the containing structure. When using GCC, we first
|
||||
* assign pointer x to a local variable, to check that its type is
|
||||
* compatible with member m.
|
||||
*/
|
||||
#if __GNUC_PREREQ__(3, 1)
|
||||
#define __containerof(x, s, m) ({ \
|
||||
const volatile __typeof(((s *)0)->m) *__x = (x); \
|
||||
__DEQUALIFY(s *, (const volatile char *)__x - __offsetof(s, m));\
|
||||
})
|
||||
#else
|
||||
#define __containerof(x, s, m) \
|
||||
__DEQUALIFY(s *, (const volatile char *)(x) - __offsetof(s, m))
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Compiler-dependent macros to declare that functions take printf-like
|
||||
* or scanf-like arguments. They are null except for versions of gcc
|
||||
* that are known to support the features properly (old versions of gcc-2
|
||||
* didn't permit keeping the keywords out of the application namespace).
|
||||
*/
|
||||
#if !__GNUC_PREREQ__(2, 7) && !defined(__INTEL_COMPILER)
|
||||
#define __printflike(fmtarg, firstvararg)
|
||||
#define __scanflike(fmtarg, firstvararg)
|
||||
#define __format_arg(fmtarg)
|
||||
#define __strfmonlike(fmtarg, firstvararg)
|
||||
#define __strftimelike(fmtarg, firstvararg)
|
||||
#else
|
||||
#define __printflike(fmtarg, firstvararg) \
|
||||
__attribute__((__format__ (__printf__, fmtarg, firstvararg)))
|
||||
#define __scanflike(fmtarg, firstvararg) \
|
||||
__attribute__((__format__ (__scanf__, fmtarg, firstvararg)))
|
||||
#define __format_arg(fmtarg) __attribute__((__format_arg__ (fmtarg)))
|
||||
#define __strfmonlike(fmtarg, firstvararg) \
|
||||
__attribute__((__format__ (__strfmon__, fmtarg, firstvararg)))
|
||||
#define __strftimelike(fmtarg, firstvararg) \
|
||||
__attribute__((__format__ (__strftime__, fmtarg, firstvararg)))
|
||||
#endif
|
||||
|
||||
/* Compiler-dependent macros that rely on FreeBSD-specific extensions. */
|
||||
#if __FreeBSD_cc_version >= 300001 && defined(__GNUC__) && !defined(__INTEL_COMPILER)
|
||||
#define __printf0like(fmtarg, firstvararg) \
|
||||
__attribute__((__format__ (__printf0__, fmtarg, firstvararg)))
|
||||
#else
|
||||
#define __printf0like(fmtarg, firstvararg)
|
||||
#endif
|
||||
|
||||
#if defined(__GNUC__) || defined(__INTEL_COMPILER)
|
||||
#ifndef __INTEL_COMPILER
|
||||
#define __strong_reference(sym,aliassym) \
|
||||
extern __typeof (sym) aliassym __attribute__ ((__alias__ (#sym)))
|
||||
#endif
|
||||
#ifdef __STDC__
|
||||
#define __weak_reference(sym,alias) \
|
||||
__asm__(".weak " #alias); \
|
||||
__asm__(".equ " #alias ", " #sym)
|
||||
#define __warn_references(sym,msg) \
|
||||
__asm__(".section .gnu.warning." #sym); \
|
||||
__asm__(".asciz \"" msg "\""); \
|
||||
__asm__(".previous")
|
||||
#define __sym_compat(sym,impl,verid) \
|
||||
__asm__(".symver " #impl ", " #sym "@" #verid)
|
||||
#define __sym_default(sym,impl,verid) \
|
||||
__asm__(".symver " #impl ", " #sym "@@" #verid)
|
||||
#else
|
||||
#define __weak_reference(sym,alias) \
|
||||
__asm__(".weak alias"); \
|
||||
__asm__(".equ alias, sym")
|
||||
#define __warn_references(sym,msg) \
|
||||
__asm__(".section .gnu.warning.sym"); \
|
||||
__asm__(".asciz \"msg\""); \
|
||||
__asm__(".previous")
|
||||
#define __sym_compat(sym,impl,verid) \
|
||||
__asm__(".symver impl, sym@verid")
|
||||
#define __sym_default(impl,sym,verid) \
|
||||
__asm__(".symver impl, sym@@verid")
|
||||
#endif /* __STDC__ */
|
||||
#endif /* __GNUC__ || __INTEL_COMPILER */
|
||||
|
||||
#define __GLOBL1(sym) __asm__(".globl " #sym)
|
||||
#define __GLOBL(sym) __GLOBL1(sym)
|
||||
|
||||
#if defined(__GNUC__) || defined(__INTEL_COMPILER)
|
||||
#define __IDSTRING(name,string) __asm__(".ident\t\"" string "\"")
|
||||
#else
|
||||
/*
|
||||
* The following definition might not work well if used in header files,
|
||||
* but it should be better than nothing. If you want a "do nothing"
|
||||
* version, then it should generate some harmless declaration, such as:
|
||||
* #define __IDSTRING(name,string) struct __hack
|
||||
*/
|
||||
#define __IDSTRING(name,string) static const char name[] __unused = string
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Embed the rcs id of a source file in the resulting library. Note that in
|
||||
* more recent ELF binutils, we use .ident allowing the ID to be stripped.
|
||||
* Usage:
|
||||
* __FBSDID("$FreeBSD$");
|
||||
*/
|
||||
#ifndef __FBSDID
|
||||
#if !defined(lint) && !defined(STRIP_FBSDID)
|
||||
#define __FBSDID(s) __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
|
||||
#else
|
||||
#define __FBSDID(s) struct __hack
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef __RCSID
|
||||
#ifndef NO__RCSID
|
||||
#define __RCSID(s) __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
|
||||
#else
|
||||
#define __RCSID(s) struct __hack
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef __RCSID_SOURCE
|
||||
#ifndef NO__RCSID_SOURCE
|
||||
#define __RCSID_SOURCE(s) __IDSTRING(__CONCAT(__rcsid_source_,__LINE__),s)
|
||||
#else
|
||||
#define __RCSID_SOURCE(s) struct __hack
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef __SCCSID
|
||||
#ifndef NO__SCCSID
|
||||
#define __SCCSID(s) __IDSTRING(__CONCAT(__sccsid_,__LINE__),s)
|
||||
#else
|
||||
#define __SCCSID(s) struct __hack
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef __COPYRIGHT
|
||||
#ifndef NO__COPYRIGHT
|
||||
#define __COPYRIGHT(s) __IDSTRING(__CONCAT(__copyright_,__LINE__),s)
|
||||
#else
|
||||
#define __COPYRIGHT(s) struct __hack
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef __DECONST
|
||||
#define __DECONST(type, var) ((type)(__uintptr_t)(const void *)(var))
|
||||
#endif
|
||||
|
||||
#ifndef __DEVOLATILE
|
||||
#define __DEVOLATILE(type, var) ((type)(__uintptr_t)(volatile void *)(var))
|
||||
#endif
|
||||
|
||||
#ifndef __DEQUALIFY
|
||||
#define __DEQUALIFY(type, var) ((type)(__uintptr_t)(const volatile void *)(var))
|
||||
#endif
|
||||
|
||||
/*-
|
||||
* The following definitions are an extension of the behavior originally
|
||||
* implemented in <sys/_posix.h>, but with a different level of granularity.
|
||||
* POSIX.1 requires that the macros we test be defined before any standard
|
||||
* header file is included.
|
||||
*
|
||||
* Here's a quick run-down of the versions:
|
||||
* defined(_POSIX_SOURCE) 1003.1-1988
|
||||
* _POSIX_C_SOURCE == 1 1003.1-1990
|
||||
* _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
|
||||
* _POSIX_C_SOURCE == 199309 1003.1b-1993
|
||||
* _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
|
||||
* and the omnibus ISO/IEC 9945-1: 1996
|
||||
* _POSIX_C_SOURCE == 200112 1003.1-2001
|
||||
* _POSIX_C_SOURCE == 200809 1003.1-2008
|
||||
*
|
||||
* In addition, the X/Open Portability Guide, which is now the Single UNIX
|
||||
* Specification, defines a feature-test macro which indicates the version of
|
||||
* that specification, and which subsumes _POSIX_C_SOURCE.
|
||||
*
|
||||
* Our macros begin with two underscores to avoid namespace screwage.
|
||||
*/
|
||||
|
||||
/* Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1. */
|
||||
#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE == 1
|
||||
#undef _POSIX_C_SOURCE /* Probably illegal, but beyond caring now. */
|
||||
#define _POSIX_C_SOURCE 199009
|
||||
#endif
|
||||
|
||||
/* Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2. */
|
||||
#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE == 2
|
||||
#undef _POSIX_C_SOURCE
|
||||
#define _POSIX_C_SOURCE 199209
|
||||
#endif
|
||||
|
||||
/* Deal with various X/Open Portability Guides and Single UNIX Spec. */
|
||||
#ifdef _XOPEN_SOURCE
|
||||
#if _XOPEN_SOURCE - 0 >= 700
|
||||
#define __XSI_VISIBLE 700
|
||||
#undef _POSIX_C_SOURCE
|
||||
#define _POSIX_C_SOURCE 200809
|
||||
#elif _XOPEN_SOURCE - 0 >= 600
|
||||
#define __XSI_VISIBLE 600
|
||||
#undef _POSIX_C_SOURCE
|
||||
#define _POSIX_C_SOURCE 200112
|
||||
#elif _XOPEN_SOURCE - 0 >= 500
|
||||
#define __XSI_VISIBLE 500
|
||||
#undef _POSIX_C_SOURCE
|
||||
#define _POSIX_C_SOURCE 199506
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Deal with all versions of POSIX. The ordering relative to the tests above is
|
||||
* important.
|
||||
*/
|
||||
#if defined(_POSIX_SOURCE) && !defined(_POSIX_C_SOURCE)
|
||||
#define _POSIX_C_SOURCE 198808
|
||||
#endif
|
||||
#ifdef _POSIX_C_SOURCE
|
||||
#if _POSIX_C_SOURCE >= 200809
|
||||
#define __POSIX_VISIBLE 200809
|
||||
#define __ISO_C_VISIBLE 1999
|
||||
#elif _POSIX_C_SOURCE >= 200112
|
||||
#define __POSIX_VISIBLE 200112
|
||||
#define __ISO_C_VISIBLE 1999
|
||||
#elif _POSIX_C_SOURCE >= 199506
|
||||
#define __POSIX_VISIBLE 199506
|
||||
#define __ISO_C_VISIBLE 1990
|
||||
#elif _POSIX_C_SOURCE >= 199309
|
||||
#define __POSIX_VISIBLE 199309
|
||||
#define __ISO_C_VISIBLE 1990
|
||||
#elif _POSIX_C_SOURCE >= 199209
|
||||
#define __POSIX_VISIBLE 199209
|
||||
#define __ISO_C_VISIBLE 1990
|
||||
#elif _POSIX_C_SOURCE >= 199009
|
||||
#define __POSIX_VISIBLE 199009
|
||||
#define __ISO_C_VISIBLE 1990
|
||||
#else
|
||||
#define __POSIX_VISIBLE 198808
|
||||
#define __ISO_C_VISIBLE 0
|
||||
#endif /* _POSIX_C_SOURCE */
|
||||
#else
|
||||
/*-
|
||||
* Deal with _ANSI_SOURCE:
|
||||
* If it is defined, and no other compilation environment is explicitly
|
||||
* requested, then define our internal feature-test macros to zero. This
|
||||
* makes no difference to the preprocessor (undefined symbols in preprocessing
|
||||
* expressions are defined to have value zero), but makes it more convenient for
|
||||
* a test program to print out the values.
|
||||
*
|
||||
* If a program mistakenly defines _ANSI_SOURCE and some other macro such as
|
||||
* _POSIX_C_SOURCE, we will assume that it wants the broader compilation
|
||||
* environment (and in fact we will never get here).
|
||||
*/
|
||||
#if defined(_ANSI_SOURCE) /* Hide almost everything. */
|
||||
#define __POSIX_VISIBLE 0
|
||||
#define __XSI_VISIBLE 0
|
||||
#define __BSD_VISIBLE 0
|
||||
#define __ISO_C_VISIBLE 1990
|
||||
#elif defined(_C99_SOURCE) /* Localism to specify strict C99 env. */
|
||||
#define __POSIX_VISIBLE 0
|
||||
#define __XSI_VISIBLE 0
|
||||
#define __BSD_VISIBLE 0
|
||||
#define __ISO_C_VISIBLE 1999
|
||||
#else /* Default environment: show everything. */
|
||||
#define __POSIX_VISIBLE 200809
|
||||
#define __XSI_VISIBLE 700
|
||||
#define __BSD_VISIBLE 1
|
||||
#define __ISO_C_VISIBLE 1999
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef __has_feature
|
||||
#define __has_feature(x) 0
|
||||
#endif
|
||||
#ifndef __has_include
|
||||
#define __has_include(x) 0
|
||||
#endif
|
||||
#ifndef __has_builtin
|
||||
#define __has_builtin(x) 0
|
||||
#endif
|
||||
|
||||
#if defined(__mips) || defined(__powerpc64__) || defined(__arm__)
|
||||
#define __NO_TLS 1
|
||||
#endif
|
||||
|
||||
#endif /* !_SYS_CDEFS_H_ */
|
|
@ -1,59 +0,0 @@
|
|||
/*-
|
||||
* Copyright (c) 1982, 1988, 1991, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
* (c) UNIX System Laboratories, Inc.
|
||||
* All or some portions of this file are derived from material licensed
|
||||
* to the University of California by American Telephone and Telegraph
|
||||
* Co. or Unix System Laboratories, Inc. and are reproduced herein with
|
||||
* the permission of UNIX System Laboratories, Inc.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $FreeBSD$
|
||||
*/
|
||||
|
||||
/*
|
||||
* Portions copyright (c) 2009-2014, ARM Limited and Contributors.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef _SYS_CTYPE_H_
|
||||
#define _SYS_CTYPE_H_
|
||||
|
||||
#define isspace(c) ((c) == ' ' || ((c) >= '\t' && (c) <= '\r'))
|
||||
#define isascii(c) (((c) & ~0x7f) == 0)
|
||||
#define isupper(c) ((c) >= 'A' && (c) <= 'Z')
|
||||
#define islower(c) ((c) >= 'a' && (c) <= 'z')
|
||||
#define isalpha(c) (isupper(c) || islower(c))
|
||||
#define isdigit(c) ((c) >= '0' && (c) <= '9')
|
||||
#define isxdigit(c) (isdigit(c) \
|
||||
|| ((c) >= 'A' && (c) <= 'F') \
|
||||
|| ((c) >= 'a' && (c) <= 'f'))
|
||||
#define isprint(c) ((c) >= ' ' && (c) <= '~')
|
||||
|
||||
#define toupper(c) ((c) - 0x20 * (((c) >= 'a') && ((c) <= 'z')))
|
||||
#define tolower(c) ((c) + 0x20 * (((c) >= 'A') && ((c) <= 'Z')))
|
||||
|
||||
#endif /* !_SYS_CTYPE_H_ */
|
|
@ -1,100 +0,0 @@
|
|||
/*-
|
||||
* Copyright (c) 1988, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $FreeBSD$
|
||||
*/
|
||||
|
||||
#ifndef _SYS_LIMITS_H_
|
||||
#define _SYS_LIMITS_H_
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <machine/_limits.h>
|
||||
|
||||
#define CHAR_BIT __CHAR_BIT /* number of bits in a char */
|
||||
|
||||
#define SCHAR_MAX __SCHAR_MAX /* max value for a signed char */
|
||||
#define SCHAR_MIN __SCHAR_MIN /* min value for a signed char */
|
||||
|
||||
#define UCHAR_MAX __UCHAR_MAX /* max value for an unsigned char */
|
||||
|
||||
#ifdef __CHAR_UNSIGNED__
|
||||
#define CHAR_MAX UCHAR_MAX /* max value for a char */
|
||||
#define CHAR_MIN 0 /* min value for a char */
|
||||
#else
|
||||
#define CHAR_MAX SCHAR_MAX
|
||||
#define CHAR_MIN SCHAR_MIN
|
||||
#endif
|
||||
|
||||
#define USHRT_MAX __USHRT_MAX /* max value for an unsigned short */
|
||||
#define SHRT_MAX __SHRT_MAX /* max value for a short */
|
||||
#define SHRT_MIN __SHRT_MIN /* min value for a short */
|
||||
|
||||
#define UINT_MAX __UINT_MAX /* max value for an unsigned int */
|
||||
#define INT_MAX __INT_MAX /* max value for an int */
|
||||
#define INT_MIN __INT_MIN /* min value for an int */
|
||||
|
||||
#define ULONG_MAX __ULONG_MAX /* max for an unsigned long */
|
||||
#define LONG_MAX __LONG_MAX /* max for a long */
|
||||
#define LONG_MIN __LONG_MIN /* min for a long */
|
||||
|
||||
#ifdef __LONG_LONG_SUPPORTED
|
||||
#define ULLONG_MAX __ULLONG_MAX /* max for an unsigned long long */
|
||||
#define LLONG_MAX __LLONG_MAX /* max for a long long */
|
||||
#define LLONG_MIN __LLONG_MIN /* min for a long long */
|
||||
#endif
|
||||
|
||||
#if __POSIX_VISIBLE || __XSI_VISIBLE
|
||||
#define SSIZE_MAX __SSIZE_MAX /* max value for an ssize_t */
|
||||
#endif
|
||||
|
||||
#if __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE
|
||||
#define SIZE_T_MAX __SIZE_T_MAX /* max value for a size_t */
|
||||
|
||||
#define OFF_MAX __OFF_MAX /* max value for an off_t */
|
||||
#define OFF_MIN __OFF_MIN /* min value for an off_t */
|
||||
#endif
|
||||
|
||||
#if __BSD_VISIBLE
|
||||
#define GID_MAX UINT_MAX /* max value for a gid_t */
|
||||
#define UID_MAX UINT_MAX /* max value for a uid_t */
|
||||
|
||||
#define UQUAD_MAX (__UQUAD_MAX) /* max value for a uquad_t */
|
||||
#define QUAD_MAX (__QUAD_MAX) /* max value for a quad_t */
|
||||
#define QUAD_MIN (__QUAD_MIN) /* min value for a quad_t */
|
||||
#endif
|
||||
|
||||
#if __XSI_VISIBLE || __POSIX_VISIBLE >= 200809
|
||||
#define LONG_BIT __LONG_BIT
|
||||
#define WORD_BIT __WORD_BIT
|
||||
#endif
|
||||
|
||||
#if __POSIX_VISIBLE
|
||||
#define MQ_PRIO_MAX 64
|
||||
#endif
|
||||
|
||||
#endif /* !_SYS_LIMITS_H_ */
|
|
@ -1,75 +0,0 @@
|
|||
/*-
|
||||
* Copyright (c) 2002 David E. O'Brien. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $FreeBSD$
|
||||
*/
|
||||
|
||||
#ifndef _MACHINE_STDARG_H_
|
||||
#define _MACHINE_STDARG_H_
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <sys/_types.h>
|
||||
|
||||
#ifndef _VA_LIST_DECLARED
|
||||
#define _VA_LIST_DECLARED
|
||||
typedef __va_list va_list;
|
||||
#endif
|
||||
|
||||
#ifdef __GNUCLIKE_BUILTIN_STDARG
|
||||
|
||||
#define va_start(ap, last) \
|
||||
__builtin_va_start((ap), (last))
|
||||
|
||||
#define va_arg(ap, type) \
|
||||
__builtin_va_arg((ap), type)
|
||||
|
||||
#define __va_copy(dest, src) \
|
||||
__builtin_va_copy((dest), (src))
|
||||
|
||||
#if __ISO_C_VISIBLE >= 1999
|
||||
#define va_copy(dest, src) \
|
||||
__va_copy(dest, src)
|
||||
#endif
|
||||
|
||||
#define va_end(ap) \
|
||||
__builtin_va_end(ap)
|
||||
|
||||
#elif defined(lint)
|
||||
/* Provide a fake implementation for lint's benefit */
|
||||
#define __va_size(type) \
|
||||
(((sizeof(type) + sizeof(long) - 1) / sizeof(long)) * sizeof(long))
|
||||
#define va_start(ap, last) \
|
||||
((ap) = (va_list)&(last) + __va_size(last))
|
||||
#define va_arg(ap, type) \
|
||||
(*(type *)((ap) += __va_size(type), (ap) - __va_size(type)))
|
||||
#define va_end(ap)
|
||||
|
||||
#else
|
||||
#error this file needs to be ported to your compiler
|
||||
#endif
|
||||
|
||||
#endif /* !_MACHINE_STDARG_H_ */
|
|
@ -1,74 +0,0 @@
|
|||
/*-
|
||||
* Copyright (c) 2001 Mike Barcroft <mike@FreeBSD.org>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $FreeBSD$
|
||||
*/
|
||||
|
||||
#ifndef _SYS_STDINT_H_
|
||||
#define _SYS_STDINT_H_
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <sys/_types.h>
|
||||
|
||||
#include <machine/_stdint.h>
|
||||
#include <sys/_stdint.h>
|
||||
|
||||
typedef __int_least8_t int_least8_t;
|
||||
typedef __int_least16_t int_least16_t;
|
||||
typedef __int_least32_t int_least32_t;
|
||||
typedef __int_least64_t int_least64_t;
|
||||
|
||||
typedef __uint_least8_t uint_least8_t;
|
||||
typedef __uint_least16_t uint_least16_t;
|
||||
typedef __uint_least32_t uint_least32_t;
|
||||
typedef __uint_least64_t uint_least64_t;
|
||||
|
||||
typedef __int_fast8_t int_fast8_t;
|
||||
typedef __int_fast16_t int_fast16_t;
|
||||
typedef __int_fast32_t int_fast32_t;
|
||||
typedef __int_fast64_t int_fast64_t;
|
||||
|
||||
typedef __uint_fast8_t uint_fast8_t;
|
||||
typedef __uint_fast16_t uint_fast16_t;
|
||||
typedef __uint_fast32_t uint_fast32_t;
|
||||
typedef __uint_fast64_t uint_fast64_t;
|
||||
|
||||
#ifndef _INTMAX_T_DECLARED
|
||||
typedef __intmax_t intmax_t;
|
||||
#define _INTMAX_T_DECLARED
|
||||
#endif
|
||||
#ifndef _UINTMAX_T_DECLARED
|
||||
typedef __uintmax_t uintmax_t;
|
||||
#define _UINTMAX_T_DECLARED
|
||||
#endif
|
||||
|
||||
/* GNU and Darwin define this and people seem to think it's portable */
|
||||
#if defined(UINTPTR_MAX) && defined(UINT64_MAX) && (UINTPTR_MAX == UINT64_MAX)
|
||||
#define __WORDSIZE 64
|
||||
#else
|
||||
#define __WORDSIZE 32
|
||||
#endif
|
||||
|
||||
#endif /* !_SYS_STDINT_H_ */
|
|
@ -1,63 +0,0 @@
|
|||
/*-
|
||||
* Copyright (c) 1982, 1986, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)time.h 8.5 (Berkeley) 5/4/95
|
||||
* from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
|
||||
* $FreeBSD$
|
||||
*/
|
||||
|
||||
#ifndef _SYS_TIMESPEC_H_
|
||||
#define _SYS_TIMESPEC_H_
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <sys/_timespec.h>
|
||||
|
||||
#if __BSD_VISIBLE
|
||||
#define TIMEVAL_TO_TIMESPEC(tv, ts) \
|
||||
do { \
|
||||
(ts)->tv_sec = (tv)->tv_sec; \
|
||||
(ts)->tv_nsec = (tv)->tv_usec * 1000; \
|
||||
} while (0)
|
||||
#define TIMESPEC_TO_TIMEVAL(tv, ts) \
|
||||
do { \
|
||||
(tv)->tv_sec = (ts)->tv_sec; \
|
||||
(tv)->tv_usec = (ts)->tv_nsec / 1000; \
|
||||
} while (0)
|
||||
|
||||
#endif /* __BSD_VISIBLE */
|
||||
|
||||
/*
|
||||
* Structure defined by POSIX.1b to be like a itimerval, but with
|
||||
* timespecs. Used in the timer_*() system calls.
|
||||
*/
|
||||
struct itimerspec {
|
||||
struct timespec it_interval;
|
||||
struct timespec it_value;
|
||||
};
|
||||
|
||||
#endif /* _SYS_TIMESPEC_H_ */
|
|
@ -1,245 +0,0 @@
|
|||
/*-
|
||||
* Copyright (c) 1982, 1986, 1991, 1993, 1994
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
* (c) UNIX System Laboratories, Inc.
|
||||
* All or some portions of this file are derived from material licensed
|
||||
* to the University of California by American Telephone and Telegraph
|
||||
* Co. or Unix System Laboratories, Inc. and are reproduced herein with
|
||||
* the permission of UNIX System Laboratories, Inc.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)types.h 8.6 (Berkeley) 2/19/95
|
||||
* $FreeBSD$
|
||||
*/
|
||||
|
||||
#ifndef _SYS_TYPES_H_
|
||||
#define _SYS_TYPES_H_
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
/* Machine type dependent parameters. */
|
||||
#include <sys/_types.h>
|
||||
|
||||
#if __BSD_VISIBLE
|
||||
typedef unsigned char u_char;
|
||||
typedef unsigned short u_short;
|
||||
typedef unsigned int u_int;
|
||||
typedef unsigned long u_long;
|
||||
#ifndef _KERNEL
|
||||
typedef unsigned short ushort; /* Sys V compatibility */
|
||||
typedef unsigned int uint; /* Sys V compatibility */
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
* XXX POSIX sized integrals that should appear only in <sys/stdint.h>.
|
||||
*/
|
||||
#include <sys/_stdint.h>
|
||||
|
||||
typedef __uint8_t u_int8_t; /* unsigned integrals (deprecated) */
|
||||
typedef __uint16_t u_int16_t;
|
||||
typedef __uint32_t u_int32_t;
|
||||
typedef __uint64_t u_int64_t;
|
||||
|
||||
typedef __uint64_t u_quad_t; /* quads (deprecated) */
|
||||
typedef __int64_t quad_t;
|
||||
typedef quad_t *qaddr_t;
|
||||
|
||||
typedef char *caddr_t; /* core address */
|
||||
typedef const char *c_caddr_t; /* core address, pointer to const */
|
||||
|
||||
#ifndef _BLKSIZE_T_DECLARED
|
||||
typedef __blksize_t blksize_t;
|
||||
#define _BLKSIZE_T_DECLARED
|
||||
#endif
|
||||
|
||||
typedef __cpuwhich_t cpuwhich_t;
|
||||
typedef __cpulevel_t cpulevel_t;
|
||||
typedef __cpusetid_t cpusetid_t;
|
||||
|
||||
#ifndef _BLKCNT_T_DECLARED
|
||||
typedef __blkcnt_t blkcnt_t;
|
||||
#define _BLKCNT_T_DECLARED
|
||||
#endif
|
||||
|
||||
#ifndef _CLOCK_T_DECLARED
|
||||
typedef __clock_t clock_t;
|
||||
#define _CLOCK_T_DECLARED
|
||||
#endif
|
||||
|
||||
#ifndef _CLOCKID_T_DECLARED
|
||||
typedef __clockid_t clockid_t;
|
||||
#define _CLOCKID_T_DECLARED
|
||||
#endif
|
||||
|
||||
typedef __critical_t critical_t; /* Critical section value */
|
||||
typedef __int64_t daddr_t; /* disk address */
|
||||
|
||||
#ifndef _DEV_T_DECLARED
|
||||
typedef __dev_t dev_t; /* device number or struct cdev */
|
||||
#define _DEV_T_DECLARED
|
||||
#endif
|
||||
|
||||
#ifndef _FFLAGS_T_DECLARED
|
||||
typedef __fflags_t fflags_t; /* file flags */
|
||||
#define _FFLAGS_T_DECLARED
|
||||
#endif
|
||||
|
||||
typedef __fixpt_t fixpt_t; /* fixed point number */
|
||||
|
||||
#ifndef _FSBLKCNT_T_DECLARED /* for statvfs() */
|
||||
typedef __fsblkcnt_t fsblkcnt_t;
|
||||
typedef __fsfilcnt_t fsfilcnt_t;
|
||||
#define _FSBLKCNT_T_DECLARED
|
||||
#endif
|
||||
|
||||
#ifndef _GID_T_DECLARED
|
||||
typedef __gid_t gid_t; /* group id */
|
||||
#define _GID_T_DECLARED
|
||||
#endif
|
||||
|
||||
#ifndef _IN_ADDR_T_DECLARED
|
||||
typedef __uint32_t in_addr_t; /* base type for internet address */
|
||||
#define _IN_ADDR_T_DECLARED
|
||||
#endif
|
||||
|
||||
#ifndef _IN_PORT_T_DECLARED
|
||||
typedef __uint16_t in_port_t;
|
||||
#define _IN_PORT_T_DECLARED
|
||||
#endif
|
||||
|
||||
#ifndef _ID_T_DECLARED
|
||||
typedef __id_t id_t; /* can hold a uid_t or pid_t */
|
||||
#define _ID_T_DECLARED
|
||||
#endif
|
||||
|
||||
#ifndef _INO_T_DECLARED
|
||||
typedef __ino_t ino_t; /* inode number */
|
||||
#define _INO_T_DECLARED
|
||||
#endif
|
||||
|
||||
#ifndef _KEY_T_DECLARED
|
||||
typedef __key_t key_t; /* IPC key (for Sys V IPC) */
|
||||
#define _KEY_T_DECLARED
|
||||
#endif
|
||||
|
||||
#ifndef _LWPID_T_DECLARED
|
||||
typedef __lwpid_t lwpid_t; /* Thread ID (a.k.a. LWP) */
|
||||
#define _LWPID_T_DECLARED
|
||||
#endif
|
||||
|
||||
#ifndef _MODE_T_DECLARED
|
||||
typedef __mode_t mode_t; /* permissions */
|
||||
#define _MODE_T_DECLARED
|
||||
#endif
|
||||
|
||||
#ifndef _ACCMODE_T_DECLARED
|
||||
typedef __accmode_t accmode_t; /* access permissions */
|
||||
#define _ACCMODE_T_DECLARED
|
||||
#endif
|
||||
|
||||
#ifndef _NLINK_T_DECLARED
|
||||
typedef __nlink_t nlink_t; /* link count */
|
||||
#define _NLINK_T_DECLARED
|
||||
#endif
|
||||
|
||||
#ifndef _OFF_T_DECLARED
|
||||
typedef __off_t off_t; /* file offset */
|
||||
#define _OFF_T_DECLARED
|
||||
#endif
|
||||
|
||||
#ifndef _PID_T_DECLARED
|
||||
typedef __pid_t pid_t; /* process id */
|
||||
#define _PID_T_DECLARED
|
||||
#endif
|
||||
|
||||
typedef __register_t register_t;
|
||||
|
||||
#ifndef _RLIM_T_DECLARED
|
||||
typedef __rlim_t rlim_t; /* resource limit */
|
||||
#define _RLIM_T_DECLARED
|
||||
#endif
|
||||
|
||||
typedef __int64_t sbintime_t;
|
||||
|
||||
typedef __segsz_t segsz_t; /* segment size (in pages) */
|
||||
|
||||
#ifndef _SIZE_T_DECLARED
|
||||
typedef __size_t size_t;
|
||||
#define _SIZE_T_DECLARED
|
||||
#endif
|
||||
|
||||
#ifndef _SSIZE_T_DECLARED
|
||||
typedef __ssize_t ssize_t;
|
||||
#define _SSIZE_T_DECLARED
|
||||
#endif
|
||||
|
||||
#ifndef _SUSECONDS_T_DECLARED
|
||||
typedef __suseconds_t suseconds_t; /* microseconds (signed) */
|
||||
#define _SUSECONDS_T_DECLARED
|
||||
#endif
|
||||
|
||||
#ifndef _TIME_T_DECLARED
|
||||
typedef __time_t time_t;
|
||||
#define _TIME_T_DECLARED
|
||||
#endif
|
||||
|
||||
#ifndef _TIMER_T_DECLARED
|
||||
typedef __timer_t timer_t;
|
||||
#define _TIMER_T_DECLARED
|
||||
#endif
|
||||
|
||||
#ifndef _MQD_T_DECLARED
|
||||
typedef __mqd_t mqd_t;
|
||||
#define _MQD_T_DECLARED
|
||||
#endif
|
||||
|
||||
typedef __u_register_t u_register_t;
|
||||
|
||||
#ifndef _UID_T_DECLARED
|
||||
typedef __uid_t uid_t; /* user id */
|
||||
#define _UID_T_DECLARED
|
||||
#endif
|
||||
|
||||
#ifndef _USECONDS_T_DECLARED
|
||||
typedef __useconds_t useconds_t; /* microseconds (unsigned) */
|
||||
#define _USECONDS_T_DECLARED
|
||||
#endif
|
||||
|
||||
#ifndef _CAP_RIGHTS_T_DECLARED
|
||||
#define _CAP_RIGHTS_T_DECLARED
|
||||
struct cap_rights;
|
||||
|
||||
typedef struct cap_rights cap_rights_t;
|
||||
#endif
|
||||
|
||||
typedef __vm_offset_t vm_offset_t;
|
||||
typedef __vm_ooffset_t vm_ooffset_t;
|
||||
typedef __vm_paddr_t vm_paddr_t;
|
||||
typedef __vm_pindex_t vm_pindex_t;
|
||||
typedef __vm_size_t vm_size_t;
|
||||
|
||||
#endif /* !_SYS_TYPES_H_ */
|
|
@ -1,204 +1,20 @@
|
|||
/*
|
||||
* Copyright (c) 1989, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
* (c) UNIX System Laboratories, Inc.
|
||||
* All or some portions of this file are derived from material licensed
|
||||
* to the University of California by American Telephone and Telegraph
|
||||
* Co. or Unix System Laboratories, Inc. and are reproduced herein with
|
||||
* the permission of UNIX System Laboratories, Inc.
|
||||
* Copyright (c) 2012-2017 Roberto E. Vargas Caballero
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)time.h 8.3 (Berkeley) 1/21/94
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
/*
|
||||
* $FreeBSD$
|
||||
* Portions copyright (c) 2018, ARM Limited and Contributors.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef _TIME_H_
|
||||
#define _TIME_H_
|
||||
#ifndef TIME_H
|
||||
#define TIME_H
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <sys/_null.h>
|
||||
#include <sys/_types.h>
|
||||
#include <time_.h>
|
||||
|
||||
#if __POSIX_VISIBLE > 0 && __POSIX_VISIBLE < 200112 || __BSD_VISIBLE
|
||||
/*
|
||||
* Frequency of the clock ticks reported by times(). Deprecated - use
|
||||
* sysconf(_SC_CLK_TCK) instead. (Removed in 1003.1-2001.)
|
||||
*/
|
||||
#define CLK_TCK 128
|
||||
#ifndef NULL
|
||||
#define NULL ((void *) 0)
|
||||
#endif
|
||||
|
||||
/* Frequency of the clock ticks reported by clock(). */
|
||||
#define CLOCKS_PER_SEC 128
|
||||
|
||||
#ifndef _CLOCK_T_DECLARED
|
||||
typedef __clock_t clock_t;
|
||||
#define _CLOCK_T_DECLARED
|
||||
#endif
|
||||
|
||||
#ifndef _TIME_T_DECLARED
|
||||
typedef __time_t time_t;
|
||||
#define _TIME_T_DECLARED
|
||||
#endif
|
||||
|
||||
#ifndef _SIZE_T_DECLARED
|
||||
typedef __size_t size_t;
|
||||
#define _SIZE_T_DECLARED
|
||||
#endif
|
||||
|
||||
#if __POSIX_VISIBLE >= 199309
|
||||
/*
|
||||
* New in POSIX 1003.1b-1993.
|
||||
*/
|
||||
#ifndef _CLOCKID_T_DECLARED
|
||||
typedef __clockid_t clockid_t;
|
||||
#define _CLOCKID_T_DECLARED
|
||||
#endif
|
||||
|
||||
#ifndef _TIMER_T_DECLARED
|
||||
typedef __timer_t timer_t;
|
||||
#define _TIMER_T_DECLARED
|
||||
#endif
|
||||
|
||||
#include <sys/timespec.h>
|
||||
#endif /* __POSIX_VISIBLE >= 199309 */
|
||||
|
||||
#if __POSIX_VISIBLE >= 200112
|
||||
#ifndef _PID_T_DECLARED
|
||||
typedef __pid_t pid_t;
|
||||
#define _PID_T_DECLARED
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* These macros are also in sys/time.h. */
|
||||
#if !defined(CLOCK_REALTIME) && __POSIX_VISIBLE >= 200112
|
||||
#define CLOCK_REALTIME 0
|
||||
#ifdef __BSD_VISIBLE
|
||||
#define CLOCK_VIRTUAL 1
|
||||
#define CLOCK_PROF 2
|
||||
#endif
|
||||
#define CLOCK_MONOTONIC 4
|
||||
#define CLOCK_UPTIME 5 /* FreeBSD-specific. */
|
||||
#define CLOCK_UPTIME_PRECISE 7 /* FreeBSD-specific. */
|
||||
#define CLOCK_UPTIME_FAST 8 /* FreeBSD-specific. */
|
||||
#define CLOCK_REALTIME_PRECISE 9 /* FreeBSD-specific. */
|
||||
#define CLOCK_REALTIME_FAST 10 /* FreeBSD-specific. */
|
||||
#define CLOCK_MONOTONIC_PRECISE 11 /* FreeBSD-specific. */
|
||||
#define CLOCK_MONOTONIC_FAST 12 /* FreeBSD-specific. */
|
||||
#define CLOCK_SECOND 13 /* FreeBSD-specific. */
|
||||
#define CLOCK_THREAD_CPUTIME_ID 14
|
||||
#define CLOCK_PROCESS_CPUTIME_ID 15
|
||||
#endif /* !defined(CLOCK_REALTIME) && __POSIX_VISIBLE >= 200112 */
|
||||
|
||||
#if !defined(TIMER_ABSTIME) && __POSIX_VISIBLE >= 200112
|
||||
#if __BSD_VISIBLE
|
||||
#define TIMER_RELTIME 0x0 /* relative timer */
|
||||
#endif
|
||||
#define TIMER_ABSTIME 0x1 /* absolute timer */
|
||||
#endif /* !defined(TIMER_ABSTIME) && __POSIX_VISIBLE >= 200112 */
|
||||
|
||||
struct tm {
|
||||
int tm_sec; /* seconds after the minute [0-60] */
|
||||
int tm_min; /* minutes after the hour [0-59] */
|
||||
int tm_hour; /* hours since midnight [0-23] */
|
||||
int tm_mday; /* day of the month [1-31] */
|
||||
int tm_mon; /* months since January [0-11] */
|
||||
int tm_year; /* years since 1900 */
|
||||
int tm_wday; /* days since Sunday [0-6] */
|
||||
int tm_yday; /* days since January 1 [0-365] */
|
||||
int tm_isdst; /* Daylight Savings Time flag */
|
||||
long tm_gmtoff; /* offset from UTC in seconds */
|
||||
char *tm_zone; /* timezone abbreviation */
|
||||
};
|
||||
|
||||
#if __POSIX_VISIBLE
|
||||
extern char *tzname[];
|
||||
#endif
|
||||
|
||||
__BEGIN_DECLS
|
||||
char *asctime(const struct tm *);
|
||||
clock_t clock(void);
|
||||
char *ctime(const time_t *);
|
||||
double difftime(time_t, time_t);
|
||||
/* XXX missing: getdate() */
|
||||
struct tm *gmtime(const time_t *);
|
||||
struct tm *localtime(const time_t *);
|
||||
time_t mktime(struct tm *);
|
||||
size_t strftime(char *__restrict, size_t, const char *__restrict,
|
||||
const struct tm *__restrict);
|
||||
time_t time(time_t *);
|
||||
#if __POSIX_VISIBLE >= 200112
|
||||
struct sigevent;
|
||||
int timer_create(clockid_t, struct sigevent *__restrict, timer_t *__restrict);
|
||||
int timer_delete(timer_t);
|
||||
int timer_gettime(timer_t, struct itimerspec *);
|
||||
int timer_getoverrun(timer_t);
|
||||
int timer_settime(timer_t, int, const struct itimerspec *__restrict,
|
||||
struct itimerspec *__restrict);
|
||||
#endif
|
||||
#if __POSIX_VISIBLE
|
||||
void tzset(void);
|
||||
#endif
|
||||
|
||||
#if __POSIX_VISIBLE >= 199309
|
||||
int clock_getres(clockid_t, struct timespec *);
|
||||
int clock_gettime(clockid_t, struct timespec *);
|
||||
int clock_settime(clockid_t, const struct timespec *);
|
||||
/* XXX missing: clock_nanosleep() */
|
||||
int nanosleep(const struct timespec *, struct timespec *);
|
||||
#endif /* __POSIX_VISIBLE >= 199309 */
|
||||
|
||||
#if __POSIX_VISIBLE >= 200112
|
||||
int clock_getcpuclockid(pid_t, clockid_t *);
|
||||
#endif
|
||||
|
||||
#if __POSIX_VISIBLE >= 199506
|
||||
char *asctime_r(const struct tm *, char *);
|
||||
char *ctime_r(const time_t *, char *);
|
||||
struct tm *gmtime_r(const time_t *, struct tm *);
|
||||
struct tm *localtime_r(const time_t *, struct tm *);
|
||||
#endif
|
||||
|
||||
#if __XSI_VISIBLE
|
||||
char *strptime(const char *__restrict, const char *__restrict,
|
||||
struct tm *__restrict);
|
||||
#endif
|
||||
|
||||
#if __BSD_VISIBLE
|
||||
char *timezone(int, int); /* XXX XSI conflict */
|
||||
void tzsetwall(void);
|
||||
time_t timelocal(struct tm * const);
|
||||
time_t timegm(struct tm * const);
|
||||
#endif /* __BSD_VISIBLE */
|
||||
|
||||
#if __POSIX_VISIBLE >= 200809 || defined(_XLOCALE_H_)
|
||||
#include <xlocale/_time.h>
|
||||
#endif
|
||||
__END_DECLS
|
||||
|
||||
#endif /* !_TIME_H_ */
|
||||
#endif /* TIME_H */
|
||||
|
|
|
@ -1,48 +0,0 @@
|
|||
/*-
|
||||
* Copyright (c) 2011, 2012 The FreeBSD Foundation
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $FreeBSD$
|
||||
*/
|
||||
|
||||
#ifndef _LOCALE_T_DEFINED
|
||||
#define _LOCALE_T_DEFINED
|
||||
typedef struct _xlocale *locale_t;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* This file is included from both strings.h and xlocale.h. We need to expose
|
||||
* the declarations unconditionally if we are included from xlocale.h, but only
|
||||
* if we are in POSIX2008 mode if included from string.h.
|
||||
*/
|
||||
|
||||
#ifndef _XLOCALE_STRINGS1_H
|
||||
#define _XLOCALE_STRINGS1_H
|
||||
|
||||
/*
|
||||
* POSIX2008 functions
|
||||
*/
|
||||
int strcasecmp_l(const char *, const char *, locale_t);
|
||||
int strncasecmp_l(const char *, const char *, size_t, locale_t);
|
||||
#endif /* _XLOCALE_STRINGS1_H */
|
|
@ -1,58 +0,0 @@
|
|||
/*-
|
||||
* Copyright (c) 2011, 2012 The FreeBSD Foundation
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software was developed by David Chisnall under sponsorship from
|
||||
* the FreeBSD Foundation.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $FreeBSD$
|
||||
*/
|
||||
|
||||
#ifndef _LOCALE_T_DEFINED
|
||||
#define _LOCALE_T_DEFINED
|
||||
typedef struct _xlocale *locale_t;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* This file is included from both locale.h and xlocale.h. We need to expose
|
||||
* the declarations unconditionally if we are included from xlocale.h, but only
|
||||
* if we are in POSIX2008 mode if included from locale.h.
|
||||
*/
|
||||
#ifndef _XLOCALE_LOCALE1_H
|
||||
#define _XLOCALE_LOCALE1_H
|
||||
|
||||
size_t strftime_l(char *__restrict, size_t, const char *__restrict,
|
||||
const struct tm *__restrict, locale_t) __strftimelike(3, 0);
|
||||
|
||||
#endif /* _XLOCALE_LOCALE1_H */
|
||||
|
||||
#ifdef _XLOCALE_H_
|
||||
#ifndef _XLOCALE_LOCALE2_H
|
||||
#define _XLOCALE_LOCALE2_H
|
||||
|
||||
char *strptime_l(const char *__restrict, const char *__restrict,
|
||||
struct tm *__restrict, locale_t);
|
||||
|
||||
#endif /* _XLOCALE_LOCALE2_H */
|
||||
#endif /* _XLOCALE_H_ */
|
|
@ -171,7 +171,6 @@
|
|||
#ifndef __ASSEMBLY__
|
||||
|
||||
#include <stdint.h>
|
||||
#include <types.h>
|
||||
|
||||
/* Function to help build the psci capabilities bitfield */
|
||||
|
||||
|
|
|
@ -10,7 +10,8 @@
|
|||
#include <ep_info.h>
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
#include <types.h>
|
||||
#include <cdefs.h>
|
||||
#include <stdint.h>
|
||||
|
||||
/*******************************************************************************
|
||||
* Optional structure populated by the Secure Payload Dispatcher to be given a
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2013-2017, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
@ -9,7 +9,7 @@
|
|||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
#include <types.h>
|
||||
#include <stdint.h>
|
||||
|
||||
typedef struct spinlock {
|
||||
volatile uint32_t lock;
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
*/
|
||||
#if !(defined(__LINKER__) || defined(__ASSEMBLY__))
|
||||
|
||||
#include <types.h>
|
||||
#include <stdint.h>
|
||||
|
||||
typedef struct mem_region {
|
||||
uintptr_t base;
|
||||
|
|
|
@ -54,7 +54,7 @@
|
|||
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
#include <sys/types.h>
|
||||
#include <string.h>
|
||||
|
||||
/*
|
||||
* Return the values that the MMU configuration registers must contain for the
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
#include <cdefs.h>
|
||||
#include <psci.h>
|
||||
#include <types.h>
|
||||
#include <stdint.h>
|
||||
|
||||
/* System power domain at level 2, as currently implemented by CSS platforms */
|
||||
#define CSS_SYSTEM_PWR_DMN_LVL ARM_PWR_LVL2
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
#include <bl_common.h>
|
||||
#include <platform_def.h>
|
||||
#include <xlat_tables_defs.h>
|
||||
|
||||
/******************************************************************************
|
||||
* Required platform porting definitions that are expected to be common to
|
||||
|
|
|
@ -9,8 +9,6 @@
|
|||
|
||||
#include <psci.h>
|
||||
#include <stdint.h>
|
||||
#include <types.h>
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* Forward declarations
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#ifndef __SECURE_PARTITION_H__
|
||||
#define __SECURE_PARTITION_H__
|
||||
|
||||
#include <types.h>
|
||||
#include <stdint.h>
|
||||
#include <utils_def.h>
|
||||
|
||||
/*
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
/*
|
||||
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#include <asm_macros.S>
|
||||
|
||||
/* Symbols needed by armclang */
|
||||
|
||||
.globl __0printf
|
||||
.globl __1printf
|
||||
.globl __2printf
|
||||
|
||||
func __0printf
|
||||
__1printf:
|
||||
__2printf:
|
||||
b printf
|
||||
endfunc __0printf
|
|
@ -0,0 +1,19 @@
|
|||
/*
|
||||
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#include <asm_macros.S>
|
||||
|
||||
/* Symbols needed by armclang */
|
||||
|
||||
.globl __0printf
|
||||
.globl __1printf
|
||||
.globl __2printf
|
||||
|
||||
func __0printf
|
||||
__1printf:
|
||||
__2printf:
|
||||
b printf
|
||||
endfunc __0printf
|
|
@ -14,7 +14,7 @@
|
|||
*/
|
||||
|
||||
/*
|
||||
* Portions copyright (c) 2017, ARM Limited and Contributors.
|
||||
* Portions copyright (c) 2017-2018, ARM Limited and Contributors.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
|
@ -63,9 +63,8 @@
|
|||
* Kernel and boot environment can't use normal headers,
|
||||
* so use the equivalent system headers.
|
||||
*/
|
||||
# include <sys/limits.h>
|
||||
# include <sys/stdint.h>
|
||||
# include <sys/types.h>
|
||||
# include <limits.h>
|
||||
# include <stdint.h>
|
||||
|
||||
/* Include the commonly used internal type definitions. */
|
||||
#include "int_types.h"
|
||||
|
|
|
@ -7,10 +7,7 @@
|
|||
#include <debug.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
/*
|
||||
* This is a basic implementation. This could be improved.
|
||||
*/
|
||||
void abort (void)
|
||||
void abort(void)
|
||||
{
|
||||
ERROR("ABORT\n");
|
||||
panic();
|
||||
|
|
|
@ -1,30 +1,32 @@
|
|||
/*
|
||||
* Copyright (c) 2013-2017, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#include <assert.h>
|
||||
#include <cdefs.h>
|
||||
#include <console.h>
|
||||
#include <debug.h>
|
||||
#include <platform.h>
|
||||
#include <stdio.h>
|
||||
|
||||
/*
|
||||
* Only print the output if PLAT_LOG_LEVEL_ASSERT is higher or equal to
|
||||
* LOG_LEVEL_INFO, which is the default value for builds with DEBUG=1.
|
||||
*/
|
||||
* Only print the output if PLAT_LOG_LEVEL_ASSERT is higher or equal to
|
||||
* LOG_LEVEL_INFO, which is the default value for builds with DEBUG=1.
|
||||
*/
|
||||
|
||||
#if PLAT_LOG_LEVEL_ASSERT >= LOG_LEVEL_VERBOSE
|
||||
void __assert(const char *file, unsigned int line, const char *assertion)
|
||||
{
|
||||
tf_printf("ASSERT: %s:%d:%s\n", file, line, assertion);
|
||||
printf("ASSERT: %s:%d:%s\n", file, line, assertion);
|
||||
console_flush();
|
||||
plat_panic_handler();
|
||||
}
|
||||
#elif PLAT_LOG_LEVEL_ASSERT >= LOG_LEVEL_INFO
|
||||
void __assert(const char *file, unsigned int line)
|
||||
{
|
||||
tf_printf("ASSERT: %s:%d\n", file, line);
|
||||
printf("ASSERT: %s:%d\n", file, line);
|
||||
console_flush();
|
||||
plat_panic_handler();
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (c) 2016-2017, ARM Limited and Contributors. All rights reserved.
|
||||
# Copyright (c) 2016-2018, ARM Limited and Contributors. All rights reserved.
|
||||
#
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
#
|
||||
|
@ -8,18 +8,20 @@ LIBC_SRCS := $(addprefix lib/libc/, \
|
|||
abort.c \
|
||||
assert.c \
|
||||
exit.c \
|
||||
mem.c \
|
||||
memchr.c \
|
||||
memcmp.c \
|
||||
memcpy.c \
|
||||
memmove.c \
|
||||
memset.c \
|
||||
printf.c \
|
||||
putchar.c \
|
||||
puts.c \
|
||||
sscanf.c \
|
||||
snprintf.c \
|
||||
strchr.c \
|
||||
strcmp.c \
|
||||
strlen.c \
|
||||
strncmp.c \
|
||||
strnlen.c \
|
||||
subr_prf.c \
|
||||
timingsafe_bcmp.c)
|
||||
strnlen.c)
|
||||
|
||||
INCLUDES += -Iinclude/lib/libc \
|
||||
-Iinclude/lib/libc/sys
|
||||
-Iinclude/lib/libc/$(ARCH) \
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue