diff options
| author | christos <christos@NetBSD.org> | 2019-02-24 20:01:26 +0000 |
|---|---|---|
| committer | christos <christos@NetBSD.org> | 2019-02-24 20:01:26 +0000 |
| commit | cc2e102b19afa2f92c54513a1bf2b91af12ee47e (patch) | |
| tree | 147ecaf736fad5662285bb7897e88a5085290b3d /external/mpl/bind/include | |
| parent | 27f06925e3413c1064689ffe7bf00a1abc73fd78 (diff) | |
merge conflicts
Diffstat (limited to 'external/mpl/bind/include')
| -rw-r--r-- | external/mpl/bind/include/dns/code.h | 38 | ||||
| -rw-r--r-- | external/mpl/bind/include/dns/enumtype.h | 4 | ||||
| -rw-r--r-- | external/mpl/bind/include/dns/rdatastruct.h | 60 | ||||
| -rw-r--r-- | external/mpl/bind/include/isc/atomic.h | 9 | ||||
| -rw-r--r-- | external/mpl/bind/include/isc/stdatomic.h | 22 |
5 files changed, 125 insertions, 8 deletions
diff --git a/external/mpl/bind/include/dns/code.h b/external/mpl/bind/include/dns/code.h index 33b1c0b7814..6114a1d580b 100644 --- a/external/mpl/bind/include/dns/code.h +++ b/external/mpl/bind/include/dns/code.h @@ -86,6 +86,7 @@ #include "rdata/generic/cdnskey_60.c" #include "rdata/generic/openpgpkey_61.c" #include "rdata/generic/csync_62.c" +#include "rdata/generic/zonemd_63.c" #include "rdata/generic/spf_99.c" #include "rdata/generic/unspec_103.c" #include "rdata/generic/nid_104.c" @@ -100,6 +101,7 @@ #include "rdata/generic/caa_257.c" #include "rdata/generic/avc_258.c" #include "rdata/generic/doa_259.c" +#include "rdata/generic/amtrelay_260.c" #include "rdata/generic/ta_32768.c" #include "rdata/generic/dlv_32769.c" #include "rdata/generic/keydata_65533.c" @@ -227,6 +229,7 @@ case 60: result = fromtext_cdnskey(rdclass, type, lexer, origin, options, target, callbacks); break; \ case 61: result = fromtext_openpgpkey(rdclass, type, lexer, origin, options, target, callbacks); break; \ case 62: result = fromtext_csync(rdclass, type, lexer, origin, options, target, callbacks); break; \ + case 63: result = fromtext_zonemd(rdclass, type, lexer, origin, options, target, callbacks); break; \ case 99: result = fromtext_spf(rdclass, type, lexer, origin, options, target, callbacks); break; \ case 103: result = fromtext_unspec(rdclass, type, lexer, origin, options, target, callbacks); break; \ case 104: result = fromtext_nid(rdclass, type, lexer, origin, options, target, callbacks); break; \ @@ -245,6 +248,7 @@ case 257: result = fromtext_caa(rdclass, type, lexer, origin, options, target, callbacks); break; \ case 258: result = fromtext_avc(rdclass, type, lexer, origin, options, target, callbacks); break; \ case 259: result = fromtext_doa(rdclass, type, lexer, origin, options, target, callbacks); break; \ + case 260: result = fromtext_amtrelay(rdclass, type, lexer, origin, options, target, callbacks); break; \ case 32768: result = fromtext_ta(rdclass, type, lexer, origin, options, target, callbacks); break; \ case 32769: result = fromtext_dlv(rdclass, type, lexer, origin, options, target, callbacks); break; \ case 65533: result = fromtext_keydata(rdclass, type, lexer, origin, options, target, callbacks); break; \ @@ -372,6 +376,7 @@ case 60: result = totext_cdnskey(rdata, tctx, target); break; \ case 61: result = totext_openpgpkey(rdata, tctx, target); break; \ case 62: result = totext_csync(rdata, tctx, target); break; \ + case 63: result = totext_zonemd(rdata, tctx, target); break; \ case 99: result = totext_spf(rdata, tctx, target); break; \ case 103: result = totext_unspec(rdata, tctx, target); break; \ case 104: result = totext_nid(rdata, tctx, target); break; \ @@ -390,6 +395,7 @@ case 257: result = totext_caa(rdata, tctx, target); break; \ case 258: result = totext_avc(rdata, tctx, target); break; \ case 259: result = totext_doa(rdata, tctx, target); break; \ + case 260: result = totext_amtrelay(rdata, tctx, target); break; \ case 32768: result = totext_ta(rdata, tctx, target); break; \ case 32769: result = totext_dlv(rdata, tctx, target); break; \ case 65533: result = totext_keydata(rdata, tctx, target); break; \ @@ -517,6 +523,7 @@ case 60: result = fromwire_cdnskey(rdclass, type, source, dctx, options, target); break; \ case 61: result = fromwire_openpgpkey(rdclass, type, source, dctx, options, target); break; \ case 62: result = fromwire_csync(rdclass, type, source, dctx, options, target); break; \ + case 63: result = fromwire_zonemd(rdclass, type, source, dctx, options, target); break; \ case 99: result = fromwire_spf(rdclass, type, source, dctx, options, target); break; \ case 103: result = fromwire_unspec(rdclass, type, source, dctx, options, target); break; \ case 104: result = fromwire_nid(rdclass, type, source, dctx, options, target); break; \ @@ -535,6 +542,7 @@ case 257: result = fromwire_caa(rdclass, type, source, dctx, options, target); break; \ case 258: result = fromwire_avc(rdclass, type, source, dctx, options, target); break; \ case 259: result = fromwire_doa(rdclass, type, source, dctx, options, target); break; \ + case 260: result = fromwire_amtrelay(rdclass, type, source, dctx, options, target); break; \ case 32768: result = fromwire_ta(rdclass, type, source, dctx, options, target); break; \ case 32769: result = fromwire_dlv(rdclass, type, source, dctx, options, target); break; \ case 65533: result = fromwire_keydata(rdclass, type, source, dctx, options, target); break; \ @@ -662,6 +670,7 @@ case 60: result = towire_cdnskey(rdata, cctx, target); break; \ case 61: result = towire_openpgpkey(rdata, cctx, target); break; \ case 62: result = towire_csync(rdata, cctx, target); break; \ + case 63: result = towire_zonemd(rdata, cctx, target); break; \ case 99: result = towire_spf(rdata, cctx, target); break; \ case 103: result = towire_unspec(rdata, cctx, target); break; \ case 104: result = towire_nid(rdata, cctx, target); break; \ @@ -680,6 +689,7 @@ case 257: result = towire_caa(rdata, cctx, target); break; \ case 258: result = towire_avc(rdata, cctx, target); break; \ case 259: result = towire_doa(rdata, cctx, target); break; \ + case 260: result = towire_amtrelay(rdata, cctx, target); break; \ case 32768: result = towire_ta(rdata, cctx, target); break; \ case 32769: result = towire_dlv(rdata, cctx, target); break; \ case 65533: result = towire_keydata(rdata, cctx, target); break; \ @@ -807,6 +817,7 @@ case 60: result = compare_cdnskey(rdata1, rdata2); break; \ case 61: result = compare_openpgpkey(rdata1, rdata2); break; \ case 62: result = compare_csync(rdata1, rdata2); break; \ + case 63: result = compare_zonemd(rdata1, rdata2); break; \ case 99: result = compare_spf(rdata1, rdata2); break; \ case 103: result = compare_unspec(rdata1, rdata2); break; \ case 104: result = compare_nid(rdata1, rdata2); break; \ @@ -825,6 +836,7 @@ case 257: result = compare_caa(rdata1, rdata2); break; \ case 258: result = compare_avc(rdata1, rdata2); break; \ case 259: result = compare_doa(rdata1, rdata2); break; \ + case 260: result = compare_amtrelay(rdata1, rdata2); break; \ case 32768: result = compare_ta(rdata1, rdata2); break; \ case 32769: result = compare_dlv(rdata1, rdata2); break; \ case 65533: result = compare_keydata(rdata1, rdata2); break; \ @@ -952,6 +964,7 @@ case 60: result = casecompare_cdnskey(rdata1, rdata2); break; \ case 61: result = casecompare_openpgpkey(rdata1, rdata2); break; \ case 62: result = casecompare_csync(rdata1, rdata2); break; \ + case 63: result = casecompare_zonemd(rdata1, rdata2); break; \ case 99: result = casecompare_spf(rdata1, rdata2); break; \ case 103: result = casecompare_unspec(rdata1, rdata2); break; \ case 104: result = casecompare_nid(rdata1, rdata2); break; \ @@ -970,6 +983,7 @@ case 257: result = casecompare_caa(rdata1, rdata2); break; \ case 258: result = casecompare_avc(rdata1, rdata2); break; \ case 259: result = casecompare_doa(rdata1, rdata2); break; \ + case 260: result = casecompare_amtrelay(rdata1, rdata2); break; \ case 32768: result = casecompare_ta(rdata1, rdata2); break; \ case 32769: result = casecompare_dlv(rdata1, rdata2); break; \ case 65533: result = casecompare_keydata(rdata1, rdata2); break; \ @@ -1097,6 +1111,7 @@ case 60: result = fromstruct_cdnskey(rdclass, type, source, target); break; \ case 61: result = fromstruct_openpgpkey(rdclass, type, source, target); break; \ case 62: result = fromstruct_csync(rdclass, type, source, target); break; \ + case 63: result = fromstruct_zonemd(rdclass, type, source, target); break; \ case 99: result = fromstruct_spf(rdclass, type, source, target); break; \ case 103: result = fromstruct_unspec(rdclass, type, source, target); break; \ case 104: result = fromstruct_nid(rdclass, type, source, target); break; \ @@ -1115,6 +1130,7 @@ case 257: result = fromstruct_caa(rdclass, type, source, target); break; \ case 258: result = fromstruct_avc(rdclass, type, source, target); break; \ case 259: result = fromstruct_doa(rdclass, type, source, target); break; \ + case 260: result = fromstruct_amtrelay(rdclass, type, source, target); break; \ case 32768: result = fromstruct_ta(rdclass, type, source, target); break; \ case 32769: result = fromstruct_dlv(rdclass, type, source, target); break; \ case 65533: result = fromstruct_keydata(rdclass, type, source, target); break; \ @@ -1242,6 +1258,7 @@ case 60: result = tostruct_cdnskey(rdata, target, mctx); break; \ case 61: result = tostruct_openpgpkey(rdata, target, mctx); break; \ case 62: result = tostruct_csync(rdata, target, mctx); break; \ + case 63: result = tostruct_zonemd(rdata, target, mctx); break; \ case 99: result = tostruct_spf(rdata, target, mctx); break; \ case 103: result = tostruct_unspec(rdata, target, mctx); break; \ case 104: result = tostruct_nid(rdata, target, mctx); break; \ @@ -1260,6 +1277,7 @@ case 257: result = tostruct_caa(rdata, target, mctx); break; \ case 258: result = tostruct_avc(rdata, target, mctx); break; \ case 259: result = tostruct_doa(rdata, target, mctx); break; \ + case 260: result = tostruct_amtrelay(rdata, target, mctx); break; \ case 32768: result = tostruct_ta(rdata, target, mctx); break; \ case 32769: result = tostruct_dlv(rdata, target, mctx); break; \ case 65533: result = tostruct_keydata(rdata, target, mctx); break; \ @@ -1387,6 +1405,7 @@ case 60: freestruct_cdnskey(source); break; \ case 61: freestruct_openpgpkey(source); break; \ case 62: freestruct_csync(source); break; \ + case 63: freestruct_zonemd(source); break; \ case 99: freestruct_spf(source); break; \ case 103: freestruct_unspec(source); break; \ case 104: freestruct_nid(source); break; \ @@ -1405,6 +1424,7 @@ case 257: freestruct_caa(source); break; \ case 258: freestruct_avc(source); break; \ case 259: freestruct_doa(source); break; \ + case 260: freestruct_amtrelay(source); break; \ case 32768: freestruct_ta(source); break; \ case 32769: freestruct_dlv(source); break; \ case 65533: freestruct_keydata(source); break; \ @@ -1532,6 +1552,7 @@ case 60: result = additionaldata_cdnskey(rdata, add, arg); break; \ case 61: result = additionaldata_openpgpkey(rdata, add, arg); break; \ case 62: result = additionaldata_csync(rdata, add, arg); break; \ + case 63: result = additionaldata_zonemd(rdata, add, arg); break; \ case 99: result = additionaldata_spf(rdata, add, arg); break; \ case 103: result = additionaldata_unspec(rdata, add, arg); break; \ case 104: result = additionaldata_nid(rdata, add, arg); break; \ @@ -1550,6 +1571,7 @@ case 257: result = additionaldata_caa(rdata, add, arg); break; \ case 258: result = additionaldata_avc(rdata, add, arg); break; \ case 259: result = additionaldata_doa(rdata, add, arg); break; \ + case 260: result = additionaldata_amtrelay(rdata, add, arg); break; \ case 32768: result = additionaldata_ta(rdata, add, arg); break; \ case 32769: result = additionaldata_dlv(rdata, add, arg); break; \ case 65533: result = additionaldata_keydata(rdata, add, arg); break; \ @@ -1677,6 +1699,7 @@ case 60: result = digest_cdnskey(rdata, digest, arg); break; \ case 61: result = digest_openpgpkey(rdata, digest, arg); break; \ case 62: result = digest_csync(rdata, digest, arg); break; \ + case 63: result = digest_zonemd(rdata, digest, arg); break; \ case 99: result = digest_spf(rdata, digest, arg); break; \ case 103: result = digest_unspec(rdata, digest, arg); break; \ case 104: result = digest_nid(rdata, digest, arg); break; \ @@ -1695,6 +1718,7 @@ case 257: result = digest_caa(rdata, digest, arg); break; \ case 258: result = digest_avc(rdata, digest, arg); break; \ case 259: result = digest_doa(rdata, digest, arg); break; \ + case 260: result = digest_amtrelay(rdata, digest, arg); break; \ case 32768: result = digest_ta(rdata, digest, arg); break; \ case 32769: result = digest_dlv(rdata, digest, arg); break; \ case 65533: result = digest_keydata(rdata, digest, arg); break; \ @@ -1822,6 +1846,7 @@ case 60: result = checkowner_cdnskey(name, rdclass, type, wildcard); break; \ case 61: result = checkowner_openpgpkey(name, rdclass, type, wildcard); break; \ case 62: result = checkowner_csync(name, rdclass, type, wildcard); break; \ + case 63: result = checkowner_zonemd(name, rdclass, type, wildcard); break; \ case 99: result = checkowner_spf(name, rdclass, type, wildcard); break; \ case 103: result = checkowner_unspec(name, rdclass, type, wildcard); break; \ case 104: result = checkowner_nid(name, rdclass, type, wildcard); break; \ @@ -1840,6 +1865,7 @@ case 257: result = checkowner_caa(name, rdclass, type, wildcard); break; \ case 258: result = checkowner_avc(name, rdclass, type, wildcard); break; \ case 259: result = checkowner_doa(name, rdclass, type, wildcard); break; \ + case 260: result = checkowner_amtrelay(name, rdclass, type, wildcard); break; \ case 32768: result = checkowner_ta(name, rdclass, type, wildcard); break; \ case 32769: result = checkowner_dlv(name, rdclass, type, wildcard); break; \ case 65533: result = checkowner_keydata(name, rdclass, type, wildcard); break; \ @@ -1967,6 +1993,7 @@ case 60: result = checknames_cdnskey(rdata, owner, bad); break; \ case 61: result = checknames_openpgpkey(rdata, owner, bad); break; \ case 62: result = checknames_csync(rdata, owner, bad); break; \ + case 63: result = checknames_zonemd(rdata, owner, bad); break; \ case 99: result = checknames_spf(rdata, owner, bad); break; \ case 103: result = checknames_unspec(rdata, owner, bad); break; \ case 104: result = checknames_nid(rdata, owner, bad); break; \ @@ -1985,6 +2012,7 @@ case 257: result = checknames_caa(rdata, owner, bad); break; \ case 258: result = checknames_avc(rdata, owner, bad); break; \ case 259: result = checknames_doa(rdata, owner, bad); break; \ + case 260: result = checknames_amtrelay(rdata, owner, bad); break; \ case 32768: result = checknames_ta(rdata, owner, bad); break; \ case 32769: result = checknames_dlv(rdata, owner, bad); break; \ case 65533: result = checknames_keydata(rdata, owner, bad); break; \ @@ -2179,6 +2207,9 @@ RDATATYPE_COMPARE("csync", 62, _typename, _length, _typep); \ RDATATYPE_COMPARE("uri", 256, _typename, _length, _typep); \ break; \ + case 0: \ + RDATATYPE_COMPARE("zonemd", 63, _typename, _length, _typep); \ + break; \ case 230: \ RDATATYPE_COMPARE("uinfo", 100, _typename, _length, _typep); \ break; \ @@ -2228,6 +2259,9 @@ case 7: \ RDATATYPE_COMPARE("doa", 259, _typename, _length, _typep); \ break; \ + case 161: \ + RDATATYPE_COMPARE("amtrelay", 260, _typename, _length, _typep); \ + break; \ } #define RDATATYPE_ATTRIBUTE_SW \ switch (type) { \ @@ -2293,6 +2327,7 @@ case 60: return (RRTYPE_CDNSKEY_ATTRIBUTES); \ case 61: return (RRTYPE_OPENPGPKEY_ATTRIBUTES); \ case 62: return (RRTYPE_CSYNC_ATTRIBUTES); \ + case 63: return (RRTYPE_ZONEMD_ATTRIBUTES); \ case 99: return (RRTYPE_SPF_ATTRIBUTES); \ case 100: return (0); \ case 101: return (0); \ @@ -2315,6 +2350,7 @@ case 257: return (RRTYPE_CAA_ATTRIBUTES); \ case 258: return (RRTYPE_AVC_ATTRIBUTES); \ case 259: return (RRTYPE_DOA_ATTRIBUTES); \ + case 260: return (RRTYPE_AMTRELAY_ATTRIBUTES); \ case 32768: return (RRTYPE_TA_ATTRIBUTES); \ case 32769: return (RRTYPE_DLV_ATTRIBUTES); \ case 65533: return (RRTYPE_KEYDATA_ATTRIBUTES); \ @@ -2383,6 +2419,7 @@ case 60: return (str_totext("CDNSKEY", target)); \ case 61: return (str_totext("OPENPGPKEY", target)); \ case 62: return (str_totext("CSYNC", target)); \ + case 63: return (str_totext("ZONEMD", target)); \ case 99: return (str_totext("SPF", target)); \ case 100: return (str_totext("UINFO", target)); \ case 101: return (str_totext("UID", target)); \ @@ -2405,6 +2442,7 @@ case 257: return (str_totext("CAA", target)); \ case 258: return (str_totext("AVC", target)); \ case 259: return (str_totext("DOA", target)); \ + case 260: return (str_totext("AMTRELAY", target)); \ case 32768: return (str_totext("TA", target)); \ case 32769: return (str_totext("DLV", target)); \ } diff --git a/external/mpl/bind/include/dns/enumtype.h b/external/mpl/bind/include/dns/enumtype.h index e9cd1ed5b8a..ceb3eabceb8 100644 --- a/external/mpl/bind/include/dns/enumtype.h +++ b/external/mpl/bind/include/dns/enumtype.h @@ -81,6 +81,7 @@ enum { dns_rdatatype_cdnskey = 60, dns_rdatatype_openpgpkey = 61, dns_rdatatype_csync = 62, + dns_rdatatype_zonemd = 63, dns_rdatatype_spf = 99, dns_rdatatype_unspec = 103, dns_rdatatype_nid = 104, @@ -95,6 +96,7 @@ enum { dns_rdatatype_caa = 257, dns_rdatatype_avc = 258, dns_rdatatype_doa = 259, + dns_rdatatype_amtrelay = 260, dns_rdatatype_ta = 32768, dns_rdatatype_dlv = 32769, dns_rdatatype_keydata = 65533, @@ -167,6 +169,7 @@ enum { #define dns_rdatatype_cdnskey ((dns_rdatatype_t)dns_rdatatype_cdnskey) #define dns_rdatatype_openpgpkey ((dns_rdatatype_t)dns_rdatatype_openpgpkey) #define dns_rdatatype_csync ((dns_rdatatype_t)dns_rdatatype_csync) +#define dns_rdatatype_zonemd ((dns_rdatatype_t)dns_rdatatype_zonemd) #define dns_rdatatype_spf ((dns_rdatatype_t)dns_rdatatype_spf) #define dns_rdatatype_unspec ((dns_rdatatype_t)dns_rdatatype_unspec) #define dns_rdatatype_nid ((dns_rdatatype_t)dns_rdatatype_nid) @@ -181,6 +184,7 @@ enum { #define dns_rdatatype_caa ((dns_rdatatype_t)dns_rdatatype_caa) #define dns_rdatatype_avc ((dns_rdatatype_t)dns_rdatatype_avc) #define dns_rdatatype_doa ((dns_rdatatype_t)dns_rdatatype_doa) +#define dns_rdatatype_amtrelay ((dns_rdatatype_t)dns_rdatatype_amtrelay) #define dns_rdatatype_ta ((dns_rdatatype_t)dns_rdatatype_ta) #define dns_rdatatype_dlv ((dns_rdatatype_t)dns_rdatatype_dlv) #define dns_rdatatype_keydata ((dns_rdatatype_t)dns_rdatatype_keydata) diff --git a/external/mpl/bind/include/dns/rdatastruct.h b/external/mpl/bind/include/dns/rdatastruct.h index 0be61b25d73..24bd95c9061 100644 --- a/external/mpl/bind/include/dns/rdatastruct.h +++ b/external/mpl/bind/include/dns/rdatastruct.h @@ -1864,6 +1864,37 @@ typedef struct dns_rdata_csync { * information regarding copyright ownership. */ +#ifndef GENERIC_ZONEMD_63_H +#define GENERIC_ZONEMD_63_H 1 + +/* Digest type(s). Currently only SHA-384 is defined. */ +#define DNS_ZONEMD_DIGEST_SHA384 (1) + +/* + * \brief per draft-wessels-zone-digest-05 + */ +typedef struct dns_rdata_zonemd { + dns_rdatacommon_t common; + isc_mem_t *mctx; + uint32_t serial; + uint8_t digest_type; + uint8_t reserved; + unsigned char *digest; + uint16_t length; +} dns_rdata_zonemd_t; + +#endif /* GENERIC_ZONEMD_63_H */ +/* + * Copyright (C) Internet Systems Consortium, Inc. ("ISC") + * + * 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 http://mozilla.org/MPL/2.0/. + * + * See the COPYRIGHT file distributed with this work for additional + * information regarding copyright ownership. + */ + #ifndef GENERIC_SPF_99_H #define GENERIC_SPF_99_H 1 @@ -2226,6 +2257,35 @@ typedef struct dns_rdata_doa { * information regarding copyright ownership. */ + +#ifndef GENERIC_AMTRELAY_260_H +#define GENERIC_AMTRELAY_260_H 1 + +typedef struct dns_rdata_amtrelay { + dns_rdatacommon_t common; + isc_mem_t *mctx; + uint8_t precedence; + bool discovery; + uint8_t gateway_type; + struct in_addr in_addr; /* gateway type 1 */ + struct in6_addr in6_addr; /* gateway type 2 */ + dns_name_t gateway; /* gateway type 3 */ + unsigned char *data; /* gateway type > 3 */ + uint16_t length; +} dns_rdata_amtrelay_t; + +#endif /* GENERIC_AMTRELAY_260_H */ +/* + * Copyright (C) Internet Systems Consortium, Inc. ("ISC") + * + * 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 http://mozilla.org/MPL/2.0/. + * + * See the COPYRIGHT file distributed with this work for additional + * information regarding copyright ownership. + */ + #ifndef GENERIC_TA_32768_H #define GENERIC_TA_32768_H 1 diff --git a/external/mpl/bind/include/isc/atomic.h b/external/mpl/bind/include/isc/atomic.h index d6f95de111c..893f5526fd0 100644 --- a/external/mpl/bind/include/isc/atomic.h +++ b/external/mpl/bind/include/isc/atomic.h @@ -16,3 +16,12 @@ #else #include <isc/stdatomic.h> #endif + +/* + * We define a few additional macros to make things easier + */ + +#define atomic_store_relaxed(o, v) atomic_store_explicit((o), \ + (v), \ + memory_order_relaxed) +#define atomic_load_relaxed(o) atomic_load_explicit((o), memory_order_relaxed) diff --git a/external/mpl/bind/include/isc/stdatomic.h b/external/mpl/bind/include/isc/stdatomic.h index c45c0990bbe..9a75bf126c6 100644 --- a/external/mpl/bind/include/isc/stdatomic.h +++ b/external/mpl/bind/include/isc/stdatomic.h @@ -11,6 +11,9 @@ #pragma once +#include <inttypes.h> +#include <stdbool.h> + #if !defined(__has_feature) #define __has_feature(x) 0 #endif @@ -31,9 +34,9 @@ #if !defined(__CLANG_ATOMICS) && !defined(__GNUC_ATOMICS) #if __has_extension(c_atomic) || __has_extension(cxx_atomic) #define __CLANG_ATOMICS -#elif __GNUC_PREREQ__(4, 7) +#elif __GNUC_PREREQ__(4, 7) || defined(__lint__) #define __GNUC_ATOMICS -#elif !defined(__GNUC__) && !defined(__lint__) +#elif !defined(__GNUC__) #error "isc/stdatomic.h does not support your compiler" #endif #endif @@ -73,6 +76,7 @@ typedef int_fast32_t atomic_int_fast32_t; typedef uint_fast32_t atomic_uint_fast32_t; typedef int_fast64_t atomic_int_fast64_t; typedef uint_fast64_t atomic_uint_fast64_t; +typedef bool atomic_bool; #if defined(__CLANG_ATOMICS) /* __c11_atomic builtins */ #define atomic_init(obj, desired) \ @@ -123,8 +127,10 @@ typedef uint_fast64_t atomic_uint_fast64_t; ({ \ __typeof__(obj) __v; \ _Bool __r; \ - __v = __sync_val_compare_and_swap(obj, *(expected), desired); \ - __r = *(expected) == __v; \ + __v = (__typeof__(obj))__sync_val_compare_and_swap(obj, \ + *(expected), \ + desired); \ + __r = ((__typeof__(obj))*(expected) == __v); \ *(expected) = __v; \ __r; \ }) @@ -134,11 +140,11 @@ typedef uint_fast64_t atomic_uint_fast64_t; #define atomic_load(obj) \ atomic_load_explicit(obj, memory_order_seq_cst) -#define atomic_store(obj) \ - atomic_store_explicit(obj, memory_order_seq_cst) -#define atomic_fetch_add(obj) \ +#define atomic_store(obj, arg) \ + atomic_store_explicit(obj, arg, memory_order_seq_cst) +#define atomic_fetch_add(obj, arg) \ atomic_fetch_add_explicit(obj, arg, memory_order_seq_cst) -#define atomic_fetch_sub(obj) \ +#define atomic_fetch_sub(obj, arg) \ atomic_fetch_sub_explicit(obj, arg, memory_order_seq_cst) #define atomic_compare_exchange_strong(obj, expected, desired) \ atomic_compare_exchange_strong_explicit(obj, expected, desired, memory_order_seq_cst, memory_order_seq_cst) |
