/src/samba/third_party/heimdal/lib/base/heimbase-atomics.h
Line | Count | Source (jump to first uncovered line) |
1 | | /* |
2 | | * Copyright (c) 2010 Kungliga Tekniska Högskolan |
3 | | * (Royal Institute of Technology, Stockholm, Sweden). |
4 | | * All rights reserved. |
5 | | * |
6 | | * Portions Copyright (c) 2010 Apple Inc. All rights reserved. |
7 | | * |
8 | | * Redistribution and use in source and binary forms, with or without |
9 | | * modification, are permitted provided that the following conditions |
10 | | * are met: |
11 | | * |
12 | | * 1. Redistributions of source code must retain the above copyright |
13 | | * notice, this list of conditions and the following disclaimer. |
14 | | * |
15 | | * 2. Redistributions in binary form must reproduce the above copyright |
16 | | * notice, this list of conditions and the following disclaimer in the |
17 | | * documentation and/or other materials provided with the distribution. |
18 | | * |
19 | | * 3. Neither the name of the Institute nor the names of its contributors |
20 | | * may be used to endorse or promote products derived from this software |
21 | | * without specific prior written permission. |
22 | | * |
23 | | * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND |
24 | | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
25 | | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
26 | | * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE |
27 | | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
28 | | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
29 | | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
30 | | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
31 | | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
32 | | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
33 | | * SUCH DAMAGE. |
34 | | */ |
35 | | |
36 | | #ifndef HEIM_BASE_ATOMICS_H |
37 | | #define HEIM_BASE_ATOMICS_H 1 |
38 | | |
39 | | #include <stdint.h> |
40 | | |
41 | | /* |
42 | | * Atomic operations |
43 | | * |
44 | | * (#define HEIM_BASE_ATOMICS_FALLBACK to test fallbacks.) |
45 | | */ |
46 | | |
47 | | #if !defined(HEIM_BASE_ATOMICS_FALLBACK) && defined(HAVE_STDATOMIC_H) |
48 | | |
49 | | #include <stdatomic.h> |
50 | | |
51 | | #define heim_base_atomic_init(t, v) atomic_init(t, v) |
52 | 0 | #define heim_base_atomic_load(x) atomic_load((x)) |
53 | 0 | #define heim_base_atomic_store(t, v) atomic_store((t), (v)) |
54 | | |
55 | 0 | #define heim_base_atomic(T) _Atomic(T) |
56 | | |
57 | 0 | #define heim_base_atomic_inc_32(x) (atomic_fetch_add((x), 1) + 1) |
58 | 0 | #define heim_base_atomic_dec_32(x) (atomic_fetch_sub((x), 1) - 1) |
59 | | #define heim_base_atomic_inc_64(x) (atomic_fetch_add((x), 1) + 1) |
60 | | #define heim_base_atomic_dec_64(x) (atomic_fetch_sub((x), 1) - 1) |
61 | | |
62 | 0 | #define heim_base_exchange_pointer(t,v) atomic_exchange((t), (v)) |
63 | | #define heim_base_exchange_32(t,v) atomic_exchange((t), (v)) |
64 | | #define heim_base_exchange_64(t,v) atomic_exchange((t), (v)) |
65 | | |
66 | | /* |
67 | | * <stdatomic.h>'s and AIX's CAS functions take a pointer to an expected value |
68 | | * and return a boolean, setting the pointed-to variable to the old value of |
69 | | * the target. |
70 | | * |
71 | | * Other CAS functions, like GCC's, Solaris'/Illumos', and Windows', return the |
72 | | * old value and don't take a pointer to an expected value. |
73 | | * |
74 | | * We implement the latter semantics. |
75 | | */ |
76 | | static inline void * |
77 | | heim_base_cas_pointer_(heim_base_atomic(void *)*t, void *e, void *d) |
78 | 0 | { |
79 | 0 | return atomic_compare_exchange_strong(t, &e, d), e; |
80 | 0 | } Unexecuted instantiation: acache.c:heim_base_cas_pointer_ Unexecuted instantiation: add_et_list.c:heim_base_cas_pointer_ Unexecuted instantiation: addr_families.c:heim_base_cas_pointer_ Unexecuted instantiation: appdefault.c:heim_base_cas_pointer_ Unexecuted instantiation: asn1_glue.c:heim_base_cas_pointer_ Unexecuted instantiation: auth_context.c:heim_base_cas_pointer_ Unexecuted instantiation: authdata.c:heim_base_cas_pointer_ Unexecuted instantiation: build_ap_req.c:heim_base_cas_pointer_ Unexecuted instantiation: build_auth.c:heim_base_cas_pointer_ Unexecuted instantiation: cache.c:heim_base_cas_pointer_ Unexecuted instantiation: changepw.c:heim_base_cas_pointer_ Unexecuted instantiation: codec.c:heim_base_cas_pointer_ Unexecuted instantiation: config_file.c:heim_base_cas_pointer_ Unexecuted instantiation: constants.c:heim_base_cas_pointer_ Unexecuted instantiation: convert_creds.c:heim_base_cas_pointer_ Unexecuted instantiation: copy_host_realm.c:heim_base_cas_pointer_ Unexecuted instantiation: crc.c:heim_base_cas_pointer_ Unexecuted instantiation: creds.c:heim_base_cas_pointer_ Unexecuted instantiation: crypto-aes-sha1.c:heim_base_cas_pointer_ Unexecuted instantiation: crypto-aes-sha2.c:heim_base_cas_pointer_ Unexecuted instantiation: crypto-algs.c:heim_base_cas_pointer_ Unexecuted instantiation: crypto-arcfour.c:heim_base_cas_pointer_ Unexecuted instantiation: crypto-des3.c:heim_base_cas_pointer_ Unexecuted instantiation: crypto-des.c:heim_base_cas_pointer_ Unexecuted instantiation: crypto-des-common.c:heim_base_cas_pointer_ Unexecuted instantiation: crypto-evp.c:heim_base_cas_pointer_ Unexecuted instantiation: crypto-null.c:heim_base_cas_pointer_ Unexecuted instantiation: crypto-pk.c:heim_base_cas_pointer_ Unexecuted instantiation: crypto-rand.c:heim_base_cas_pointer_ Unexecuted instantiation: data.c:heim_base_cas_pointer_ Unexecuted instantiation: dcache.c:heim_base_cas_pointer_ Unexecuted instantiation: db_plugin.c:heim_base_cas_pointer_ Unexecuted instantiation: deprecated.c:heim_base_cas_pointer_ Unexecuted instantiation: eai_to_heim_errno.c:heim_base_cas_pointer_ Unexecuted instantiation: enomem.c:heim_base_cas_pointer_ Unexecuted instantiation: error_string.c:heim_base_cas_pointer_ Unexecuted instantiation: expand_hostname.c:heim_base_cas_pointer_ Unexecuted instantiation: fast.c:heim_base_cas_pointer_ Unexecuted instantiation: fcache.c:heim_base_cas_pointer_ Unexecuted instantiation: free.c:heim_base_cas_pointer_ Unexecuted instantiation: free_host_realm.c:heim_base_cas_pointer_ Unexecuted instantiation: generate_seq_number.c:heim_base_cas_pointer_ Unexecuted instantiation: generate_subkey.c:heim_base_cas_pointer_ Unexecuted instantiation: get_addrs.c:heim_base_cas_pointer_ Unexecuted instantiation: get_cred.c:heim_base_cas_pointer_ Unexecuted instantiation: get_default_principal.c:heim_base_cas_pointer_ Unexecuted instantiation: get_default_realm.c:heim_base_cas_pointer_ Unexecuted instantiation: get_for_creds.c:heim_base_cas_pointer_ Unexecuted instantiation: get_host_realm.c:heim_base_cas_pointer_ Unexecuted instantiation: get_in_tkt.c:heim_base_cas_pointer_ Unexecuted instantiation: get_port.c:heim_base_cas_pointer_ Unexecuted instantiation: init_creds.c:heim_base_cas_pointer_ Unexecuted instantiation: init_creds_pw.c:heim_base_cas_pointer_ Unexecuted instantiation: kcm.c:heim_base_cas_pointer_ Unexecuted instantiation: keyblock.c:heim_base_cas_pointer_ Unexecuted instantiation: keytab.c:heim_base_cas_pointer_ Unexecuted instantiation: keytab_any.c:heim_base_cas_pointer_ Unexecuted instantiation: keytab_file.c:heim_base_cas_pointer_ Unexecuted instantiation: keytab_memory.c:heim_base_cas_pointer_ Unexecuted instantiation: keytab_keyfile.c:heim_base_cas_pointer_ Unexecuted instantiation: krbhst.c:heim_base_cas_pointer_ Unexecuted instantiation: krcache.c:heim_base_cas_pointer_ Unexecuted instantiation: log.c:heim_base_cas_pointer_ Unexecuted instantiation: mcache.c:heim_base_cas_pointer_ Unexecuted instantiation: misc.c:heim_base_cas_pointer_ Unexecuted instantiation: mk_error.c:heim_base_cas_pointer_ Unexecuted instantiation: mk_priv.c:heim_base_cas_pointer_ Unexecuted instantiation: mk_rep.c:heim_base_cas_pointer_ Unexecuted instantiation: mk_req.c:heim_base_cas_pointer_ Unexecuted instantiation: mk_req_ext.c:heim_base_cas_pointer_ Unexecuted instantiation: mit_glue.c:heim_base_cas_pointer_ Unexecuted instantiation: net_read.c:heim_base_cas_pointer_ Unexecuted instantiation: net_write.c:heim_base_cas_pointer_ Unexecuted instantiation: n-fold.c:heim_base_cas_pointer_ Unexecuted instantiation: padata.c:heim_base_cas_pointer_ Unexecuted instantiation: pkinit.c:heim_base_cas_pointer_ Unexecuted instantiation: pkinit-ec.c:heim_base_cas_pointer_ Unexecuted instantiation: principal.c:heim_base_cas_pointer_ Unexecuted instantiation: prog_setup.c:heim_base_cas_pointer_ Unexecuted instantiation: pac.c:heim_base_cas_pointer_ Unexecuted instantiation: pcache.c:heim_base_cas_pointer_ Unexecuted instantiation: prompter_posix.c:heim_base_cas_pointer_ Unexecuted instantiation: rd_cred.c:heim_base_cas_pointer_ Unexecuted instantiation: rd_error.c:heim_base_cas_pointer_ Unexecuted instantiation: rd_priv.c:heim_base_cas_pointer_ Unexecuted instantiation: rd_rep.c:heim_base_cas_pointer_ Unexecuted instantiation: rd_req.c:heim_base_cas_pointer_ Unexecuted instantiation: replay.c:heim_base_cas_pointer_ Unexecuted instantiation: salt.c:heim_base_cas_pointer_ Unexecuted instantiation: salt-aes-sha1.c:heim_base_cas_pointer_ Unexecuted instantiation: salt-aes-sha2.c:heim_base_cas_pointer_ Unexecuted instantiation: salt-arcfour.c:heim_base_cas_pointer_ Unexecuted instantiation: salt-des3.c:heim_base_cas_pointer_ Unexecuted instantiation: salt-des.c:heim_base_cas_pointer_ Unexecuted instantiation: send_to_kdc.c:heim_base_cas_pointer_ Unexecuted instantiation: set_default_realm.c:heim_base_cas_pointer_ Unexecuted instantiation: store.c:heim_base_cas_pointer_ Unexecuted instantiation: store-int.c:heim_base_cas_pointer_ Unexecuted instantiation: store_emem.c:heim_base_cas_pointer_ Unexecuted instantiation: store_fd.c:heim_base_cas_pointer_ Unexecuted instantiation: store_mem.c:heim_base_cas_pointer_ Unexecuted instantiation: store_stdio.c:heim_base_cas_pointer_ Unexecuted instantiation: ticket.c:heim_base_cas_pointer_ Unexecuted instantiation: time.c:heim_base_cas_pointer_ Unexecuted instantiation: transited.c:heim_base_cas_pointer_ Unexecuted instantiation: version.c:heim_base_cas_pointer_ Unexecuted instantiation: warn.c:heim_base_cas_pointer_ Unexecuted instantiation: sp800-108-kdf.c:heim_base_cas_pointer_ Unexecuted instantiation: aname_to_localname.c:heim_base_cas_pointer_ Unexecuted instantiation: kuserok.c:heim_base_cas_pointer_ Unexecuted instantiation: kx509.c:heim_base_cas_pointer_ Unexecuted instantiation: mk_cred.c:heim_base_cas_pointer_ Unexecuted instantiation: krb5-glue.c:heim_base_cas_pointer_ Unexecuted instantiation: expand_path.c:heim_base_cas_pointer_ Unexecuted instantiation: plugin.c:heim_base_cas_pointer_ Unexecuted instantiation: context.c:heim_base_cas_pointer_ Unexecuted instantiation: crypto.c:heim_base_cas_pointer_ Unexecuted instantiation: heimbase.c:heim_base_cas_pointer_ Unexecuted instantiation: copy_ccache.c:heim_base_cas_pointer_ Unexecuted instantiation: delete_sec_context.c:heim_base_cas_pointer_ Unexecuted instantiation: duplicate_cred.c:heim_base_cas_pointer_ Unexecuted instantiation: init_sec_context.c:heim_base_cas_pointer_ Unexecuted instantiation: context_time.c:heim_base_cas_pointer_ Unexecuted instantiation: init.c:heim_base_cas_pointer_ Unexecuted instantiation: address_to_krb5addr.c:heim_base_cas_pointer_ Unexecuted instantiation: get_mic.c:heim_base_cas_pointer_ Unexecuted instantiation: inquire_context.c:heim_base_cas_pointer_ Unexecuted instantiation: add_cred.c:heim_base_cas_pointer_ Unexecuted instantiation: inquire_cred.c:heim_base_cas_pointer_ Unexecuted instantiation: inquire_cred_by_oid.c:heim_base_cas_pointer_ Unexecuted instantiation: inquire_cred_by_mech.c:heim_base_cas_pointer_ Unexecuted instantiation: inquire_mechs_for_name.c:heim_base_cas_pointer_ Unexecuted instantiation: inquire_names_for_mech.c:heim_base_cas_pointer_ Unexecuted instantiation: indicate_mechs.c:heim_base_cas_pointer_ Unexecuted instantiation: inquire_sec_context_by_oid.c:heim_base_cas_pointer_ Unexecuted instantiation: name_attrs.c:heim_base_cas_pointer_ Unexecuted instantiation: export_sec_context.c:heim_base_cas_pointer_ Unexecuted instantiation: import_sec_context.c:heim_base_cas_pointer_ Unexecuted instantiation: duplicate_name.c:heim_base_cas_pointer_ Unexecuted instantiation: import_name.c:heim_base_cas_pointer_ Unexecuted instantiation: compare_name.c:heim_base_cas_pointer_ Unexecuted instantiation: export_name.c:heim_base_cas_pointer_ Unexecuted instantiation: canonicalize_name.c:heim_base_cas_pointer_ Unexecuted instantiation: unwrap.c:heim_base_cas_pointer_ Unexecuted instantiation: wrap.c:heim_base_cas_pointer_ Unexecuted instantiation: release_name.c:heim_base_cas_pointer_ Unexecuted instantiation: cfx.c:heim_base_cas_pointer_ Unexecuted instantiation: 8003.c:heim_base_cas_pointer_ Unexecuted instantiation: arcfour.c:heim_base_cas_pointer_ Unexecuted instantiation: encapsulate.c:heim_base_cas_pointer_ Unexecuted instantiation: display_name.c:heim_base_cas_pointer_ Unexecuted instantiation: sequence.c:heim_base_cas_pointer_ Unexecuted instantiation: display_status.c:heim_base_cas_pointer_ Unexecuted instantiation: release_buffer.c:heim_base_cas_pointer_ Unexecuted instantiation: external.c:heim_base_cas_pointer_ Unexecuted instantiation: compat.c:heim_base_cas_pointer_ Unexecuted instantiation: ccache_name.c:heim_base_cas_pointer_ Unexecuted instantiation: acquire_cred.c:heim_base_cas_pointer_ Unexecuted instantiation: release_cred.c:heim_base_cas_pointer_ Unexecuted instantiation: store_cred.c:heim_base_cas_pointer_ Unexecuted instantiation: set_cred_option.c:heim_base_cas_pointer_ Unexecuted instantiation: decapsulate.c:heim_base_cas_pointer_ Unexecuted instantiation: verify_mic.c:heim_base_cas_pointer_ Unexecuted instantiation: accept_sec_context.c:heim_base_cas_pointer_ Unexecuted instantiation: set_sec_context_option.c:heim_base_cas_pointer_ Unexecuted instantiation: process_context_token.c:heim_base_cas_pointer_ Unexecuted instantiation: prf.c:heim_base_cas_pointer_ Unexecuted instantiation: aeap.c:heim_base_cas_pointer_ Unexecuted instantiation: pname_to_uid.c:heim_base_cas_pointer_ Unexecuted instantiation: authorize_localname.c:heim_base_cas_pointer_ Unexecuted instantiation: cred.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_krb5.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_mech_switch.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_process_context_token.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_buffer_set.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_aeap.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_add_cred.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_add_cred_from.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_acquire_cred_from.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_cred.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_store_cred_into.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_add_oid_set_member.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_compare_name.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_release_oid_set.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_create_empty_oid_set.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_duplicate_oid_set.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_decapsulate_token.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_inquire_cred_by_oid.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_canonicalize_name.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_inquire_sec_context_by_oid.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_inquire_names_for_mech.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_inquire_mechs_for_name.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_wrap_size_limit.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_names.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_verify.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_display_name.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_duplicate_oid.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_duplicate_cred.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_display_status.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_release_buffer.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_release_oid.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_test_oid_set_member.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_release_cred.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_set_sec_context_option.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_export_name.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_seal.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_acquire_cred.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_unseal.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_verify_mic.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_accept_sec_context.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_inquire_cred_by_mech.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_indicate_mechs.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_get_neg_mechs.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_delete_sec_context.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_sign.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_utils.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_init_sec_context.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_oid_equal.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_oid.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_oid_to_str.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_mo.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_context_time.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_encapsulate_token.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_get_mic.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_import_sec_context.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_inquire_cred.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_wrap.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_import_name.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_duplicate_name.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_unwrap.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_export_sec_context.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_export_name_composite.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_inquire_context.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_release_name.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_set_cred_option.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_pseudo_random.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_authorize_localname.c:heim_base_cas_pointer_ Unexecuted instantiation: gss_get_name_attribute.c:heim_base_cas_pointer_ Unexecuted instantiation: gssspi_exchange_meta_data.c:heim_base_cas_pointer_ Unexecuted instantiation: gssspi_query_mechanism_info.c:heim_base_cas_pointer_ Unexecuted instantiation: gssspi_query_meta_data.c:heim_base_cas_pointer_ |
81 | | |
82 | | static inline uint32_t |
83 | | heim_base_cas_32_(heim_base_atomic(uint32_t)*t, uint32_t e, uint32_t d) |
84 | 0 | { |
85 | 0 | return atomic_compare_exchange_strong(t, &e, d), e; |
86 | 0 | } Unexecuted instantiation: acache.c:heim_base_cas_32_ Unexecuted instantiation: add_et_list.c:heim_base_cas_32_ Unexecuted instantiation: addr_families.c:heim_base_cas_32_ Unexecuted instantiation: appdefault.c:heim_base_cas_32_ Unexecuted instantiation: asn1_glue.c:heim_base_cas_32_ Unexecuted instantiation: auth_context.c:heim_base_cas_32_ Unexecuted instantiation: authdata.c:heim_base_cas_32_ Unexecuted instantiation: build_ap_req.c:heim_base_cas_32_ Unexecuted instantiation: build_auth.c:heim_base_cas_32_ Unexecuted instantiation: cache.c:heim_base_cas_32_ Unexecuted instantiation: changepw.c:heim_base_cas_32_ Unexecuted instantiation: codec.c:heim_base_cas_32_ Unexecuted instantiation: config_file.c:heim_base_cas_32_ Unexecuted instantiation: constants.c:heim_base_cas_32_ Unexecuted instantiation: convert_creds.c:heim_base_cas_32_ Unexecuted instantiation: copy_host_realm.c:heim_base_cas_32_ Unexecuted instantiation: crc.c:heim_base_cas_32_ Unexecuted instantiation: creds.c:heim_base_cas_32_ Unexecuted instantiation: crypto-aes-sha1.c:heim_base_cas_32_ Unexecuted instantiation: crypto-aes-sha2.c:heim_base_cas_32_ Unexecuted instantiation: crypto-algs.c:heim_base_cas_32_ Unexecuted instantiation: crypto-arcfour.c:heim_base_cas_32_ Unexecuted instantiation: crypto-des3.c:heim_base_cas_32_ Unexecuted instantiation: crypto-des.c:heim_base_cas_32_ Unexecuted instantiation: crypto-des-common.c:heim_base_cas_32_ Unexecuted instantiation: crypto-evp.c:heim_base_cas_32_ Unexecuted instantiation: crypto-null.c:heim_base_cas_32_ Unexecuted instantiation: crypto-pk.c:heim_base_cas_32_ Unexecuted instantiation: crypto-rand.c:heim_base_cas_32_ Unexecuted instantiation: data.c:heim_base_cas_32_ Unexecuted instantiation: dcache.c:heim_base_cas_32_ Unexecuted instantiation: db_plugin.c:heim_base_cas_32_ Unexecuted instantiation: deprecated.c:heim_base_cas_32_ Unexecuted instantiation: eai_to_heim_errno.c:heim_base_cas_32_ Unexecuted instantiation: enomem.c:heim_base_cas_32_ Unexecuted instantiation: error_string.c:heim_base_cas_32_ Unexecuted instantiation: expand_hostname.c:heim_base_cas_32_ Unexecuted instantiation: fast.c:heim_base_cas_32_ Unexecuted instantiation: fcache.c:heim_base_cas_32_ Unexecuted instantiation: free.c:heim_base_cas_32_ Unexecuted instantiation: free_host_realm.c:heim_base_cas_32_ Unexecuted instantiation: generate_seq_number.c:heim_base_cas_32_ Unexecuted instantiation: generate_subkey.c:heim_base_cas_32_ Unexecuted instantiation: get_addrs.c:heim_base_cas_32_ Unexecuted instantiation: get_cred.c:heim_base_cas_32_ Unexecuted instantiation: get_default_principal.c:heim_base_cas_32_ Unexecuted instantiation: get_default_realm.c:heim_base_cas_32_ Unexecuted instantiation: get_for_creds.c:heim_base_cas_32_ Unexecuted instantiation: get_host_realm.c:heim_base_cas_32_ Unexecuted instantiation: get_in_tkt.c:heim_base_cas_32_ Unexecuted instantiation: get_port.c:heim_base_cas_32_ Unexecuted instantiation: init_creds.c:heim_base_cas_32_ Unexecuted instantiation: init_creds_pw.c:heim_base_cas_32_ Unexecuted instantiation: kcm.c:heim_base_cas_32_ Unexecuted instantiation: keyblock.c:heim_base_cas_32_ Unexecuted instantiation: keytab.c:heim_base_cas_32_ Unexecuted instantiation: keytab_any.c:heim_base_cas_32_ Unexecuted instantiation: keytab_file.c:heim_base_cas_32_ Unexecuted instantiation: keytab_memory.c:heim_base_cas_32_ Unexecuted instantiation: keytab_keyfile.c:heim_base_cas_32_ Unexecuted instantiation: krbhst.c:heim_base_cas_32_ Unexecuted instantiation: krcache.c:heim_base_cas_32_ Unexecuted instantiation: log.c:heim_base_cas_32_ Unexecuted instantiation: mcache.c:heim_base_cas_32_ Unexecuted instantiation: misc.c:heim_base_cas_32_ Unexecuted instantiation: mk_error.c:heim_base_cas_32_ Unexecuted instantiation: mk_priv.c:heim_base_cas_32_ Unexecuted instantiation: mk_rep.c:heim_base_cas_32_ Unexecuted instantiation: mk_req.c:heim_base_cas_32_ Unexecuted instantiation: mk_req_ext.c:heim_base_cas_32_ Unexecuted instantiation: mit_glue.c:heim_base_cas_32_ Unexecuted instantiation: net_read.c:heim_base_cas_32_ Unexecuted instantiation: net_write.c:heim_base_cas_32_ Unexecuted instantiation: n-fold.c:heim_base_cas_32_ Unexecuted instantiation: padata.c:heim_base_cas_32_ Unexecuted instantiation: pkinit.c:heim_base_cas_32_ Unexecuted instantiation: pkinit-ec.c:heim_base_cas_32_ Unexecuted instantiation: principal.c:heim_base_cas_32_ Unexecuted instantiation: prog_setup.c:heim_base_cas_32_ Unexecuted instantiation: pac.c:heim_base_cas_32_ Unexecuted instantiation: pcache.c:heim_base_cas_32_ Unexecuted instantiation: prompter_posix.c:heim_base_cas_32_ Unexecuted instantiation: rd_cred.c:heim_base_cas_32_ Unexecuted instantiation: rd_error.c:heim_base_cas_32_ Unexecuted instantiation: rd_priv.c:heim_base_cas_32_ Unexecuted instantiation: rd_rep.c:heim_base_cas_32_ Unexecuted instantiation: rd_req.c:heim_base_cas_32_ Unexecuted instantiation: replay.c:heim_base_cas_32_ Unexecuted instantiation: salt.c:heim_base_cas_32_ Unexecuted instantiation: salt-aes-sha1.c:heim_base_cas_32_ Unexecuted instantiation: salt-aes-sha2.c:heim_base_cas_32_ Unexecuted instantiation: salt-arcfour.c:heim_base_cas_32_ Unexecuted instantiation: salt-des3.c:heim_base_cas_32_ Unexecuted instantiation: salt-des.c:heim_base_cas_32_ Unexecuted instantiation: send_to_kdc.c:heim_base_cas_32_ Unexecuted instantiation: set_default_realm.c:heim_base_cas_32_ Unexecuted instantiation: store.c:heim_base_cas_32_ Unexecuted instantiation: store-int.c:heim_base_cas_32_ Unexecuted instantiation: store_emem.c:heim_base_cas_32_ Unexecuted instantiation: store_fd.c:heim_base_cas_32_ Unexecuted instantiation: store_mem.c:heim_base_cas_32_ Unexecuted instantiation: store_stdio.c:heim_base_cas_32_ Unexecuted instantiation: ticket.c:heim_base_cas_32_ Unexecuted instantiation: time.c:heim_base_cas_32_ Unexecuted instantiation: transited.c:heim_base_cas_32_ Unexecuted instantiation: version.c:heim_base_cas_32_ Unexecuted instantiation: warn.c:heim_base_cas_32_ Unexecuted instantiation: sp800-108-kdf.c:heim_base_cas_32_ Unexecuted instantiation: aname_to_localname.c:heim_base_cas_32_ Unexecuted instantiation: kuserok.c:heim_base_cas_32_ Unexecuted instantiation: kx509.c:heim_base_cas_32_ Unexecuted instantiation: mk_cred.c:heim_base_cas_32_ Unexecuted instantiation: krb5-glue.c:heim_base_cas_32_ Unexecuted instantiation: expand_path.c:heim_base_cas_32_ Unexecuted instantiation: plugin.c:heim_base_cas_32_ Unexecuted instantiation: context.c:heim_base_cas_32_ Unexecuted instantiation: crypto.c:heim_base_cas_32_ Unexecuted instantiation: heimbase.c:heim_base_cas_32_ Unexecuted instantiation: copy_ccache.c:heim_base_cas_32_ Unexecuted instantiation: delete_sec_context.c:heim_base_cas_32_ Unexecuted instantiation: duplicate_cred.c:heim_base_cas_32_ Unexecuted instantiation: init_sec_context.c:heim_base_cas_32_ Unexecuted instantiation: context_time.c:heim_base_cas_32_ Unexecuted instantiation: init.c:heim_base_cas_32_ Unexecuted instantiation: address_to_krb5addr.c:heim_base_cas_32_ Unexecuted instantiation: get_mic.c:heim_base_cas_32_ Unexecuted instantiation: inquire_context.c:heim_base_cas_32_ Unexecuted instantiation: add_cred.c:heim_base_cas_32_ Unexecuted instantiation: inquire_cred.c:heim_base_cas_32_ Unexecuted instantiation: inquire_cred_by_oid.c:heim_base_cas_32_ Unexecuted instantiation: inquire_cred_by_mech.c:heim_base_cas_32_ Unexecuted instantiation: inquire_mechs_for_name.c:heim_base_cas_32_ Unexecuted instantiation: inquire_names_for_mech.c:heim_base_cas_32_ Unexecuted instantiation: indicate_mechs.c:heim_base_cas_32_ Unexecuted instantiation: inquire_sec_context_by_oid.c:heim_base_cas_32_ Unexecuted instantiation: name_attrs.c:heim_base_cas_32_ Unexecuted instantiation: export_sec_context.c:heim_base_cas_32_ Unexecuted instantiation: import_sec_context.c:heim_base_cas_32_ Unexecuted instantiation: duplicate_name.c:heim_base_cas_32_ Unexecuted instantiation: import_name.c:heim_base_cas_32_ Unexecuted instantiation: compare_name.c:heim_base_cas_32_ Unexecuted instantiation: export_name.c:heim_base_cas_32_ Unexecuted instantiation: canonicalize_name.c:heim_base_cas_32_ Unexecuted instantiation: unwrap.c:heim_base_cas_32_ Unexecuted instantiation: wrap.c:heim_base_cas_32_ Unexecuted instantiation: release_name.c:heim_base_cas_32_ Unexecuted instantiation: cfx.c:heim_base_cas_32_ Unexecuted instantiation: 8003.c:heim_base_cas_32_ Unexecuted instantiation: arcfour.c:heim_base_cas_32_ Unexecuted instantiation: encapsulate.c:heim_base_cas_32_ Unexecuted instantiation: display_name.c:heim_base_cas_32_ Unexecuted instantiation: sequence.c:heim_base_cas_32_ Unexecuted instantiation: display_status.c:heim_base_cas_32_ Unexecuted instantiation: release_buffer.c:heim_base_cas_32_ Unexecuted instantiation: external.c:heim_base_cas_32_ Unexecuted instantiation: compat.c:heim_base_cas_32_ Unexecuted instantiation: ccache_name.c:heim_base_cas_32_ Unexecuted instantiation: acquire_cred.c:heim_base_cas_32_ Unexecuted instantiation: release_cred.c:heim_base_cas_32_ Unexecuted instantiation: store_cred.c:heim_base_cas_32_ Unexecuted instantiation: set_cred_option.c:heim_base_cas_32_ Unexecuted instantiation: decapsulate.c:heim_base_cas_32_ Unexecuted instantiation: verify_mic.c:heim_base_cas_32_ Unexecuted instantiation: accept_sec_context.c:heim_base_cas_32_ Unexecuted instantiation: set_sec_context_option.c:heim_base_cas_32_ Unexecuted instantiation: process_context_token.c:heim_base_cas_32_ Unexecuted instantiation: prf.c:heim_base_cas_32_ Unexecuted instantiation: aeap.c:heim_base_cas_32_ Unexecuted instantiation: pname_to_uid.c:heim_base_cas_32_ Unexecuted instantiation: authorize_localname.c:heim_base_cas_32_ Unexecuted instantiation: cred.c:heim_base_cas_32_ Unexecuted instantiation: gss_krb5.c:heim_base_cas_32_ Unexecuted instantiation: gss_mech_switch.c:heim_base_cas_32_ Unexecuted instantiation: gss_process_context_token.c:heim_base_cas_32_ Unexecuted instantiation: gss_buffer_set.c:heim_base_cas_32_ Unexecuted instantiation: gss_aeap.c:heim_base_cas_32_ Unexecuted instantiation: gss_add_cred.c:heim_base_cas_32_ Unexecuted instantiation: gss_add_cred_from.c:heim_base_cas_32_ Unexecuted instantiation: gss_acquire_cred_from.c:heim_base_cas_32_ Unexecuted instantiation: gss_cred.c:heim_base_cas_32_ Unexecuted instantiation: gss_store_cred_into.c:heim_base_cas_32_ Unexecuted instantiation: gss_add_oid_set_member.c:heim_base_cas_32_ Unexecuted instantiation: gss_compare_name.c:heim_base_cas_32_ Unexecuted instantiation: gss_release_oid_set.c:heim_base_cas_32_ Unexecuted instantiation: gss_create_empty_oid_set.c:heim_base_cas_32_ Unexecuted instantiation: gss_duplicate_oid_set.c:heim_base_cas_32_ Unexecuted instantiation: gss_decapsulate_token.c:heim_base_cas_32_ Unexecuted instantiation: gss_inquire_cred_by_oid.c:heim_base_cas_32_ Unexecuted instantiation: gss_canonicalize_name.c:heim_base_cas_32_ Unexecuted instantiation: gss_inquire_sec_context_by_oid.c:heim_base_cas_32_ Unexecuted instantiation: gss_inquire_names_for_mech.c:heim_base_cas_32_ Unexecuted instantiation: gss_inquire_mechs_for_name.c:heim_base_cas_32_ Unexecuted instantiation: gss_wrap_size_limit.c:heim_base_cas_32_ Unexecuted instantiation: gss_names.c:heim_base_cas_32_ Unexecuted instantiation: gss_verify.c:heim_base_cas_32_ Unexecuted instantiation: gss_display_name.c:heim_base_cas_32_ Unexecuted instantiation: gss_duplicate_oid.c:heim_base_cas_32_ Unexecuted instantiation: gss_duplicate_cred.c:heim_base_cas_32_ Unexecuted instantiation: gss_display_status.c:heim_base_cas_32_ Unexecuted instantiation: gss_release_buffer.c:heim_base_cas_32_ Unexecuted instantiation: gss_release_oid.c:heim_base_cas_32_ Unexecuted instantiation: gss_test_oid_set_member.c:heim_base_cas_32_ Unexecuted instantiation: gss_release_cred.c:heim_base_cas_32_ Unexecuted instantiation: gss_set_sec_context_option.c:heim_base_cas_32_ Unexecuted instantiation: gss_export_name.c:heim_base_cas_32_ Unexecuted instantiation: gss_seal.c:heim_base_cas_32_ Unexecuted instantiation: gss_acquire_cred.c:heim_base_cas_32_ Unexecuted instantiation: gss_unseal.c:heim_base_cas_32_ Unexecuted instantiation: gss_verify_mic.c:heim_base_cas_32_ Unexecuted instantiation: gss_accept_sec_context.c:heim_base_cas_32_ Unexecuted instantiation: gss_inquire_cred_by_mech.c:heim_base_cas_32_ Unexecuted instantiation: gss_indicate_mechs.c:heim_base_cas_32_ Unexecuted instantiation: gss_get_neg_mechs.c:heim_base_cas_32_ Unexecuted instantiation: gss_delete_sec_context.c:heim_base_cas_32_ Unexecuted instantiation: gss_sign.c:heim_base_cas_32_ Unexecuted instantiation: gss_utils.c:heim_base_cas_32_ Unexecuted instantiation: gss_init_sec_context.c:heim_base_cas_32_ Unexecuted instantiation: gss_oid_equal.c:heim_base_cas_32_ Unexecuted instantiation: gss_oid.c:heim_base_cas_32_ Unexecuted instantiation: gss_oid_to_str.c:heim_base_cas_32_ Unexecuted instantiation: gss_mo.c:heim_base_cas_32_ Unexecuted instantiation: gss_context_time.c:heim_base_cas_32_ Unexecuted instantiation: gss_encapsulate_token.c:heim_base_cas_32_ Unexecuted instantiation: gss_get_mic.c:heim_base_cas_32_ Unexecuted instantiation: gss_import_sec_context.c:heim_base_cas_32_ Unexecuted instantiation: gss_inquire_cred.c:heim_base_cas_32_ Unexecuted instantiation: gss_wrap.c:heim_base_cas_32_ Unexecuted instantiation: gss_import_name.c:heim_base_cas_32_ Unexecuted instantiation: gss_duplicate_name.c:heim_base_cas_32_ Unexecuted instantiation: gss_unwrap.c:heim_base_cas_32_ Unexecuted instantiation: gss_export_sec_context.c:heim_base_cas_32_ Unexecuted instantiation: gss_export_name_composite.c:heim_base_cas_32_ Unexecuted instantiation: gss_inquire_context.c:heim_base_cas_32_ Unexecuted instantiation: gss_release_name.c:heim_base_cas_32_ Unexecuted instantiation: gss_set_cred_option.c:heim_base_cas_32_ Unexecuted instantiation: gss_pseudo_random.c:heim_base_cas_32_ Unexecuted instantiation: gss_authorize_localname.c:heim_base_cas_32_ Unexecuted instantiation: gss_get_name_attribute.c:heim_base_cas_32_ Unexecuted instantiation: gssspi_exchange_meta_data.c:heim_base_cas_32_ Unexecuted instantiation: gssspi_query_mechanism_info.c:heim_base_cas_32_ Unexecuted instantiation: gssspi_query_meta_data.c:heim_base_cas_32_ |
87 | | |
88 | | static inline uint64_t |
89 | | heim_base_cas_64_(heim_base_atomic(uint64_t)*t, uint64_t e, uint64_t d) |
90 | 0 | { |
91 | 0 | return atomic_compare_exchange_strong(t, &e, d), e; |
92 | 0 | } Unexecuted instantiation: acache.c:heim_base_cas_64_ Unexecuted instantiation: add_et_list.c:heim_base_cas_64_ Unexecuted instantiation: addr_families.c:heim_base_cas_64_ Unexecuted instantiation: appdefault.c:heim_base_cas_64_ Unexecuted instantiation: asn1_glue.c:heim_base_cas_64_ Unexecuted instantiation: auth_context.c:heim_base_cas_64_ Unexecuted instantiation: authdata.c:heim_base_cas_64_ Unexecuted instantiation: build_ap_req.c:heim_base_cas_64_ Unexecuted instantiation: build_auth.c:heim_base_cas_64_ Unexecuted instantiation: cache.c:heim_base_cas_64_ Unexecuted instantiation: changepw.c:heim_base_cas_64_ Unexecuted instantiation: codec.c:heim_base_cas_64_ Unexecuted instantiation: config_file.c:heim_base_cas_64_ Unexecuted instantiation: constants.c:heim_base_cas_64_ Unexecuted instantiation: convert_creds.c:heim_base_cas_64_ Unexecuted instantiation: copy_host_realm.c:heim_base_cas_64_ Unexecuted instantiation: crc.c:heim_base_cas_64_ Unexecuted instantiation: creds.c:heim_base_cas_64_ Unexecuted instantiation: crypto-aes-sha1.c:heim_base_cas_64_ Unexecuted instantiation: crypto-aes-sha2.c:heim_base_cas_64_ Unexecuted instantiation: crypto-algs.c:heim_base_cas_64_ Unexecuted instantiation: crypto-arcfour.c:heim_base_cas_64_ Unexecuted instantiation: crypto-des3.c:heim_base_cas_64_ Unexecuted instantiation: crypto-des.c:heim_base_cas_64_ Unexecuted instantiation: crypto-des-common.c:heim_base_cas_64_ Unexecuted instantiation: crypto-evp.c:heim_base_cas_64_ Unexecuted instantiation: crypto-null.c:heim_base_cas_64_ Unexecuted instantiation: crypto-pk.c:heim_base_cas_64_ Unexecuted instantiation: crypto-rand.c:heim_base_cas_64_ Unexecuted instantiation: data.c:heim_base_cas_64_ Unexecuted instantiation: dcache.c:heim_base_cas_64_ Unexecuted instantiation: db_plugin.c:heim_base_cas_64_ Unexecuted instantiation: deprecated.c:heim_base_cas_64_ Unexecuted instantiation: eai_to_heim_errno.c:heim_base_cas_64_ Unexecuted instantiation: enomem.c:heim_base_cas_64_ Unexecuted instantiation: error_string.c:heim_base_cas_64_ Unexecuted instantiation: expand_hostname.c:heim_base_cas_64_ Unexecuted instantiation: fast.c:heim_base_cas_64_ Unexecuted instantiation: fcache.c:heim_base_cas_64_ Unexecuted instantiation: free.c:heim_base_cas_64_ Unexecuted instantiation: free_host_realm.c:heim_base_cas_64_ Unexecuted instantiation: generate_seq_number.c:heim_base_cas_64_ Unexecuted instantiation: generate_subkey.c:heim_base_cas_64_ Unexecuted instantiation: get_addrs.c:heim_base_cas_64_ Unexecuted instantiation: get_cred.c:heim_base_cas_64_ Unexecuted instantiation: get_default_principal.c:heim_base_cas_64_ Unexecuted instantiation: get_default_realm.c:heim_base_cas_64_ Unexecuted instantiation: get_for_creds.c:heim_base_cas_64_ Unexecuted instantiation: get_host_realm.c:heim_base_cas_64_ Unexecuted instantiation: get_in_tkt.c:heim_base_cas_64_ Unexecuted instantiation: get_port.c:heim_base_cas_64_ Unexecuted instantiation: init_creds.c:heim_base_cas_64_ Unexecuted instantiation: init_creds_pw.c:heim_base_cas_64_ Unexecuted instantiation: kcm.c:heim_base_cas_64_ Unexecuted instantiation: keyblock.c:heim_base_cas_64_ Unexecuted instantiation: keytab.c:heim_base_cas_64_ Unexecuted instantiation: keytab_any.c:heim_base_cas_64_ Unexecuted instantiation: keytab_file.c:heim_base_cas_64_ Unexecuted instantiation: keytab_memory.c:heim_base_cas_64_ Unexecuted instantiation: keytab_keyfile.c:heim_base_cas_64_ Unexecuted instantiation: krbhst.c:heim_base_cas_64_ Unexecuted instantiation: krcache.c:heim_base_cas_64_ Unexecuted instantiation: log.c:heim_base_cas_64_ Unexecuted instantiation: mcache.c:heim_base_cas_64_ Unexecuted instantiation: misc.c:heim_base_cas_64_ Unexecuted instantiation: mk_error.c:heim_base_cas_64_ Unexecuted instantiation: mk_priv.c:heim_base_cas_64_ Unexecuted instantiation: mk_rep.c:heim_base_cas_64_ Unexecuted instantiation: mk_req.c:heim_base_cas_64_ Unexecuted instantiation: mk_req_ext.c:heim_base_cas_64_ Unexecuted instantiation: mit_glue.c:heim_base_cas_64_ Unexecuted instantiation: net_read.c:heim_base_cas_64_ Unexecuted instantiation: net_write.c:heim_base_cas_64_ Unexecuted instantiation: n-fold.c:heim_base_cas_64_ Unexecuted instantiation: padata.c:heim_base_cas_64_ Unexecuted instantiation: pkinit.c:heim_base_cas_64_ Unexecuted instantiation: pkinit-ec.c:heim_base_cas_64_ Unexecuted instantiation: principal.c:heim_base_cas_64_ Unexecuted instantiation: prog_setup.c:heim_base_cas_64_ Unexecuted instantiation: pac.c:heim_base_cas_64_ Unexecuted instantiation: pcache.c:heim_base_cas_64_ Unexecuted instantiation: prompter_posix.c:heim_base_cas_64_ Unexecuted instantiation: rd_cred.c:heim_base_cas_64_ Unexecuted instantiation: rd_error.c:heim_base_cas_64_ Unexecuted instantiation: rd_priv.c:heim_base_cas_64_ Unexecuted instantiation: rd_rep.c:heim_base_cas_64_ Unexecuted instantiation: rd_req.c:heim_base_cas_64_ Unexecuted instantiation: replay.c:heim_base_cas_64_ Unexecuted instantiation: salt.c:heim_base_cas_64_ Unexecuted instantiation: salt-aes-sha1.c:heim_base_cas_64_ Unexecuted instantiation: salt-aes-sha2.c:heim_base_cas_64_ Unexecuted instantiation: salt-arcfour.c:heim_base_cas_64_ Unexecuted instantiation: salt-des3.c:heim_base_cas_64_ Unexecuted instantiation: salt-des.c:heim_base_cas_64_ Unexecuted instantiation: send_to_kdc.c:heim_base_cas_64_ Unexecuted instantiation: set_default_realm.c:heim_base_cas_64_ Unexecuted instantiation: store.c:heim_base_cas_64_ Unexecuted instantiation: store-int.c:heim_base_cas_64_ Unexecuted instantiation: store_emem.c:heim_base_cas_64_ Unexecuted instantiation: store_fd.c:heim_base_cas_64_ Unexecuted instantiation: store_mem.c:heim_base_cas_64_ Unexecuted instantiation: store_stdio.c:heim_base_cas_64_ Unexecuted instantiation: ticket.c:heim_base_cas_64_ Unexecuted instantiation: time.c:heim_base_cas_64_ Unexecuted instantiation: transited.c:heim_base_cas_64_ Unexecuted instantiation: version.c:heim_base_cas_64_ Unexecuted instantiation: warn.c:heim_base_cas_64_ Unexecuted instantiation: sp800-108-kdf.c:heim_base_cas_64_ Unexecuted instantiation: aname_to_localname.c:heim_base_cas_64_ Unexecuted instantiation: kuserok.c:heim_base_cas_64_ Unexecuted instantiation: kx509.c:heim_base_cas_64_ Unexecuted instantiation: mk_cred.c:heim_base_cas_64_ Unexecuted instantiation: krb5-glue.c:heim_base_cas_64_ Unexecuted instantiation: expand_path.c:heim_base_cas_64_ Unexecuted instantiation: plugin.c:heim_base_cas_64_ Unexecuted instantiation: context.c:heim_base_cas_64_ Unexecuted instantiation: crypto.c:heim_base_cas_64_ Unexecuted instantiation: heimbase.c:heim_base_cas_64_ Unexecuted instantiation: copy_ccache.c:heim_base_cas_64_ Unexecuted instantiation: delete_sec_context.c:heim_base_cas_64_ Unexecuted instantiation: duplicate_cred.c:heim_base_cas_64_ Unexecuted instantiation: init_sec_context.c:heim_base_cas_64_ Unexecuted instantiation: context_time.c:heim_base_cas_64_ Unexecuted instantiation: init.c:heim_base_cas_64_ Unexecuted instantiation: address_to_krb5addr.c:heim_base_cas_64_ Unexecuted instantiation: get_mic.c:heim_base_cas_64_ Unexecuted instantiation: inquire_context.c:heim_base_cas_64_ Unexecuted instantiation: add_cred.c:heim_base_cas_64_ Unexecuted instantiation: inquire_cred.c:heim_base_cas_64_ Unexecuted instantiation: inquire_cred_by_oid.c:heim_base_cas_64_ Unexecuted instantiation: inquire_cred_by_mech.c:heim_base_cas_64_ Unexecuted instantiation: inquire_mechs_for_name.c:heim_base_cas_64_ Unexecuted instantiation: inquire_names_for_mech.c:heim_base_cas_64_ Unexecuted instantiation: indicate_mechs.c:heim_base_cas_64_ Unexecuted instantiation: inquire_sec_context_by_oid.c:heim_base_cas_64_ Unexecuted instantiation: name_attrs.c:heim_base_cas_64_ Unexecuted instantiation: export_sec_context.c:heim_base_cas_64_ Unexecuted instantiation: import_sec_context.c:heim_base_cas_64_ Unexecuted instantiation: duplicate_name.c:heim_base_cas_64_ Unexecuted instantiation: import_name.c:heim_base_cas_64_ Unexecuted instantiation: compare_name.c:heim_base_cas_64_ Unexecuted instantiation: export_name.c:heim_base_cas_64_ Unexecuted instantiation: canonicalize_name.c:heim_base_cas_64_ Unexecuted instantiation: unwrap.c:heim_base_cas_64_ Unexecuted instantiation: wrap.c:heim_base_cas_64_ Unexecuted instantiation: release_name.c:heim_base_cas_64_ Unexecuted instantiation: cfx.c:heim_base_cas_64_ Unexecuted instantiation: 8003.c:heim_base_cas_64_ Unexecuted instantiation: arcfour.c:heim_base_cas_64_ Unexecuted instantiation: encapsulate.c:heim_base_cas_64_ Unexecuted instantiation: display_name.c:heim_base_cas_64_ Unexecuted instantiation: sequence.c:heim_base_cas_64_ Unexecuted instantiation: display_status.c:heim_base_cas_64_ Unexecuted instantiation: release_buffer.c:heim_base_cas_64_ Unexecuted instantiation: external.c:heim_base_cas_64_ Unexecuted instantiation: compat.c:heim_base_cas_64_ Unexecuted instantiation: ccache_name.c:heim_base_cas_64_ Unexecuted instantiation: acquire_cred.c:heim_base_cas_64_ Unexecuted instantiation: release_cred.c:heim_base_cas_64_ Unexecuted instantiation: store_cred.c:heim_base_cas_64_ Unexecuted instantiation: set_cred_option.c:heim_base_cas_64_ Unexecuted instantiation: decapsulate.c:heim_base_cas_64_ Unexecuted instantiation: verify_mic.c:heim_base_cas_64_ Unexecuted instantiation: accept_sec_context.c:heim_base_cas_64_ Unexecuted instantiation: set_sec_context_option.c:heim_base_cas_64_ Unexecuted instantiation: process_context_token.c:heim_base_cas_64_ Unexecuted instantiation: prf.c:heim_base_cas_64_ Unexecuted instantiation: aeap.c:heim_base_cas_64_ Unexecuted instantiation: pname_to_uid.c:heim_base_cas_64_ Unexecuted instantiation: authorize_localname.c:heim_base_cas_64_ Unexecuted instantiation: cred.c:heim_base_cas_64_ Unexecuted instantiation: gss_krb5.c:heim_base_cas_64_ Unexecuted instantiation: gss_mech_switch.c:heim_base_cas_64_ Unexecuted instantiation: gss_process_context_token.c:heim_base_cas_64_ Unexecuted instantiation: gss_buffer_set.c:heim_base_cas_64_ Unexecuted instantiation: gss_aeap.c:heim_base_cas_64_ Unexecuted instantiation: gss_add_cred.c:heim_base_cas_64_ Unexecuted instantiation: gss_add_cred_from.c:heim_base_cas_64_ Unexecuted instantiation: gss_acquire_cred_from.c:heim_base_cas_64_ Unexecuted instantiation: gss_cred.c:heim_base_cas_64_ Unexecuted instantiation: gss_store_cred_into.c:heim_base_cas_64_ Unexecuted instantiation: gss_add_oid_set_member.c:heim_base_cas_64_ Unexecuted instantiation: gss_compare_name.c:heim_base_cas_64_ Unexecuted instantiation: gss_release_oid_set.c:heim_base_cas_64_ Unexecuted instantiation: gss_create_empty_oid_set.c:heim_base_cas_64_ Unexecuted instantiation: gss_duplicate_oid_set.c:heim_base_cas_64_ Unexecuted instantiation: gss_decapsulate_token.c:heim_base_cas_64_ Unexecuted instantiation: gss_inquire_cred_by_oid.c:heim_base_cas_64_ Unexecuted instantiation: gss_canonicalize_name.c:heim_base_cas_64_ Unexecuted instantiation: gss_inquire_sec_context_by_oid.c:heim_base_cas_64_ Unexecuted instantiation: gss_inquire_names_for_mech.c:heim_base_cas_64_ Unexecuted instantiation: gss_inquire_mechs_for_name.c:heim_base_cas_64_ Unexecuted instantiation: gss_wrap_size_limit.c:heim_base_cas_64_ Unexecuted instantiation: gss_names.c:heim_base_cas_64_ Unexecuted instantiation: gss_verify.c:heim_base_cas_64_ Unexecuted instantiation: gss_display_name.c:heim_base_cas_64_ Unexecuted instantiation: gss_duplicate_oid.c:heim_base_cas_64_ Unexecuted instantiation: gss_duplicate_cred.c:heim_base_cas_64_ Unexecuted instantiation: gss_display_status.c:heim_base_cas_64_ Unexecuted instantiation: gss_release_buffer.c:heim_base_cas_64_ Unexecuted instantiation: gss_release_oid.c:heim_base_cas_64_ Unexecuted instantiation: gss_test_oid_set_member.c:heim_base_cas_64_ Unexecuted instantiation: gss_release_cred.c:heim_base_cas_64_ Unexecuted instantiation: gss_set_sec_context_option.c:heim_base_cas_64_ Unexecuted instantiation: gss_export_name.c:heim_base_cas_64_ Unexecuted instantiation: gss_seal.c:heim_base_cas_64_ Unexecuted instantiation: gss_acquire_cred.c:heim_base_cas_64_ Unexecuted instantiation: gss_unseal.c:heim_base_cas_64_ Unexecuted instantiation: gss_verify_mic.c:heim_base_cas_64_ Unexecuted instantiation: gss_accept_sec_context.c:heim_base_cas_64_ Unexecuted instantiation: gss_inquire_cred_by_mech.c:heim_base_cas_64_ Unexecuted instantiation: gss_indicate_mechs.c:heim_base_cas_64_ Unexecuted instantiation: gss_get_neg_mechs.c:heim_base_cas_64_ Unexecuted instantiation: gss_delete_sec_context.c:heim_base_cas_64_ Unexecuted instantiation: gss_sign.c:heim_base_cas_64_ Unexecuted instantiation: gss_utils.c:heim_base_cas_64_ Unexecuted instantiation: gss_init_sec_context.c:heim_base_cas_64_ Unexecuted instantiation: gss_oid_equal.c:heim_base_cas_64_ Unexecuted instantiation: gss_oid.c:heim_base_cas_64_ Unexecuted instantiation: gss_oid_to_str.c:heim_base_cas_64_ Unexecuted instantiation: gss_mo.c:heim_base_cas_64_ Unexecuted instantiation: gss_context_time.c:heim_base_cas_64_ Unexecuted instantiation: gss_encapsulate_token.c:heim_base_cas_64_ Unexecuted instantiation: gss_get_mic.c:heim_base_cas_64_ Unexecuted instantiation: gss_import_sec_context.c:heim_base_cas_64_ Unexecuted instantiation: gss_inquire_cred.c:heim_base_cas_64_ Unexecuted instantiation: gss_wrap.c:heim_base_cas_64_ Unexecuted instantiation: gss_import_name.c:heim_base_cas_64_ Unexecuted instantiation: gss_duplicate_name.c:heim_base_cas_64_ Unexecuted instantiation: gss_unwrap.c:heim_base_cas_64_ Unexecuted instantiation: gss_export_sec_context.c:heim_base_cas_64_ Unexecuted instantiation: gss_export_name_composite.c:heim_base_cas_64_ Unexecuted instantiation: gss_inquire_context.c:heim_base_cas_64_ Unexecuted instantiation: gss_release_name.c:heim_base_cas_64_ Unexecuted instantiation: gss_set_cred_option.c:heim_base_cas_64_ Unexecuted instantiation: gss_pseudo_random.c:heim_base_cas_64_ Unexecuted instantiation: gss_authorize_localname.c:heim_base_cas_64_ Unexecuted instantiation: gss_get_name_attribute.c:heim_base_cas_64_ Unexecuted instantiation: gssspi_exchange_meta_data.c:heim_base_cas_64_ Unexecuted instantiation: gssspi_query_mechanism_info.c:heim_base_cas_64_ Unexecuted instantiation: gssspi_query_meta_data.c:heim_base_cas_64_ |
93 | | |
94 | | #define heim_base_cas_pointer(t,e,d) heim_base_cas_pointer_((t), (e), (d)) |
95 | | #define heim_base_cas_32(t,e,d) heim_base_cas_32_((t), (e), (d)) |
96 | | #define heim_base_cas_64(t,e,d) heim_base_cas_64_((t), (e), (d)) |
97 | | |
98 | | #elif !defined(HEIM_BASE_ATOMICS_FALLBACK) && defined(__GNUC__) && defined(HAVE___SYNC_ADD_AND_FETCH) |
99 | | |
100 | | #define heim_base_atomic_barrier() __sync_synchronize() |
101 | | |
102 | | #define heim_base_atomic_inc_32(x) __sync_add_and_fetch((x), 1) |
103 | | #define heim_base_atomic_dec_32(x) __sync_sub_and_fetch((x), 1) |
104 | | #define heim_base_atomic_inc_64(x) __sync_add_and_fetch((x), 1) |
105 | | #define heim_base_atomic_dec_64(x) __sync_sub_and_fetch((x), 1) |
106 | | |
107 | | #ifndef __has_builtin |
108 | | #define __has_builtin(x) 0 |
109 | | #endif |
110 | | |
111 | | #if __has_builtin(__sync_swap) |
112 | | #define heim_base_exchange_pointer(t,v) __sync_swap((t), (v)) |
113 | | #else |
114 | | /* FIXME: some targets may only write the value 1 into *t */ |
115 | | #define heim_base_exchange_pointer(t,v) __sync_lock_test_and_set((t), (v)) |
116 | | #endif |
117 | | |
118 | | #define heim_base_exchange_32(t,v) heim_base_exchange_pointer((t), (v)) |
119 | | #define heim_base_exchange_64(t,v) heim_base_exchange_pointer((t), (v)) |
120 | | |
121 | | #define heim_base_cas_pointer(t,e,d) __sync_val_compare_and_swap((t), (e), (d)) |
122 | | #define heim_base_cas_32(t,e,d) __sync_val_compare_and_swap((t), (e), (d)) |
123 | | #define heim_base_cas_64(t,e,d) __sync_val_compare_and_swap((t), (e), (d)) |
124 | | |
125 | | #elif !defined(HEIM_BASE_ATOMICS_FALLBACK) && defined(__sun) |
126 | | |
127 | | #include <sys/atomic.h> |
128 | | #include <mbarrier.h> |
129 | | |
130 | | static inline void __heim_base_atomic_barrier(void) |
131 | | { |
132 | | __machine_rw_barrier(); |
133 | | } |
134 | | |
135 | | #define heim_base_atomic_barrier() __heim_base_atomic_barrier() |
136 | | |
137 | | #define heim_base_atomic(T) volatile T |
138 | | |
139 | | #define heim_base_atomic_inc_32(x) atomic_inc_32_nv((x)) |
140 | | #define heim_base_atomic_dec_32(x) atomic_dec_32_nv((x)) |
141 | | #define heim_base_atomic_inc_64(x) atomic_inc_64_nv((x)) |
142 | | #define heim_base_atomic_dec_64(x) atomic_dec_64_nv((x)) |
143 | | |
144 | | #define heim_base_exchange_pointer(t,v) atomic_swap_ptr((t), (void *)(v)) |
145 | | #define heim_base_exchange_32(t,v) atomic_swap_32((t), (v)) |
146 | | #define heim_base_exchange_64(t,v) atomic_swap_64((t), (v)) |
147 | | |
148 | | #define heim_base_cas_pointer(t,e,d) atomic_cas_ptr((t), (e), (d)) |
149 | | #define heim_base_cas_32(t,e,d) atomic_cas_32((t), (e), (d)) |
150 | | #define heim_base_cas_64(t,e,d) atomic_cas_64((t), (e), (d)) |
151 | | |
152 | | #elif !defined(HEIM_BASE_ATOMICS_FALLBACK) && defined(_AIX) |
153 | | |
154 | | #include <sys/atomic_op.h> |
155 | | |
156 | | #define heim_base_atomic_barrier() __isync() |
157 | | |
158 | | #define heim_base_atomic_inc_32(x) (fetch_and_add((atomic_p)(x), 1) + 1) |
159 | | #define heim_base_atomic_dec_32(x) (fetch_and_add((atomic_p)(x), -1) - 1) |
160 | | #define heim_base_atomic_inc_64(x) (fetch_and_addlp((atomic_l)(x), 1) + 1) |
161 | | #define heim_base_atomic_dec_64(x) (fetch_and_addlp((atomic_l)(x), -1) - 1) |
162 | | |
163 | | static inline void * |
164 | | heim_base_exchange_pointer(void *p, void *newval) |
165 | | { |
166 | | void *val = *(void **)p; |
167 | | |
168 | | while (!compare_and_swaplp((atomic_l)p, (long *)&val, (long)newval)) |
169 | | ; |
170 | | |
171 | | return val; |
172 | | } |
173 | | |
174 | | static inline uint32_t |
175 | | heim_base_exchange_32(uint32_t *p, uint32_t newval) |
176 | | { |
177 | | uint32_t val = *p; |
178 | | |
179 | | while (!compare_and_swap((atomic_p)p, (int *)&val, (int)newval)) |
180 | | ; |
181 | | |
182 | | return val; |
183 | | } |
184 | | |
185 | | static inline uint64_t |
186 | | heim_base_exchange_64(uint64_t *p, uint64_t newval) |
187 | | { |
188 | | uint64_t val = *p; |
189 | | |
190 | | while (!compare_and_swaplp((atomic_l)p, (long *)&val, (long)newval)) |
191 | | ; |
192 | | |
193 | | return val; |
194 | | } |
195 | | |
196 | | static inline void * |
197 | | heim_base_cas_pointer_(heim_base_atomic(void *)*t, void *e, void *d) |
198 | | { |
199 | | return compare_and_swaplp((atomic_l)t, &e, d), e; |
200 | | } |
201 | | |
202 | | static inline uint32_t |
203 | | heim_base_cas_32_(heim_base_atomic(uint32_t)*t, uint32_t e, uint32_t d) |
204 | | { |
205 | | return compare_and_swap((atomic_p)t, &e, d), e; |
206 | | } |
207 | | |
208 | | static inline uint64_t |
209 | | heim_base_cas_64_(heim_base_atomic(uint64_t)*t, uint64_t e, uint64_t d) |
210 | | { |
211 | | return compare_and_swaplp((atomic_l)t, &e, d), e; |
212 | | } |
213 | | |
214 | | #define heim_base_cas_pointer(t,e,d) heim_base_cas_pointer_((t), (e), (d)) |
215 | | #define heim_base_cas_32(t,e,d) heim_base_cas_32_((t), (e), (d)) |
216 | | #define heim_base_cas_64(t,e,d) heim_base_cas_64_((t), (e), (d)) |
217 | | |
218 | | #elif !defined(HEIM_BASE_ATOMICS_FALLBACK) && defined(_WIN32) |
219 | | |
220 | | #define heim_base_atomic_barrier() MemoryBarrier() |
221 | | |
222 | | #define heim_base_atomic_inc_32(x) InterlockedIncrement(x) |
223 | | #define heim_base_atomic_dec_32(x) InterlockedDecrement(x) |
224 | | #define heim_base_atomic_inc_64(x) InterlockedIncrement64(x) |
225 | | #define heim_base_atomic_dec_64(x) InterlockedDecrement64(x) |
226 | | |
227 | | #define heim_base_exchange_pointer(t,v) InterlockedExchangePointer((PVOID volatile *)(t), (PVOID)(v)) |
228 | | #define heim_base_exchange_32(t,v) ((ULONG)InterlockedExchange((LONG volatile *)(t), (LONG)(v))) |
229 | | #define heim_base_exchange_64(t,v) ((ULONG64)InterlockedExchange64((ULONG64 volatile *)(t), (LONG64)(v))) |
230 | | |
231 | | #define heim_base_cas_pointer(t,e,d) InterlockedCompareExchangePointer((PVOID volatile *)(t), (d), (e)) |
232 | | #define heim_base_cas_32(t,e,d) InterlockedCompareExchange ((LONG volatile *)(t), (d), (e)) |
233 | | #define heim_base_cas_64(t,e,d) InterlockedCompareExchange64((ULONG64 volatile *)(t), (d), (e)) |
234 | | |
235 | | #else |
236 | | |
237 | | #define heim_base_atomic(T) volatile T |
238 | | #define heim_base_atomic_barrier() |
239 | | #define heim_base_atomic_load(x) (*(x)) |
240 | | #define heim_base_atomic_init(t, v) do { (*(t) = (v)); } while (0) |
241 | | #define heim_base_atomic_store(t, v) do { (*(t) = (v)); } while (0) |
242 | | |
243 | | #include <heim_threads.h> |
244 | | |
245 | | #define HEIM_BASE_NEED_ATOMIC_MUTEX 1 |
246 | | |
247 | | static inline uint32_t |
248 | | heim_base_atomic_inc_32(heim_base_atomic(uint32_t) *x) |
249 | | { |
250 | | uint32_t t; |
251 | | HEIMDAL_MUTEX_lock(heim_base_mutex()); |
252 | | t = ++(*x); |
253 | | HEIMDAL_MUTEX_unlock(heim_base_mutex()); |
254 | | return t; |
255 | | } |
256 | | |
257 | | static inline uint32_t |
258 | | heim_base_atomic_dec_32(heim_base_atomic(uint32_t) *x) |
259 | | { |
260 | | uint32_t t; |
261 | | HEIMDAL_MUTEX_lock(heim_base_mutex()); |
262 | | t = --(*x); |
263 | | HEIMDAL_MUTEX_unlock(heim_base_mutex()); |
264 | | return t; |
265 | | } |
266 | | |
267 | | static inline uint64_t |
268 | | heim_base_atomic_inc_64(heim_base_atomic(uint64_t) *x) |
269 | | { |
270 | | uint64_t t; |
271 | | HEIMDAL_MUTEX_lock(heim_base_mutex()); |
272 | | t = ++(*x); |
273 | | HEIMDAL_MUTEX_unlock(heim_base_mutex()); |
274 | | return t; |
275 | | } |
276 | | |
277 | | static inline uint64_t |
278 | | heim_base_atomic_dec_64(heim_base_atomic(uint64_t) *x) |
279 | | { |
280 | | uint64_t t; |
281 | | HEIMDAL_MUTEX_lock(heim_base_mutex()); |
282 | | t = --(*x); |
283 | | HEIMDAL_MUTEX_unlock(heim_base_mutex()); |
284 | | return t; |
285 | | } |
286 | | |
287 | | static inline void * |
288 | | heim_base_exchange_pointer(heim_base_atomic(void *)target, void *value) |
289 | | { |
290 | | void *old; |
291 | | HEIMDAL_MUTEX_lock(heim_base_mutex()); |
292 | | old = *(void **)target; |
293 | | *(void **)target = value; |
294 | | HEIMDAL_MUTEX_unlock(heim_base_mutex()); |
295 | | return old; |
296 | | } |
297 | | |
298 | | static inline uint32_t |
299 | | heim_base_exchange_32(heim_base_atomic(uint32_t) *target, uint32_t newval) |
300 | | { |
301 | | uint32_t old; |
302 | | HEIMDAL_MUTEX_lock(heim_base_mutex()); |
303 | | old = *target; |
304 | | *target = newval; |
305 | | HEIMDAL_MUTEX_unlock(heim_base_mutex()); |
306 | | return old; |
307 | | } |
308 | | |
309 | | static inline uint64_t |
310 | | heim_base_exchange_64(heim_base_atomic(uint64_t) *target, uint64_t newval) |
311 | | { |
312 | | uint64_t old; |
313 | | HEIMDAL_MUTEX_lock(heim_base_mutex()); |
314 | | old = *target; |
315 | | *target = newval; |
316 | | HEIMDAL_MUTEX_unlock(heim_base_mutex()); |
317 | | return old; |
318 | | } |
319 | | |
320 | | static inline void * |
321 | | heim_base_cas_pointer(heim_base_atomic(void *)target, void *expected, void *desired) |
322 | | { |
323 | | void *old; |
324 | | HEIMDAL_MUTEX_lock(heim_base_mutex()); |
325 | | if ((old = *(void **)target) == expected) |
326 | | *(void **)target = desired; |
327 | | HEIMDAL_MUTEX_unlock(heim_base_mutex()); |
328 | | return old; |
329 | | } |
330 | | |
331 | | static inline uint32_t |
332 | | heim_base_cas_32(heim_base_atomic(uint32_t) *target, uint32_t expected, uint32_t desired) |
333 | | { |
334 | | uint32_t old; |
335 | | HEIMDAL_MUTEX_lock(heim_base_mutex()); |
336 | | if ((old = *(uint32_t *)target) == expected) |
337 | | *target = desired; |
338 | | HEIMDAL_MUTEX_unlock(heim_base_mutex()); |
339 | | return old; |
340 | | } |
341 | | |
342 | | static inline uint64_t |
343 | | heim_base_cas_64(heim_base_atomic(uint64_t) *target, uint64_t expected,uint64_t desired) |
344 | | { |
345 | | uint64_t old; |
346 | | HEIMDAL_MUTEX_lock(heim_base_mutex()); |
347 | | if ((old = *(uint64_t *)target) == expected) |
348 | | *target = desired; |
349 | | HEIMDAL_MUTEX_unlock(heim_base_mutex()); |
350 | | return old; |
351 | | } |
352 | | |
353 | | #endif /* defined(__GNUC__) && defined(HAVE___SYNC_ADD_AND_FETCH) */ |
354 | | |
355 | | #ifndef heim_base_atomic |
356 | | #define heim_base_atomic(T) T |
357 | | #endif |
358 | | |
359 | | #ifndef heim_base_atomic_barrier |
360 | 0 | static inline void heim_base_atomic_barrier(void) { return; } Unexecuted instantiation: acache.c:heim_base_atomic_barrier Unexecuted instantiation: add_et_list.c:heim_base_atomic_barrier Unexecuted instantiation: addr_families.c:heim_base_atomic_barrier Unexecuted instantiation: appdefault.c:heim_base_atomic_barrier Unexecuted instantiation: asn1_glue.c:heim_base_atomic_barrier Unexecuted instantiation: auth_context.c:heim_base_atomic_barrier Unexecuted instantiation: authdata.c:heim_base_atomic_barrier Unexecuted instantiation: build_ap_req.c:heim_base_atomic_barrier Unexecuted instantiation: build_auth.c:heim_base_atomic_barrier Unexecuted instantiation: cache.c:heim_base_atomic_barrier Unexecuted instantiation: changepw.c:heim_base_atomic_barrier Unexecuted instantiation: codec.c:heim_base_atomic_barrier Unexecuted instantiation: config_file.c:heim_base_atomic_barrier Unexecuted instantiation: constants.c:heim_base_atomic_barrier Unexecuted instantiation: convert_creds.c:heim_base_atomic_barrier Unexecuted instantiation: copy_host_realm.c:heim_base_atomic_barrier Unexecuted instantiation: crc.c:heim_base_atomic_barrier Unexecuted instantiation: creds.c:heim_base_atomic_barrier Unexecuted instantiation: crypto-aes-sha1.c:heim_base_atomic_barrier Unexecuted instantiation: crypto-aes-sha2.c:heim_base_atomic_barrier Unexecuted instantiation: crypto-algs.c:heim_base_atomic_barrier Unexecuted instantiation: crypto-arcfour.c:heim_base_atomic_barrier Unexecuted instantiation: crypto-des3.c:heim_base_atomic_barrier Unexecuted instantiation: crypto-des.c:heim_base_atomic_barrier Unexecuted instantiation: crypto-des-common.c:heim_base_atomic_barrier Unexecuted instantiation: crypto-evp.c:heim_base_atomic_barrier Unexecuted instantiation: crypto-null.c:heim_base_atomic_barrier Unexecuted instantiation: crypto-pk.c:heim_base_atomic_barrier Unexecuted instantiation: crypto-rand.c:heim_base_atomic_barrier Unexecuted instantiation: data.c:heim_base_atomic_barrier Unexecuted instantiation: dcache.c:heim_base_atomic_barrier Unexecuted instantiation: db_plugin.c:heim_base_atomic_barrier Unexecuted instantiation: deprecated.c:heim_base_atomic_barrier Unexecuted instantiation: eai_to_heim_errno.c:heim_base_atomic_barrier Unexecuted instantiation: enomem.c:heim_base_atomic_barrier Unexecuted instantiation: error_string.c:heim_base_atomic_barrier Unexecuted instantiation: expand_hostname.c:heim_base_atomic_barrier Unexecuted instantiation: fast.c:heim_base_atomic_barrier Unexecuted instantiation: fcache.c:heim_base_atomic_barrier Unexecuted instantiation: free.c:heim_base_atomic_barrier Unexecuted instantiation: free_host_realm.c:heim_base_atomic_barrier Unexecuted instantiation: generate_seq_number.c:heim_base_atomic_barrier Unexecuted instantiation: generate_subkey.c:heim_base_atomic_barrier Unexecuted instantiation: get_addrs.c:heim_base_atomic_barrier Unexecuted instantiation: get_cred.c:heim_base_atomic_barrier Unexecuted instantiation: get_default_principal.c:heim_base_atomic_barrier Unexecuted instantiation: get_default_realm.c:heim_base_atomic_barrier Unexecuted instantiation: get_for_creds.c:heim_base_atomic_barrier Unexecuted instantiation: get_host_realm.c:heim_base_atomic_barrier Unexecuted instantiation: get_in_tkt.c:heim_base_atomic_barrier Unexecuted instantiation: get_port.c:heim_base_atomic_barrier Unexecuted instantiation: init_creds.c:heim_base_atomic_barrier Unexecuted instantiation: init_creds_pw.c:heim_base_atomic_barrier Unexecuted instantiation: kcm.c:heim_base_atomic_barrier Unexecuted instantiation: keyblock.c:heim_base_atomic_barrier Unexecuted instantiation: keytab.c:heim_base_atomic_barrier Unexecuted instantiation: keytab_any.c:heim_base_atomic_barrier Unexecuted instantiation: keytab_file.c:heim_base_atomic_barrier Unexecuted instantiation: keytab_memory.c:heim_base_atomic_barrier Unexecuted instantiation: keytab_keyfile.c:heim_base_atomic_barrier Unexecuted instantiation: krbhst.c:heim_base_atomic_barrier Unexecuted instantiation: krcache.c:heim_base_atomic_barrier Unexecuted instantiation: log.c:heim_base_atomic_barrier Unexecuted instantiation: mcache.c:heim_base_atomic_barrier Unexecuted instantiation: misc.c:heim_base_atomic_barrier Unexecuted instantiation: mk_error.c:heim_base_atomic_barrier Unexecuted instantiation: mk_priv.c:heim_base_atomic_barrier Unexecuted instantiation: mk_rep.c:heim_base_atomic_barrier Unexecuted instantiation: mk_req.c:heim_base_atomic_barrier Unexecuted instantiation: mk_req_ext.c:heim_base_atomic_barrier Unexecuted instantiation: mit_glue.c:heim_base_atomic_barrier Unexecuted instantiation: net_read.c:heim_base_atomic_barrier Unexecuted instantiation: net_write.c:heim_base_atomic_barrier Unexecuted instantiation: n-fold.c:heim_base_atomic_barrier Unexecuted instantiation: padata.c:heim_base_atomic_barrier Unexecuted instantiation: pkinit.c:heim_base_atomic_barrier Unexecuted instantiation: pkinit-ec.c:heim_base_atomic_barrier Unexecuted instantiation: principal.c:heim_base_atomic_barrier Unexecuted instantiation: prog_setup.c:heim_base_atomic_barrier Unexecuted instantiation: pac.c:heim_base_atomic_barrier Unexecuted instantiation: pcache.c:heim_base_atomic_barrier Unexecuted instantiation: prompter_posix.c:heim_base_atomic_barrier Unexecuted instantiation: rd_cred.c:heim_base_atomic_barrier Unexecuted instantiation: rd_error.c:heim_base_atomic_barrier Unexecuted instantiation: rd_priv.c:heim_base_atomic_barrier Unexecuted instantiation: rd_rep.c:heim_base_atomic_barrier Unexecuted instantiation: rd_req.c:heim_base_atomic_barrier Unexecuted instantiation: replay.c:heim_base_atomic_barrier Unexecuted instantiation: salt.c:heim_base_atomic_barrier Unexecuted instantiation: salt-aes-sha1.c:heim_base_atomic_barrier Unexecuted instantiation: salt-aes-sha2.c:heim_base_atomic_barrier Unexecuted instantiation: salt-arcfour.c:heim_base_atomic_barrier Unexecuted instantiation: salt-des3.c:heim_base_atomic_barrier Unexecuted instantiation: salt-des.c:heim_base_atomic_barrier Unexecuted instantiation: send_to_kdc.c:heim_base_atomic_barrier Unexecuted instantiation: set_default_realm.c:heim_base_atomic_barrier Unexecuted instantiation: store.c:heim_base_atomic_barrier Unexecuted instantiation: store-int.c:heim_base_atomic_barrier Unexecuted instantiation: store_emem.c:heim_base_atomic_barrier Unexecuted instantiation: store_fd.c:heim_base_atomic_barrier Unexecuted instantiation: store_mem.c:heim_base_atomic_barrier Unexecuted instantiation: store_stdio.c:heim_base_atomic_barrier Unexecuted instantiation: ticket.c:heim_base_atomic_barrier Unexecuted instantiation: time.c:heim_base_atomic_barrier Unexecuted instantiation: transited.c:heim_base_atomic_barrier Unexecuted instantiation: version.c:heim_base_atomic_barrier Unexecuted instantiation: warn.c:heim_base_atomic_barrier Unexecuted instantiation: sp800-108-kdf.c:heim_base_atomic_barrier Unexecuted instantiation: aname_to_localname.c:heim_base_atomic_barrier Unexecuted instantiation: kuserok.c:heim_base_atomic_barrier Unexecuted instantiation: kx509.c:heim_base_atomic_barrier Unexecuted instantiation: mk_cred.c:heim_base_atomic_barrier Unexecuted instantiation: krb5-glue.c:heim_base_atomic_barrier Unexecuted instantiation: expand_path.c:heim_base_atomic_barrier Unexecuted instantiation: plugin.c:heim_base_atomic_barrier Unexecuted instantiation: context.c:heim_base_atomic_barrier Unexecuted instantiation: crypto.c:heim_base_atomic_barrier Unexecuted instantiation: heimbase.c:heim_base_atomic_barrier Unexecuted instantiation: copy_ccache.c:heim_base_atomic_barrier Unexecuted instantiation: delete_sec_context.c:heim_base_atomic_barrier Unexecuted instantiation: duplicate_cred.c:heim_base_atomic_barrier Unexecuted instantiation: init_sec_context.c:heim_base_atomic_barrier Unexecuted instantiation: context_time.c:heim_base_atomic_barrier Unexecuted instantiation: init.c:heim_base_atomic_barrier Unexecuted instantiation: address_to_krb5addr.c:heim_base_atomic_barrier Unexecuted instantiation: get_mic.c:heim_base_atomic_barrier Unexecuted instantiation: inquire_context.c:heim_base_atomic_barrier Unexecuted instantiation: add_cred.c:heim_base_atomic_barrier Unexecuted instantiation: inquire_cred.c:heim_base_atomic_barrier Unexecuted instantiation: inquire_cred_by_oid.c:heim_base_atomic_barrier Unexecuted instantiation: inquire_cred_by_mech.c:heim_base_atomic_barrier Unexecuted instantiation: inquire_mechs_for_name.c:heim_base_atomic_barrier Unexecuted instantiation: inquire_names_for_mech.c:heim_base_atomic_barrier Unexecuted instantiation: indicate_mechs.c:heim_base_atomic_barrier Unexecuted instantiation: inquire_sec_context_by_oid.c:heim_base_atomic_barrier Unexecuted instantiation: name_attrs.c:heim_base_atomic_barrier Unexecuted instantiation: export_sec_context.c:heim_base_atomic_barrier Unexecuted instantiation: import_sec_context.c:heim_base_atomic_barrier Unexecuted instantiation: duplicate_name.c:heim_base_atomic_barrier Unexecuted instantiation: import_name.c:heim_base_atomic_barrier Unexecuted instantiation: compare_name.c:heim_base_atomic_barrier Unexecuted instantiation: export_name.c:heim_base_atomic_barrier Unexecuted instantiation: canonicalize_name.c:heim_base_atomic_barrier Unexecuted instantiation: unwrap.c:heim_base_atomic_barrier Unexecuted instantiation: wrap.c:heim_base_atomic_barrier Unexecuted instantiation: release_name.c:heim_base_atomic_barrier Unexecuted instantiation: cfx.c:heim_base_atomic_barrier Unexecuted instantiation: 8003.c:heim_base_atomic_barrier Unexecuted instantiation: arcfour.c:heim_base_atomic_barrier Unexecuted instantiation: encapsulate.c:heim_base_atomic_barrier Unexecuted instantiation: display_name.c:heim_base_atomic_barrier Unexecuted instantiation: sequence.c:heim_base_atomic_barrier Unexecuted instantiation: display_status.c:heim_base_atomic_barrier Unexecuted instantiation: release_buffer.c:heim_base_atomic_barrier Unexecuted instantiation: external.c:heim_base_atomic_barrier Unexecuted instantiation: compat.c:heim_base_atomic_barrier Unexecuted instantiation: ccache_name.c:heim_base_atomic_barrier Unexecuted instantiation: acquire_cred.c:heim_base_atomic_barrier Unexecuted instantiation: release_cred.c:heim_base_atomic_barrier Unexecuted instantiation: store_cred.c:heim_base_atomic_barrier Unexecuted instantiation: set_cred_option.c:heim_base_atomic_barrier Unexecuted instantiation: decapsulate.c:heim_base_atomic_barrier Unexecuted instantiation: verify_mic.c:heim_base_atomic_barrier Unexecuted instantiation: accept_sec_context.c:heim_base_atomic_barrier Unexecuted instantiation: set_sec_context_option.c:heim_base_atomic_barrier Unexecuted instantiation: process_context_token.c:heim_base_atomic_barrier Unexecuted instantiation: prf.c:heim_base_atomic_barrier Unexecuted instantiation: aeap.c:heim_base_atomic_barrier Unexecuted instantiation: pname_to_uid.c:heim_base_atomic_barrier Unexecuted instantiation: authorize_localname.c:heim_base_atomic_barrier Unexecuted instantiation: cred.c:heim_base_atomic_barrier Unexecuted instantiation: gss_krb5.c:heim_base_atomic_barrier Unexecuted instantiation: gss_mech_switch.c:heim_base_atomic_barrier Unexecuted instantiation: gss_process_context_token.c:heim_base_atomic_barrier Unexecuted instantiation: gss_buffer_set.c:heim_base_atomic_barrier Unexecuted instantiation: gss_aeap.c:heim_base_atomic_barrier Unexecuted instantiation: gss_add_cred.c:heim_base_atomic_barrier Unexecuted instantiation: gss_add_cred_from.c:heim_base_atomic_barrier Unexecuted instantiation: gss_acquire_cred_from.c:heim_base_atomic_barrier Unexecuted instantiation: gss_cred.c:heim_base_atomic_barrier Unexecuted instantiation: gss_store_cred_into.c:heim_base_atomic_barrier Unexecuted instantiation: gss_add_oid_set_member.c:heim_base_atomic_barrier Unexecuted instantiation: gss_compare_name.c:heim_base_atomic_barrier Unexecuted instantiation: gss_release_oid_set.c:heim_base_atomic_barrier Unexecuted instantiation: gss_create_empty_oid_set.c:heim_base_atomic_barrier Unexecuted instantiation: gss_duplicate_oid_set.c:heim_base_atomic_barrier Unexecuted instantiation: gss_decapsulate_token.c:heim_base_atomic_barrier Unexecuted instantiation: gss_inquire_cred_by_oid.c:heim_base_atomic_barrier Unexecuted instantiation: gss_canonicalize_name.c:heim_base_atomic_barrier Unexecuted instantiation: gss_inquire_sec_context_by_oid.c:heim_base_atomic_barrier Unexecuted instantiation: gss_inquire_names_for_mech.c:heim_base_atomic_barrier Unexecuted instantiation: gss_inquire_mechs_for_name.c:heim_base_atomic_barrier Unexecuted instantiation: gss_wrap_size_limit.c:heim_base_atomic_barrier Unexecuted instantiation: gss_names.c:heim_base_atomic_barrier Unexecuted instantiation: gss_verify.c:heim_base_atomic_barrier Unexecuted instantiation: gss_display_name.c:heim_base_atomic_barrier Unexecuted instantiation: gss_duplicate_oid.c:heim_base_atomic_barrier Unexecuted instantiation: gss_duplicate_cred.c:heim_base_atomic_barrier Unexecuted instantiation: gss_display_status.c:heim_base_atomic_barrier Unexecuted instantiation: gss_release_buffer.c:heim_base_atomic_barrier Unexecuted instantiation: gss_release_oid.c:heim_base_atomic_barrier Unexecuted instantiation: gss_test_oid_set_member.c:heim_base_atomic_barrier Unexecuted instantiation: gss_release_cred.c:heim_base_atomic_barrier Unexecuted instantiation: gss_set_sec_context_option.c:heim_base_atomic_barrier Unexecuted instantiation: gss_export_name.c:heim_base_atomic_barrier Unexecuted instantiation: gss_seal.c:heim_base_atomic_barrier Unexecuted instantiation: gss_acquire_cred.c:heim_base_atomic_barrier Unexecuted instantiation: gss_unseal.c:heim_base_atomic_barrier Unexecuted instantiation: gss_verify_mic.c:heim_base_atomic_barrier Unexecuted instantiation: gss_accept_sec_context.c:heim_base_atomic_barrier Unexecuted instantiation: gss_inquire_cred_by_mech.c:heim_base_atomic_barrier Unexecuted instantiation: gss_indicate_mechs.c:heim_base_atomic_barrier Unexecuted instantiation: gss_get_neg_mechs.c:heim_base_atomic_barrier Unexecuted instantiation: gss_delete_sec_context.c:heim_base_atomic_barrier Unexecuted instantiation: gss_sign.c:heim_base_atomic_barrier Unexecuted instantiation: gss_utils.c:heim_base_atomic_barrier Unexecuted instantiation: gss_init_sec_context.c:heim_base_atomic_barrier Unexecuted instantiation: gss_oid_equal.c:heim_base_atomic_barrier Unexecuted instantiation: gss_oid.c:heim_base_atomic_barrier Unexecuted instantiation: gss_oid_to_str.c:heim_base_atomic_barrier Unexecuted instantiation: gss_mo.c:heim_base_atomic_barrier Unexecuted instantiation: gss_context_time.c:heim_base_atomic_barrier Unexecuted instantiation: gss_encapsulate_token.c:heim_base_atomic_barrier Unexecuted instantiation: gss_get_mic.c:heim_base_atomic_barrier Unexecuted instantiation: gss_import_sec_context.c:heim_base_atomic_barrier Unexecuted instantiation: gss_inquire_cred.c:heim_base_atomic_barrier Unexecuted instantiation: gss_wrap.c:heim_base_atomic_barrier Unexecuted instantiation: gss_import_name.c:heim_base_atomic_barrier Unexecuted instantiation: gss_duplicate_name.c:heim_base_atomic_barrier Unexecuted instantiation: gss_unwrap.c:heim_base_atomic_barrier Unexecuted instantiation: gss_export_sec_context.c:heim_base_atomic_barrier Unexecuted instantiation: gss_export_name_composite.c:heim_base_atomic_barrier Unexecuted instantiation: gss_inquire_context.c:heim_base_atomic_barrier Unexecuted instantiation: gss_release_name.c:heim_base_atomic_barrier Unexecuted instantiation: gss_set_cred_option.c:heim_base_atomic_barrier Unexecuted instantiation: gss_pseudo_random.c:heim_base_atomic_barrier Unexecuted instantiation: gss_authorize_localname.c:heim_base_atomic_barrier Unexecuted instantiation: gss_get_name_attribute.c:heim_base_atomic_barrier Unexecuted instantiation: gssspi_exchange_meta_data.c:heim_base_atomic_barrier Unexecuted instantiation: gssspi_query_mechanism_info.c:heim_base_atomic_barrier Unexecuted instantiation: gssspi_query_meta_data.c:heim_base_atomic_barrier |
361 | | #endif |
362 | | |
363 | | #ifndef heim_base_atomic_load |
364 | | #define heim_base_atomic_load(x) (heim_base_atomic_barrier(), *(x)) |
365 | | #endif |
366 | | |
367 | | #ifndef heim_base_atomic_init |
368 | | #define heim_base_atomic_init(t, v) do { (*(t) = (v)); } while (0) |
369 | | #endif |
370 | | |
371 | | #ifndef heim_base_atomic_store |
372 | | #define heim_base_atomic_store(t, v) do { \ |
373 | | (*(t) = (v)); \ |
374 | | heim_base_atomic_barrier(); \ |
375 | | } while (0) |
376 | | #endif |
377 | | |
378 | | #if SIZEOF_TIME_T == 8 |
379 | | #define heim_base_exchange_time_t(t,v) heim_base_exchange_64((t), (v)) |
380 | | #elif SIZEOF_TIME_T == 4 |
381 | | #define heim_base_exchange_time_t(t,v) heim_base_exchange_32((t), (v)) |
382 | | #else |
383 | | #error set SIZEOF_TIME_T for your platform |
384 | | #endif |
385 | | |
386 | | #endif /* HEIM_BASE_ATOMICS_H */ |