Coverage Report

Created: 2025-07-23 07:04

/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 */