diff options
Diffstat (limited to 'zap/include')
-rw-r--r-- | zap/include/zap/bs.d/flt.h | 20 | ||||
-rw-r--r-- | zap/include/zap/bs.d/int.h | 173 | ||||
-rw-r--r-- | zap/include/zap/bs.h | 50 | ||||
-rw-r--r-- | zap/include/zap/bs.hh | 201 | ||||
-rw-r--r-- | zap/include/zap/math.h | 76 | ||||
-rw-r--r-- | zap/include/zap/math.hh | 91 | ||||
-rw-r--r-- | zap/include/zap/mem.h | 26 | ||||
-rw-r--r-- | zap/include/zap/mem.hh | 76 | ||||
-rw-r--r-- | zap/include/zap/str.h | 49 | ||||
-rw-r--r-- | zap/include/zap/str.hh | 33 | ||||
-rw-r--r-- | zap/include/zap/sys.d/arch.h | 68 | ||||
-rw-r--r-- | zap/include/zap/sys.d/attr.h | 35 | ||||
-rw-r--r-- | zap/include/zap/sys.d/cmp.h | 66 | ||||
-rw-r--r-- | zap/include/zap/sys.d/lang.h | 60 | ||||
-rw-r--r-- | zap/include/zap/sys.d/os.h | 160 | ||||
-rw-r--r-- | zap/include/zap/sys.h | 108 | ||||
-rw-r--r-- | zap/include/zap/sys.hh | 18 |
17 files changed, 0 insertions, 1310 deletions
diff --git a/zap/include/zap/bs.d/flt.h b/zap/include/zap/bs.d/flt.h deleted file mode 100644 index 4d65236..0000000 --- a/zap/include/zap/bs.d/flt.h +++ /dev/null @@ -1,20 +0,0 @@ -/* - Copyright 2022-2023 Gabriel Jensen. - This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. - If a copy of the MPL was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0>. -*/ - -#if \ - zap_arch_amd64 \ -|| zap_arch_arm \ -|| zap_arch_arm64 \ -|| zap_arch_ia32 -#define zap_fixfltf02 (0x1) -#define zap_fixfltf04 (0x1) - -typedef float zap_f02; -typedef double zap_f04; -#else -#define zap_fixflt02 (0x0) -#define zap_fixflt04 (0x0) -#endif diff --git a/zap/include/zap/bs.d/int.h b/zap/include/zap/bs.d/int.h deleted file mode 100644 index 864a761..0000000 --- a/zap/include/zap/bs.d/int.h +++ /dev/null @@ -1,173 +0,0 @@ -/* - Copyright 2022-2023 Gabriel Jensen. - This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. - If a copy of the MPL was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0>. -*/ - -#define zap_minvaluc ((unsigned char) +0x0u) -#define zap_minvalus ((unsigned short) +0x0u) -#define zap_minvalui ((unsigned int) +0x0u) -#define zap_minvalul ((unsigned long) +0x0u) -#define zap_minvalull ((unsigned long long)+0x0) -#define zap_minvalsc ((signed char) -0x80) -#define zap_minvals ((short) -0x8000) -#define zap_minvali ((int) -0x80000000) -#define zap_minvalll ((long long) -0x8000000000000000) - -#define zap_maxvaluc ((unsigned char) +0xFFu) -#define zap_maxvalus ((unsigned short) +0xFFFFu) -#define zap_maxvalui ((unsigned int) +0xFFFFFFFFu) -#define zap_maxvalull ((unsigned long long)+0xFFFFFFFFFFFFFFFFu) -#define zap_maxvalsc ((signed char) +0x7F) -#define zap_maxvals ((short) +0x7FFF) -#define zap_maxvali ((int) +0x7FFFFFFF) -#define zap_maxvalll ((long long) +0x7FFFFFFFFFFFFFFF) - -#define zap_typid8 zap_typidc -#define zap_minval8 zap_minvaluc -#define zap_minval8s zap_minvalsc -#define zap_maxval8 zap_maxvaluc -#define zap_maxval8s zap_maxvalsc -typedef unsigned char zap_i8; -typedef signed char zap_i8s; - -#define zap_typid01 zap_typids -#define zap_minval01 zap_minvalus -#define zap_minval01s zap_minvals -#define zap_maxval01 zap_maxvalus -#define zap_maxval01s zap_maxvals -typedef unsigned short zap_i01; -typedef short zap_i01s; - -#define zap_typid02 zap_typid -#define zap_minval02 zap_minvalui -#define zap_minval02s zap_minvali -#define zap_maxval02 zap_maxvalui -#define zap_maxval02s zap_maxvali -typedef unsigned int zap_i02; -typedef int zap_i02s; - -#if \ - zap_os_dos \ -|| zap_os_os2 \ -|| zap_os_win - -#define zap_minvall ((long long) -0x80000000) -#define zap_maxvalul ((unsigned long long)+0xFFFFFFFFu) -#define zap_maxvall ((long long) +0x7FFFFFFF) - -#define zap_typid04 zap_typidll -#define zap_minval04 zap_minvalull -#define zap_minval04s zap_minvalll -#define zap_maxval04 zap_maxvalull -#define zap_maxval04s zap_maxvalll -typedef unsigned long long zap_i04; -typedef long long zap_i04s; - -#else -#if \ - zap_arch_amd64 \ -|| zap_arch_arm64 -#define zap_minvall ((long long) -0x8000000000000000) -#define zap_maxvalul ((unsigned long long)+0xFFFFFFFFFFFFFFFFu) -#define zap_maxvall ((long long) +0x7FFFFFFFFFFFFFFF) - -#define zap_typid04 zap_typidl -#define zap_minval04 zap_minvalul -#define zap_minval04s zap_minvall -#define zap_maxval04 zap_maxvalul -#define zap_maxval04s zap_maxvall -typedef unsigned long zap_i04; -typedef long zap_i04s; - -#elif \ - zap_arch_arm \ -|| zap_arch_ia32 -#define zap_minvall ((long long) -0x80000000) -#define zap_maxvalul ((unsigned long long)+0xFFFFFFFFu) -#define zap_maxvall ((long long) +0x7FFFFFFF) - -#define zap_typid04 zap_typidl -#define zap_minval04 zap_minvalul -#define zap_minval04s zap_minvall -#define zap_maxval04 zap_maxvalul -#define zap_maxval04s zap_maxvall -typedef unsigned long zap_i04; -typedef long zap_i04s; - -#endif -#endif - -#if \ - zap_arch_arm \ -|| zap_arch_arm64 -#define zap_uchr (0x1) -#else -#define zap_uchr (0x0) -#endif - -#if zap_uchr -#define zap_minvalc zap_minvaluc -#define zap_maxvalc zap_maxvaluc -#else -#define zap_minvalc zap_minvalsc -#define zap_maxvalc zap_maxvalsc -#endif - -#if \ - zap_arch_amd64 \ -|| zap_arch_arm64 - -#define zap_typidp zap_typid04 -#define zap_minvalp zap_minval04 -#define zap_maxvalp zap_maxval04 -typedef zap_i04 zap_ptr; - -#define zap_typidsz zap_typid04 -#define zap_minvalsz zap_minval04 -#define zap_maxvalsz zap_maxval04 -typedef zap_i04 zap_sz; - -#elif \ - zap_arch_arm -|| zap_arch_ia32 - -#define zap_typidp zap_typid02 -#define zap_minvalp zap_minval02 -#define zap_maxvalp zap_maxval02 -typedef zap_i02 zap_ptr; - -#define zap_typidsz zap_typid02 -#define zap_minvalsz zap_minval02 -#define zap_maxvalsz zap_maxval02 -typedef zap_i02 zap_sz; - -#endif - -#if \ - zap_os_dos \ -|| zap_os_os2 \ -|| zap_os_win - -#define zap_typidwc zap_typid01 -#define zap_minvalwc zap_minval01 -#define zap_maxvalwc zap_maxval01 -typedef zap_i01 zap_wchr; - -#else -#if zap_uchr - -#define zap_typidwc zap_typid02 -#define zap_minvalwc zap_minval02 -#define zap_maxvalwc zap_maxval02 -typedef zap_i02 zap_wchr; - -#else - -#define zap_typidwc zap_typid02 -#define zap_minvalwc zap_minval02s -#define zap_maxvalwc zap_maxval02s -typedef zap_i02s zap_wchr; - -#endif -#endif diff --git a/zap/include/zap/bs.h b/zap/include/zap/bs.h deleted file mode 100644 index 482f20d..0000000 --- a/zap/include/zap/bs.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - Copyright 2022-2023 Gabriel Jensen. - This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. - If a copy of the MPL was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0>. -*/ - -#ifndef zap_priv_hdr_bs -#define zap_priv_hdr_bs - -// C99: long long - -#include <zap/sys.h> - -zap_priv_cdecl - -#define zap_ver ((unsigned long)+0x1Bu) // Programs expecting this version will still compile with the current extension version. -#define zap_extver ((unsigned long)+0x0u) // The extension versions adds functionality without breaking the existing ones. - // The patch version is not public as it only changes implementation details. - -#define zap_typid_c ((unsigned char)+0x0u) -#define zap_typid_s ((unsigned char)+0x1u) -#define zap_typid_i ((unsigned char)+0x2u) -#define zap_typid_l ((unsigned char)+0x3u) -#define zap_typid_ll ((unsigned char)+0x4u) -#define zap_typid_f ((unsigned char)+0x5u) -#define zap_typid_d ((unsigned char)+0x6u) -#define zap_typid_ld ((unsigned char)+0x7u) - -#include <zap/bs.d/int.h> -#include <zap/bs.d/flt.h> - -#define zap_nopos zap_maxvalsz - -#define zap_nullptr ((void *)0x0) - -#define zap_bytelen ((zap_sz)+0x8u) - -zap_noret void zap_trap(void); - -#if zap_cmp_gcc -#define zap_unreach() ((void)__builtin_unreachable()) -#elif zap_cmp_msvc -#define zap_unreach() ((void)__assume(0x0)) -#else -#define zap_unreach() (zap_trap()) -#endif - -zap_priv_cdeclend - -#endif diff --git a/zap/include/zap/bs.hh b/zap/include/zap/bs.hh deleted file mode 100644 index 00f66b1..0000000 --- a/zap/include/zap/bs.hh +++ /dev/null @@ -1,201 +0,0 @@ -/* - Copyright 2022-2023 Gabriel Jensen. - This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. - If a copy of the MPL was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0>. -*/ - -#ifndef zap_priv_cxxhdr_bs -#define zap_priv_cxxhdr_bs - -// C++11: constexpr -// C++14: template variables - -#ifndef __cplusplus -#error C++ header included from C! -#endif - -#include <zap/sys.hh> -#include <zap/bs.h> - -namespace zap { - namespace impl { - template<typename typ> struct minval {constexpr static typ val = {};}; - - template<> struct minval<bool> {constexpr static auto val = false;}; - template<> struct minval<signed char> {constexpr static auto val = zap_minvalsc;}; - template<> struct minval<short> {constexpr static auto val = zap_minvals;}; - template<> struct minval<int> {constexpr static auto val = zap_minvali;}; - template<> struct minval<long> {constexpr static auto val = zap_minvall;}; - template<> struct minval<long long> {constexpr static auto val = zap_minvalll;}; - template<> struct minval<unsigned char> {constexpr static auto val = zap_minvaluc;}; - template<> struct minval<unsigned short> {constexpr static auto val = zap_minvalus;}; - template<> struct minval<unsigned int> {constexpr static auto val = zap_minvalui;}; - template<> struct minval<unsigned long> {constexpr static auto val = zap_minvalul;}; - template<> struct minval<unsigned long long> {constexpr static auto val = zap_minvalull;}; - template<> struct minval<char> {constexpr static auto val = zap_minvalc;}; - template<> struct minval<wchar_t> {constexpr static auto val = zap_minvalwc;}; -#if __cpp_char8_t >= 201811 - template<> struct minval<char8_t> {constexpr static auto val = zap_minvaluc;}; -#endif - template<> struct minval<char16_t> {constexpr static auto val = zap_minval01;}; - template<> struct minval<char32_t> {constexpr static auto val = zap_minval02;}; - - template<typename typ> struct maxval {constexpr static typ val = {};}; - - template<> struct maxval<bool> {constexpr static auto val = true;}; - template<> struct maxval<signed char> {constexpr static auto val = zap_maxvalsc;}; - template<> struct maxval<int> {constexpr static auto val = zap_maxvali;}; - template<> struct maxval<short> {constexpr static auto val = zap_maxvals;}; - template<> struct maxval<long> {constexpr static auto val = zap_maxvall;}; - template<> struct maxval<long long> {constexpr static auto val = zap_maxvalll;}; - template<> struct maxval<unsigned char> {constexpr static auto val = zap_maxvaluc;}; - template<> struct maxval<unsigned short> {constexpr static auto val = zap_maxvalus;}; - template<> struct maxval<unsigned int> {constexpr static auto val = zap_maxvalui;}; - template<> struct maxval<unsigned long> {constexpr static auto val = zap_maxvalul;}; - template<> struct maxval<unsigned long long> {constexpr static auto val = zap_maxvalull;}; - template<> struct maxval<char> {constexpr static auto val = zap_maxvalc;}; - template<> struct maxval<wchar_t> {constexpr static auto val = zap_maxvalwc;}; -#if __cpp_char8_t >= 201811 - template<> struct maxval<char8_t> {constexpr static auto val = zap_maxvaluc;}; -#endif - template<> struct maxval<char16_t> {constexpr static auto val = zap_maxval01;}; - template<> struct maxval<char32_t> {constexpr static auto val = zap_maxval02;}; - } - - template<typename typ> constexpr auto minval = ::zap::impl::minval<typ>::val; - - template<typename typ> constexpr auto maxval = ::zap::impl::maxval<typ>::val; -} - -namespace zap { - namespace impl { - template<typename ityp> struct sign {using typ = ityp;}; - - template<> struct sign<unsigned char> {using typ = signed char;}; - template<> struct sign<unsigned int> {using typ = int;}; - template<> struct sign<unsigned long> {using typ = long;}; - template<> struct sign<unsigned long long> {using typ = long long;}; - template<> struct sign<unsigned short> {using typ = short;}; - - template<typename ityp> struct usign {using typ = ityp;}; - - template<> struct usign<signed char> {using typ = unsigned char;}; - template<> struct usign<int> {using typ = unsigned int;}; - template<> struct usign<long> {using typ = unsigned long;}; - template<> struct usign<long long> {using typ = unsigned long long;}; - template<> struct usign<short> {using typ = unsigned short;}; - } - - template<typename typ> using sign = typename ::zap::impl::sign<typ>::typ; - - template<typename typ> using usign = typename ::zap::impl::usign<typ>::typ; -} - -namespace zap { - namespace impl { - template<typename ityp> struct remqual {using typ = ityp;}; - - template<typename ityp> struct remqual<ityp const> {using typ = ityp;}; - template<typename ityp> struct remqual<ityp volatile> {using typ = ityp;}; - template<typename ityp> struct remqual<ityp const volatile> {using typ = ityp;}; - } - - template<typename typ> using remqual = typename ::zap::impl::remqual<typ>::typ; -} - -namespace zap { - namespace impl { - template<typename ltyp,typename rtyp> struct typeq {constexpr static bool eq = false;}; - - template<typename typ> struct typeq<typ,typ> {constexpr static auto eq = true;}; - } - - template<typename ltyp,typename rtyp> constexpr auto typeq = ::zap::impl::typeq<ltyp,rtyp>::eq; -} - -namespace zap { - template<typename typ> constexpr auto ischrtyp = - ::zap::typeq<typ,char> - || ::zap::typeq<typ,char16_t> - || ::zap::typeq<typ,char32_t> -#if __cpp_char8_t - || ::zap::typeq<typ,char8_t> -#endif - || ::zap::typeq<typ,unsigned char> - || ::zap::typeq<typ,wchar_t>; - - template<typename typ> constexpr auto isflttyp = - ::zap::typeq<typ,double> - || ::zap::typeq<typ,float> - || ::zap::typeq<typ,long double> -#if __STDCPP_BFLOAT16_T__ - || ::zap::typeq<typ,decltype (0x0.0p0bf16)> -#endif -#if __STDCPP_FLOAT128_T__ - || ::zap::typeq<typ,decltype (0x0.0p0f16)> -#endif -#if __STDCPP_FLOAT16_T__ - || ::zap::typeq<typ,decltype (0x0.0p0f32)> -#endif -#if __STDCPP_FLOAT32_T__ - || ::zap::typeq<typ,decltype (0x0.0p0f64)> -#endif -#if __STDCPP_FLOAT64_T__ - || ::zap::typeq<typ,decltype (0x0.0p0f128)> -#endif - ; - - template<typename typ> constexpr auto isinttyp = - ::zap::typeq<typ,int> - || ::zap::typeq<typ,long> - || ::zap::typeq<typ,long long> - || ::zap::typeq<typ,short> - || ::zap::typeq<typ,signed char> - || ::zap::typeq<typ,unsigned char> - || ::zap::typeq<typ,unsigned int> - || ::zap::typeq<typ,unsigned long> - || ::zap::typeq<typ,unsigned long long> - || ::zap::typeq<typ,unsigned short>; - - template<typename typ> constexpr auto isarithtyp = - ::zap::isflttyp<typ> - || ::zap::isinttyp<typ>; -} - -namespace zap { - using i8 = ::zap_i8; - using i8s = ::zap_i8s; - - using i01 = ::zap_i01; - using i01s = ::zap_i01s; - - using i02 = ::zap_i02; - using i02s = ::zap_i02s; - - using i04 = ::zap_i04; - using i04s = ::zap_i04s; - - using ptr = ::zap_ptr; - using sz = ::zap_sz; - -#if zap_fixflt02 - using f02 = ::zap_f02; -#endif -#if zap_fixflt04 - using f04 = ::zap_f04; -#endif -} - -namespace zap { - constexpr auto ver = zap_ver; - constexpr auto bytelen = zap_bytelen; - constexpr auto nopos = zap_nopos; -} - -namespace zap { - [[noreturn]] zap_attr_iln inline void trap() noexcept {::zap_trap();} - - [[noreturn]] zap_attr_iln inline void unreach() noexcept {zap_unreach();} -} - -#endif diff --git a/zap/include/zap/math.h b/zap/include/zap/math.h deleted file mode 100644 index f90116c..0000000 --- a/zap/include/zap/math.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - Copyright 2022-2023 Gabriel Jensen. - This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. - If a copy of the MPL was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0>. -*/ - -#ifndef zap_priv_hdr_math -#define zap_priv_hdr_math - -#include <zap/bs.h> - -zap_priv_cdecl - -typedef struct { - signed char lval; - signed char rval; -} zap_pairsc; - -typedef struct { - short lval; - short rval; -} zap_pairs; - -typedef struct { - int lval; - int rval; -} zap_pairi; - -typedef struct { - long lval; - long rval; -} zap_pairl; - -typedef struct { - long long lval; - long long rval; -} zap_pairll; - -zap_attr_nthrw zap_attr_unseq zap_pairsc zap_divmodsc(signed char num,signed char den); -zap_attr_nthrw zap_attr_unseq zap_pairs zap_divmods( short num,short den); -zap_attr_nthrw zap_attr_unseq zap_pairi zap_divmodi( int num,int den); -zap_attr_nthrw zap_attr_unseq zap_pairl zap_divmodl( long num,long den); -zap_attr_nthrw zap_attr_unseq zap_pairll zap_divmodll(long long num,long long den); -zap_attr_nthrw zap_attr_unseq zap_pairsc zap_divmodsc(signed char num,signed char den); -zap_attr_nthrw zap_attr_unseq zap_pairs zap_divmods( short num,short den); -zap_attr_nthrw zap_attr_unseq zap_pairi zap_divmodi( int num,int den); -zap_attr_nthrw zap_attr_unseq zap_pairl zap_divmodl( long num,long den); -zap_attr_nthrw zap_attr_unseq zap_pairll zap_divmodll(long long num,long long den); - -zap_attr_nthrw zap_attr_unseq float zap_absf( float val); -zap_attr_nthrw zap_attr_unseq double zap_absd( double val); -zap_attr_nthrw zap_attr_unseq long double zap_absld(long double val); - -zap_attr_nthrw zap_attr_unseq float zap_cosf( float ang); -zap_attr_nthrw zap_attr_unseq double zap_cosd( double ang); -zap_attr_nthrw zap_attr_unseq long double zap_cosld(long double ang); - -zap_attr_nthrw zap_attr_unseq float zap_sinf( float ang); -zap_attr_nthrw zap_attr_unseq double zap_sind( double ang); -zap_attr_nthrw zap_attr_unseq long double zap_sinld(long double ang); - -zap_attr_nthrw zap_attr_unseq float zap_sqrtf( float val); -zap_attr_nthrw zap_attr_unseq double zap_sqrtd( double val); -zap_attr_nthrw zap_attr_unseq long double zap_sqrtld(long double val); - -zap_attr_nthrw zap_attr_unseq float zap_rootf( float val,float n); -zap_attr_nthrw zap_attr_unseq double zap_rootd( double val,double n); -zap_attr_nthrw zap_attr_unseq long double zap_rootld(long double val,long double n); - -zap_attr_nthrw zap_attr_unseq float zap_tanf( float ang); -zap_attr_nthrw zap_attr_unseq double zap_tand( double ang); -zap_attr_nthrw zap_attr_unseq long double zap_tanld(long double ang); - -zap_priv_cdeclend - -#endif diff --git a/zap/include/zap/math.hh b/zap/include/zap/math.hh deleted file mode 100644 index ae159c8..0000000 --- a/zap/include/zap/math.hh +++ /dev/null @@ -1,91 +0,0 @@ -/* - Copyright 2022-2023 Gabriel Jensen. - This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. - If a copy of the MPL was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0>. -*/ - -#ifndef zap_priv_cxxhdr_math -#define zap_priv_cxxhdr_math - -#include <zap/bs.hh> -#include <zap/math.h> - -namespace zap { - namespace impl { - template<typename typ> struct inf {constexpr static auto val = ::zap::maxval<typ>;}; - -#if zap_priv_hasbuiltin(__builtin_huge_valf) - template<> struct inf<float> {constexpr static auto val = __builtin_huge_valf();}; -#endif - -#if zap_priv_hasbuiltin(__builtin_huge_val) - template<> struct inf<double> {constexpr static auto val = __builtin_huge_val();}; -#endif - -#if zap_priv_hasbuiltin(__builtin_huge_vall) - template<> struct inf<long double> {constexpr static auto val = __builtin_huge_vall();}; -#endif - } - - template<typename typ> constexpr auto inf = ::zap::impl::inf<typ>::val; -} - -namespace zap { - namespace impl { - template<typename ityp> struct cpairtyp {using typ = ityp;}; - - template<> struct cpairtyp<signed char> {using typ = ::zap_pairsc;}; - template<> struct cpairtyp<short> {using typ = ::zap_pairs;}; - template<> struct cpairtyp<int> {using typ = ::zap_pairi;}; - template<> struct cpairtyp<long> {using typ = ::zap_pairl;}; - template<> struct cpairtyp<long long> {using typ = ::zap_pairll;}; - } - - template<typename typ> class pair { - public: - using cpairtyp = typename ::zap::impl::cpairtyp<typ>::typ; - - typ lval; - typ rval; - - constexpr auto cpair() noexcept -> cpairtyp { - cpairtyp pair; - pair.lval = this->lval; - pair.rval = this->rval; - return pair; - } - }; -} - -namespace zap { - template<typename typ> constexpr auto abs(typ const val) noexcept -> ::zap::usign<typ> { - using newtyp = ::zap::usign<typ>; // If a floating-point type was used, the new type would be identical. - if (val > typ {0x0}) return static_cast<newtyp>(val); - return typ {0x0} - static_cast<newtyp>(val); - } - - template<typename typ> constexpr auto divmod(typ const num,typ const den) noexcept -> ::zap::pair<typ> { - ::zap::pair<typ> pair; - zap_priv_ulikly (den == 0x0) { - pair.lval = ::zap::inf<typ>; - pair.rval = pair.lval; - return pair; - } - for (pair = ::zap::pair<typ> {typ {0x0},num};pair.rval >= den;++pair.lval,pair.rval -= den); - return pair; - } - - template<typename typ> constexpr auto exp(typ const val,typ const n) noexcept -> typ { - zap_priv_ulikly (n == typ {0x0}) { - return typ {0x1}; - } - zap_priv_ulikly (val == typ {0x0}) { - return typ {0x0}; - } - typ exp = val; - for (typ i = typ {0x1};i < n;++i) exp *= val; - return exp; - } -} - -#endif diff --git a/zap/include/zap/mem.h b/zap/include/zap/mem.h deleted file mode 100644 index 0364b9d..0000000 --- a/zap/include/zap/mem.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - Copyright 2022-2023 Gabriel Jensen. - This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. - If a copy of the MPL was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0>. -*/ - -#ifndef zap_priv_hdr_mem -#define zap_priv_hdr_mem - -#include <zap/bs.h> - -zap_priv_cdecl - -typedef struct { - void * dest; - void * src; -} zap_cpret; - -zap_attr_nthrw zap_cpret zap_cp( void * zap_restr dest,void const * zap_restr src, zap_sz num); -zap_attr_nthrw zap_i8 zap_eq( void const * lbuf,void const * rbuf,zap_sz num); -zap_attr_nthrw void zap_fill(void * dest,unsigned char val, zap_sz num); -zap_attr_nthrw void * zap_srch(void const * buf, unsigned char val, zap_sz num); - -zap_priv_cdeclend - -#endif diff --git a/zap/include/zap/mem.hh b/zap/include/zap/mem.hh deleted file mode 100644 index b237cbc..0000000 --- a/zap/include/zap/mem.hh +++ /dev/null @@ -1,76 +0,0 @@ -/* - Copyright 2022-2023 Gabriel Jensen. - This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. - If a copy of the MPL was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0>. -*/ - -#ifndef zap_priv_cxxhdr_mem -#define zap_priv_cxxhdr_mem - -#include <zap/bs.hh> -#include <zap/mem.h> - -namespace zap { - template<typename desttyp,typename srctyp> struct cpret { - desttyp * dest; - srctyp * src; - }; -} - -namespace zap { - template<typename desttyp,typename srctyp> zap_attr_iln inline ::zap::cpret<desttyp,srctyp> bytecp(desttyp * zap_restr dest,srctyp const * zap_restr src,::zap::sz const num) noexcept { - ::zap_cpret const cpret = ::zap_cp(dest,src,num); - - return ::zap::cpret<desttyp,srctyp> {.dest = static_cast<desttyp *>(cpret.dest),.src = static_cast<srctyp *>(cpret.src),}; - } - - template<typename ltyp,typename rtyp> zap_attr_iln inline bool byteeq(ltyp const * lbuf,rtyp const * rbuf,::zap::sz const num) noexcept { - return ::zap_eq(lbuf,rbuf,num); - } - - template<typename typ> zap_attr_iln inline void bytefill(typ * dest,unsigned char const val,::zap::sz const num) noexcept { - ::zap_fill(dest,val,num); - } - - template<typename typ> zap_attr_iln inline typ * bytesrch(typ * buf,unsigned char const val,::zap::sz const num) noexcept { - return const_cast<typ *>(static_cast<::zap::remqual<typ> *>(::zap_srch(buf,val,num))); - } -} - -namespace zap { - template<typename typ> constexpr ::zap::cpret<typ,typ> cp(typ * zap_restr dest,typ const * zap_restr src,::zap::sz const num) noexcept { - zap_priv_ifnconsteval {return ::zap::bytecp(dest,src,num);} - - typ * const zap_restr stop = dest + num; - while (dest != stop) *dest++ = *src++; - - return ::zap::cpret<typ,typ> {.dest = dest,.src = const_cast<typ *>(src),}; - } - - template<typename typ> constexpr bool eq(typ const * lbuf,typ const * rbuf,::zap::sz const num) noexcept { - typ const * const stop = lbuf + num; - - while (lbuf != stop) if (*lbuf++ != *rbuf++) return false; - - return true; - } - - template<typename typ> constexpr void fill(typ * dest,typ const val,::zap::sz const num) noexcept { - typ * const stop = dest + num; - - while (dest != stop) *dest++ = val; - } - - template<typename typ> constexpr typ * srch(typ * buf,unsigned char const val,::zap::sz const num) noexcept { - typ const * const stop = buf + num; - - while (buf != stop) { - typ const * addr = buf++; - if (*addr == val) return addr; - } - - return nullptr; - } -} - -#endif diff --git a/zap/include/zap/str.h b/zap/include/zap/str.h deleted file mode 100644 index a4c75fb..0000000 --- a/zap/include/zap/str.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - Copyright 2022-2023 Gabriel Jensen. - This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. - If a copy of the MPL was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0>. -*/ - -#ifndef zap_priv_hdr_str -#define zap_priv_hdr_str - -#include <zap/bs.h> - -zap_priv_cdecl - -zap_i8 zap_streq( char const * lstr,char const * rstr); -zap_sz zap_strlen(char const * str); - -zap_sz zap_utf8declen(zap_i8 const * buf); -zap_sz zap_utf8enclen(zap_i02 const * buf); - -void zap_utf8dec( zap_i02 * zap_restr dest,zap_i8 const * zap_restr src); -void zap_utf8enc( zap_i8 * zap_restr dest,zap_i02 const * zap_restr src); -void zap_win1252dec(zap_i02 * zap_restr dest,zap_i8 const * zap_restr src); -void zap_win1252enc(zap_i8 * zap_restr dest,zap_i02 const * zap_restr src); - -void zap_fmti( zap_i02 * buf,int val,zap_i8 bs,zap_i8 rtl); -void zap_fmtl( zap_i02 * buf,long val,zap_i8 bs,zap_i8 rtl); -void zap_fmtll( zap_i02 * buf,long long val,zap_i8 bs,zap_i8 rtl); -void zap_fmts( zap_i02 * buf,short val,zap_i8 bs,zap_i8 rtl); -void zap_fmtsc( zap_i02 * buf,signed char val,zap_i8 bs,zap_i8 rtl); -void zap_fmtuc( zap_i02 * buf,unsigned char val,zap_i8 bs,zap_i8 rtl); -void zap_fmtui( zap_i02 * buf,unsigned int val,zap_i8 bs,zap_i8 rtl); -void zap_fmtul( zap_i02 * buf,unsigned long val,zap_i8 bs,zap_i8 rtl); -void zap_fmtull(zap_i02 * buf,unsigned long long val,zap_i8 bs,zap_i8 rtl); -void zap_fmtus( zap_i02 * buf,unsigned short val,zap_i8 bs,zap_i8 rtl); - -zap_i8 zap_fmtleni( int val,zap_i8 bs); -zap_i8 zap_fmtlenl( long val,zap_i8 bs); -zap_i8 zap_fmtlenll( long long val,zap_i8 bs); -zap_i8 zap_fmtlens( short val,zap_i8 bs); -zap_i8 zap_fmtlensc( signed char val,zap_i8 bs); -zap_i8 zap_fmtlenuc( unsigned char val,zap_i8 bs); -zap_i8 zap_fmtlenui( unsigned int val,zap_i8 bs); -zap_i8 zap_fmtlenul( unsigned long val,zap_i8 bs); -zap_i8 zap_fmtlenull(unsigned long long val,zap_i8 bs); -zap_i8 zap_fmtlenus( unsigned short val,zap_i8 bs); - -zap_priv_cdeclend - -#endif diff --git a/zap/include/zap/str.hh b/zap/include/zap/str.hh deleted file mode 100644 index 288ca07..0000000 --- a/zap/include/zap/str.hh +++ /dev/null @@ -1,33 +0,0 @@ -/* - Copyright 2022-2023 Gabriel Jensen. - This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. - If a copy of the MPL was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0>. -*/ - -#ifndef zap_priv_cxxhdr_str -#define zap_priv_cxxhdr_str - -#include <zap/bs.hh> -#include <zap/str.h> - -namespace zap { - template<typename typ> constexpr auto streq(typ const * lstr,typ const * rstr) noexcept -> bool { - static_assert(::zap::ischrtyp<typ>,"Input type must be a character type."); - for (;;++lstr,++rstr) { - typ const lchr = *lstr; - typ const rchr = *rstr; - if (lchr != rchr) return false; - if (lchr == typ {0x0}) break; - } - return true; - } - - template<typename typ> constexpr auto strlen(typ const * str) noexcept -> ::zap::sz { - static_assert(::zap::ischrtyp<typ>,"Input type must be a character type."); - typ const * const start = str; - while (*str++ != typ {0x0}); - return static_cast<::zap::sz>(str - start) - 0x1u; - } -} - -#endif diff --git a/zap/include/zap/sys.d/arch.h b/zap/include/zap/sys.d/arch.h deleted file mode 100644 index 2abd2b2..0000000 --- a/zap/include/zap/sys.d/arch.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - Copyright 2022-2023 Gabriel Jensen. - This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. - If a copy of the MPL was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0>. -*/ - -/* - arch- macro-------- vendors----------------------------------- - clang cray gcc icc icx msvc pcc tiny watcom xlc - - amd64 __amd64 clang gcc pcc - amd64 __amd64__ clang gcc pcc - amd64 __x86_64 clang gcc icc icx pcc - amd64 __x86_64__ clang gcc icc icx pcc tiny - amd64 _M_AMD64 icc msvc - amd64 _M_X64 icc icx msvc - - arm __arm clang - arm __arm__ clang gcc - arm _M_ARM msvc - - arm64 __aarch64__ clang gcc - arm64 _M_ARM64 msvc - - ia32 __386__ watcom - ia32 __I86__ watcom - ia32 __X86__ watcom - ia32 __i386 clang gcc icc icx - ia32 __i386__ clang gcc icc icx - ia32 _M_I386 watcom - ia32 _M_I86 watcom - ia32 _M_IX86 icc icx msvc watcom -*/ - -#if \ - defined(__amd64) \ -|| defined(__amd64__) \ -|| defined(__x86_64) \ -|| defined(__x86_64__) \ -|| defined(_M_AMD64) \ -|| defined(_M_X64) -#define zap_arch_amd64 (0x1) -#endif - -#if \ - defined(__arm) \ -|| defined(__arm__) \ -|| defined(_M_ARM) -#define zap_arch_arm (0x1) -#endif - -#if \ - defined(__aarch64__) \ -|| defined(_M_ARM64) -#define zap_arch_arm64 -#endif - -#if \ - defined(__386__) \ -|| defined(__I86__) \ -|| defined(__X86__) \ -|| defined(__i386) \ -|| defined(__i386__) \ -|| defined(_M_I386) \ -|| defined(_M_I86) \ -|| defined(_M_IX86) -#define zap_arch_ia32 -#endif diff --git a/zap/include/zap/sys.d/attr.h b/zap/include/zap/sys.d/attr.h deleted file mode 100644 index 4c4a268..0000000 --- a/zap/include/zap/sys.d/attr.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - Copyright 2022-2023 Gabriel Jensen. - This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. - If a copy of the MPL was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0>. -*/ - -#if zap_priv_hasattr(__always_inline__) -#define zap_attr_iln __attribute__ ((__always_inline__)) -#else -#define zap_attr_iln -#endif - -#if zap_priv_hasattr(__nothrow__) -#define zap_attr_nthrw __attribute__ ((__nothrow__)) -#elif zap_cmp_msvc -#define zap_attr_nthrw __declspec (nothrow) -#else -#define zap_attr_nthrw -#endif - -#if zap_priv_hasattr(__const__) -#define zap_attr_unseq __attribute__ ((__const__)) -#elif zap_lang_c23 -#define zap_attr_unseq [[unsequenced]] -#else -#define zap_attr_unseq -#endif - -#if zap_priv_hasattr(__unused__) -#define zap_attr_unuse __attribute__ ((__unused__)) -#elif zap_lang_c23 || zap_lang_cxx11 -#define zap_attr_unuse [[maybe_unused]] -#else -#define zap_attr_unuse -#endif diff --git a/zap/include/zap/sys.d/cmp.h b/zap/include/zap/sys.d/cmp.h deleted file mode 100644 index efc6126..0000000 --- a/zap/include/zap/sys.d/cmp.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - Copyright 2022-2023 Gabriel Jensen. - This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. - If a copy of the MPL was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0>. -*/ - -#if \ - defined(__clang__) \ -|| defined(__llvm__) -#define zap_cmp_clang (0x1) -#endif - -#if \ - defined(_CRAYC) -#define zap_cmp_cray (0x1) -#endif - -#if \ - defined(__GNUC__) -#define zap_cmp_gcc (0x1) -#endif - -#if \ - defined(__EDG__) -#define zap_cmp_edg (0x1) -#endif - -#if \ - defined(__ICC) \ -|| defined(__ICL) \ -|| defined(__INTEL_COMPILER) -#define zap_cmp_icc (0x1) -#endif - -#if \ - defined(__INTEL_LLVM_COMPILER) -#define zap_icx (0x1) -#endif - -#if \ - defined(_MSC_VER) -#define zap_cmp_msvc (0x1) -#endif - -#if \ - defined(__open_xl__) -#define zap_cmp_xlc (0x1) -#endif - -#if \ - defined(__VAX11C) \ -|| defined(__VAXC) \ -|| defined(__vax11c) \ -|| defined(__vaxc) -#define zap_cmp_vsi (0x1) -#endif - -#if \ - defined(__WATCOMC__) -#define zap_cmp_watcom (0x1) -#endif - -#if \ - defined(__TINYC__) -#define zap_cmp_tiny (0x1) -#endif diff --git a/zap/include/zap/sys.d/lang.h b/zap/include/zap/sys.d/lang.h deleted file mode 100644 index c7157e5..0000000 --- a/zap/include/zap/sys.d/lang.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - Copyright 2022-2023 Gabriel Jensen. - This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. - If a copy of the MPL was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0>. -*/ - -#ifdef __cplusplus - -#define zap_lang_cxx89 (0x1) - -#if __cplusplus >= 199711 -#define zap_lang_cxx99 (0x1) - -#if __cplusplus >= 201103 -#define zap_lang_cxx11 (0x1) - -#if __cplusplus >= 201402 -#define zap_lang_cxx14 (0x1) - -#if __cplusplus >= 201703 -#define zap_lang_cxx17 (0x1) - -#if __cplusplus >= 202002 -#define zap_lang_cxx20 (0x1) - -#if __cplusplus > 202002 -#define zap_lang_cxx23 (0x1) -#endif -#endif -#endif -#endif -#endif -#endif - -#else - -#define zap_lang_c90 (0x1) - -#if __STDC_VERSION__ >= 199409 -#define zap_lang_c95 (0x1) - -#if zap_lang_c99 -#define zap_lang_c99 (0x1) - -#if __STDC_VERSION__ >= 201112 -#define zap_lang_c11 (0x1) - -#if __STDC_VERSION__ >= 201710 -#define zap_lang_c17 (0x1) - -#if zap_lang_c23 -#define zap_lang_c23 (0x1) - -#endif -#endif -#endif -#endif -#endif - -#endif diff --git a/zap/include/zap/sys.d/os.h b/zap/include/zap/sys.d/os.h deleted file mode 100644 index 0a8e85c..0000000 --- a/zap/include/zap/sys.d/os.h +++ /dev/null @@ -1,160 +0,0 @@ -/* - Copyright 2022-2023 Gabriel Jensen. - This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. - If a copy of the MPL was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0>. -*/ - -/* - os------- macro---------- vendors----------------------------------- - clang cray edg gcc icc icx msvc pcc tiny vsi watcom xlc - - aix __HOS_AIX__ clang - aix __TOS_AIX__ clang - aix _AIX clang - - dos __DOS__ watcom - dos _DOS watcom - - drgnfly __DragonFly__ clang - - freebsd __FreeBSD__ clang gcc - - hurd __GNU__ clang - hurd __gnu_hurd__ clang - - linux __LINUX__ watcom - linux __gnu_linux__ clang cray gcc icc icx - linux __linux clang cray gcc icc icx tiny - linux __linux__ clang cray gcc icc icx pcc tiny - - mac __APPLE__ clang icc - mac __MACH__ clang icc - - minix __minix clang - - netbsd __NetBSD__ clang - - openbsd __OpenBSD__ clang - - os2 __OS2__ watcom - - sol __sun clang - sol __sun__ clang - - vms __VMS vsi - vms __vms vsi - - win __WINDOWS__ watcom - win __WINDOWS_386__ watcom - win __w64 icc - win _WIN32 clang edg icc icx msvc - win _WIN64 clang edg icc icx msvc - win _WINDOWS watcom - - - unix __UNIX__ watcom - unix __unix clang gcc icc icx tiny xlc - unix __unix__ clang gcc icc icx tiny xlc -*/ - -#if \ - defined(__HOS_AIX__) \ -|| defined(__TOS_AIX__) \ -|| defined(_AIX) -#define zap_os_aix (0x1) -#endif - -#if \ - defined(__DragonFly__) -#define zap_os_drgnfly (0x1) -#endif - -#if \ - defined(__DOS__) \ -|| defined(_DOS) -#define zap_os_dos (0x1) -#endif - -#if \ - defined(__FreeBSD__) -#define zap_os_freebsd (0x1) -#endif - -#if \ - defined(__GNU__) \ -|| defined(__gnu_hurd__) -#define zap_os_hurd (0x1) -#endif - -#if \ - defined(__LINUX__) \ -|| defined(__gnu_linux__) \ -|| defined(__linux) \ -|| defined(__linux__) -#define zap_os_linux (0x1) -#endif - -#if \ - defined(__APPLE__) \ -|| defined(__MACH__) -#define zap_os_mac (0x1) -#endif - -#if \ - defined(__minix) -#define zap_os_minix (0x1) -#endif - -#if \ - defined(__NetBSD__) -#define zap_os_netbsd (0x1) -#endif - -#if \ - defined(__OpenBSD__) -#define zap_os_openbsd (0x1) -#endif - -#if \ - defined(__OS2__) -#define zap_os_os2 (0x1) -#endif - -#if \ - defined(__sun) \ -|| defined(__sun__) -#define zap_os_sol (0x1) -#endif - -#if \ - defined(__VMS) -|| defined(__vms) -#define zap_os_vms (0x1) -#endif - -#if \ - defined(__WINDOWS__) \ -|| defined(__WINDOWS_386__) \ -|| defined(__w64) \ -|| defined(_WIN32) \ -|| defined(_WIN64) \ -|| defined(_WINDOWS) -#define zap_os_win (0x1) -#endif - -#if \ - zap_os_aix \ -|| zap_os_drgnfly \ -|| zap_os_freebsd \ -|| zap_os_hurd \ -|| zap_os_linux \ -|| zap_os_mac \ -|| zap_os_minix \ -|| zap_os_netbsd \ -|| zap_os_openbsd \ -|| zap_os_sol \ -|| defined(__UNIX__) \ -|| defined(__unix) \ -|| defined(__unix__) -#define zap_os_unix (0x1) -#endif diff --git a/zap/include/zap/sys.h b/zap/include/zap/sys.h deleted file mode 100644 index 96cfb42..0000000 --- a/zap/include/zap/sys.h +++ /dev/null @@ -1,108 +0,0 @@ -/* - Copyright 2022-2023 Gabriel Jensen. - This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. - If a copy of the MPL was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0>. -*/ - -#ifndef zap_priv_hdr_sys -#define zap_priv_hdr_sys - -/* - Sources for pre-defined macros: - - clang: <https://clang.llvm.org/docs/LanguageExtensions.html#builtin-macros> - cray: <https://www.serc.iisc.ac.in/serc_web/wp-content/uploads/2019/05/Cray_C_and_C-_Reference_Manual.pdf> - gcc: <https://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html> - icc: <https://www.intel.com/content/www/us/en/docs/cpp-compiler/developer-guide-reference/2021-8/additional-predefined-macros.html> - icx: <https://www.intel.com/content/www/us/en/docs/dpcpp-cpp-compiler/developer-guide-reference/2023-0/additional-predefined-macros.html> - xlc: <https://www.ibm.com/docs/en/SSRZSMX_17.1.0/pdf/user.pdf> - msvc: <https://docs.microsoft.com/en-us/cpp/preprocessor/predefined-macros> - vsi: <https://vmssoftware.com/docs/VSI_C_USER.pdf> - - ... as well as my own tests. - - We define all of the platform detection macros to the value (1) of the type int. -*/ - -#include <zap/sys.d/cmp.h> - -#include <zap/sys.d/arch.h> -#include <zap/sys.d/os.h> - -#include <zap/sys.d/lang.h> - -#ifdef __cplusplus -#define zap_priv_cdecl extern "C" { -#define zap_priv_cdeclend } -#else -#define zap_priv_cdecl -#define zap_priv_cdeclend -#endif - -#ifdef __has_builtin -#define zap_priv_hasbuiltin(builtin) __has_builtin(builtin) -#else -#define zap_priv_hasbuiltin(builtin) (0x0) -#endif - -#ifdef __has_attribute -#define zap_priv_hasattr(attr) __has_attribute(attr) -#else -#define zap_priv_hasattr(attr) (0x0) -#endif - -#if zap_cmp_gcc -#define zap_restr __restrict__ -#elif zap_cmp_msvc -#define zap_restr __restrict -#elif zap_lang_c99 -#define zap_restr restrict -#else -#define zap_restr -#endif - -#if zap_priv_hasbuiltin(__builtin_expect) -#define zap_priv_likly(expr) if (__builtin_expect((expr),0x1)) -#define zap_priv_ulikly(expr) if (__builtin_expect((expr),0x0)) -#elif __cplusplus > 202002 -#define zap_priv_likly(expr) if ((expr)) [[likely]] -#define zap_priv_ulikly(expr) if ((expr)) [[unlikely]] -#else -#define zap_priv_likly(expr) if ((expr)) -#define zap_priv_ulikly(expr) if ((expr)) -#endif - -#if zap_lang_cxx89 -#if zap_priv_hasbuiltin(__builtin_is_constant_evaluated) -#define zap_priv_ifconsteval if (__builtin_is_constant_evaluated()) -#define zap_priv_ifnconsteval if (!__builtin_is_constant_evaluated()) -#elif zap_lang_cxx23 -#define zap_priv_ifconsteval if consteval -#define zap_priv_ifnconsteval if !consteval -#else -#define zap_priv_ifconsteval if (false) -#define zap_priv_ifnconsteval if (true) -#endif -#endif - -#if zap_priv_hasattr(__noreturn__) -#define zap_noret __attribute__ ((__noreturn__)) -#elif zap_cmp_msvc -#define zap_noret __declspec (noreturn) -#elif zap_lang_c23 || __cplusplus >= 201103 -#define zap_noret [[noreturn]] -#elif zap_lang_c99 -#define zap_noret _Noreturn -#else -#define zap_noret -#endif - -#include <zap/sys.d/attr.h> - -zap_priv_cdecl - -unsigned long zap_syscall(unsigned long id,...); - -zap_priv_cdeclend - -#endif diff --git a/zap/include/zap/sys.hh b/zap/include/zap/sys.hh deleted file mode 100644 index 9b210e6..0000000 --- a/zap/include/zap/sys.hh +++ /dev/null @@ -1,18 +0,0 @@ -/* - Copyright 2022-2023 Gabriel Jensen. - This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. - If a copy of the MPL was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0>. -*/ - -#ifndef zap_priv_cxxhdr_sys -#define zap_priv_cxxhdr_sys - -// C++11: parameter pack - -#include <zap/sys.h> - -namespace zap { - template<typename... typs> zap_attr_iln inline unsigned long syscall(unsigned long const id,typs... args) noexcept {return ::zap_syscall(id,args...);} -} - -#endif |