# Tell warlock not to pursue these calling sequences:

disallow _tnfctl_sym_find_in_obj \
	 _tnfctl_traverse_object \
	 _tnfctl_traverse_rela \
	 read_a_probe

disallow _tnfctl_sym_find_in_obj \
	 _tnfctl_traverse_object \
	 _tnfctl_traverse_dynsym \
	 read_a_probe

disallow dynsec_num \
	 _tnfctl_traverse_object \
	 _tnfctl_traverse_rela \
	 read_a_probe

disallow dynsec_num \
	_tnfctl_traverse_object \
	_tnfctl_traverse_dynsym \
	read_a_probe

# Arrange for warlock_dummy() to call all libtnfctl entry points.
interfaces=`sed -n 's/^[ 	]*\(tnfctl_.*\);$/\1/p' mapfile-vers`
add warlock_dummy/fp target $interfaces
root $interfaces	# make them all roots, too

# Arrange for libtnfctl callbacks to call warlock_dummy().  Theoretically,
# a client's routine invoked by any of these callbacks could call into any
# public interface.
add pr_func_args::func_p        target warlock_dummy
add tnfctl_handle::create_func  target warlock_dummy
add tnfctl_handle::destroy_func target warlock_dummy

# Miscellany
ignore prb_status_str decode_compare comb_compare
ignore real_dlopen real_dlclose
root _tnfctl_dlclose _tnfctl_dlopen	# these can get called at any time
ignore `members tnf_probevals_t`
