Changeset bc56f30 in mainline for abi


Ignore:
Timestamp:
2019-05-27T12:38:26Z (6 years ago)
Author:
Jiří Zárevúcky <zarevucky.jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
0d14c25
Parents:
4d51c60
git-author:
Jiří Zárevúcky <zarevucky.jiri@…> (2019-02-13 16:06:49)
git-committer:
Jiří Zárevúcky <zarevucky.jiri@…> (2019-05-27 12:38:26)
Message:

Make some libc and libposix headers usable in C++

These headers either get included from standard C++ headers,
or are standard themselves, which means any unnamespaced nonstandard
identifiers are a problem. This commit attempts to fix those
issues, and removes hacks previously used in libcpp to work around it.

Location:
abi/include
Files:
1 added
5 edited

Legend:

Unmodified
Added
Removed
  • abi/include/_bits/errno.h

    r4d51c60 rbc56f30  
    4141#define _BITS_ERRNO_H_
    4242
     43#include <_bits/native.h>
     44#include <_bits/decls.h>
     45
    4346#ifdef __OPAQUE_ERRNO__
    4447#include <_bits/__opaque_handle.h>
    4548
     49__HELENOS_DECLS_BEGIN;
    4650__opaque_handle(errno_t);
    4751typedef errno_t sys_errno_t;
     52__HELENOS_DECLS_END;
     53
    4854#define __errno_t(val) ((errno_t) val)
    4955
    5056#else
    5157
    52 #include <_bits/native.h>
     58__HELENOS_DECLS_BEGIN;
    5359
    5460/**
     
    6571typedef sysarg_t sys_errno_t;
    6672
     73__HELENOS_DECLS_END;
     74
    6775/**
    6876 * A C++-style "cast" to `errno_t`.
  • abi/include/_bits/native.h

    r4d51c60 rbc56f30  
    4747
    4848#include <inttypes.h>
     49#include <_bits/decls.h>
     50
     51__HELENOS_DECLS_BEGIN;
    4952
    5053typedef uintptr_t pfn_t;
     
    5356typedef intptr_t  native_t;
    5457
    55 #define PRIdn  PRIdPTR  /**< Format for native_t. */
    56 #define PRIun  PRIuPTR  /**< Format for sysarg_t. */
    57 #define PRIxn  PRIxPTR  /**< Format for hexadecimal sysarg_t. */
     58__HELENOS_DECLS_END;
    5859
    5960#endif
  • abi/include/_bits/ssize_t.h

    r4d51c60 rbc56f30  
    4242
    4343#include <stdint.h>
     44#include <_bits/decls.h>
    4445
     46__C_DECLS_BEGIN;
    4547typedef intptr_t ssize_t;
    46 
    47 #define SSIZE_MIN  INTPTR_MIN
    48 #define SSIZE_MAX  INTPTR_MAX
     48__C_DECLS_END;
    4949
    5050#endif
  • abi/include/inttypes.h

    r4d51c60 rbc56f30  
    4343#include <stdint.h>
    4444#include <_bits/wchar_t.h>
     45#include <_bits/decls.h>
    4546
    4647/*
     
    311312#endif
    312313
    313 #ifdef _HELENOS_SOURCE
    314 #define UINT8_MIN   0
    315 #define UINT16_MIN  0
    316 #define UINT32_MIN  0
    317 #define UINT64_MIN  0
    318 #endif
    319 
    320314#define PRIdMAX  "lld"
    321315#define PRIiMAX  "lli"
     
    330324#define SCNxMAX  "llx"
    331325
    332 #ifdef __cplusplus
    333 extern "C" {
     326#if defined(_HELENOS_SOURCE) && !defined(__cplusplus)
     327#define PRIdn  PRIdPTR  /**< Format for native_t. */
     328#define PRIun  PRIuPTR  /**< Format for sysarg_t. */
     329#define PRIxn  PRIxPTR  /**< Format for hexadecimal sysarg_t. */
    334330#endif
     331
     332__C_DECLS_BEGIN;
    335333
    336334typedef struct {
     
    343341intmax_t strtoimax(const char *__restrict__, char **__restrict__, int);
    344342uintmax_t strtoumax(const char *__restrict__, char **__restrict__, int);
    345 
    346 #ifdef __cplusplus
    347 }
     343intmax_t wcstoimax(const wchar_t *__restrict__, wchar_t **__restrict__, int);
     344uintmax_t wcstoumax(const wchar_t *__restrict__, wchar_t **__restrict__, int);
     345
     346__C_DECLS_END;
     347
    348348#endif
    349349
    350 #endif
    351 
    352350/** @}
    353351 */
  • abi/include/limits.h

    r4d51c60 rbc56f30  
    8484#define MB_LEN_MAX 4
    8585
     86#define __NAME_MAX  256
     87
     88#ifdef _HELENOS_SOURCE
    8689#define UCHAR_MIN   0
    8790#define USHRT_MIN   0
     
    8992#define ULONG_MIN   (0ul)
    9093#define ULLONG_MIN  (0ull)
     94#define SSIZE_MIN   INTPTR_MIN
     95#define UINT8_MIN   0
     96#define UINT16_MIN  0
     97#define UINT32_MIN  0
     98#define UINT64_MIN  0
     99#endif
     100
     101#if defined(_HELENOS_SOURCE) || defined(_POSIX_SOURCE) || \
     102    defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) || \
     103    defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
     104
     105#define SSIZE_MAX  INTPTR_MAX
     106#define NAME_MAX   __NAME_MAX
     107
     108#endif
    91109
    92110/* GCC's <limits.h> doesn't define these for C++11, even though it should. */
Note: See TracChangeset for help on using the changeset viewer.