/root/src/xen/xen/include/xen/radix-tree.h
Line | Count | Source (jump to first uncovered line) |
1 | | /* |
2 | | * Copyright (C) 2001 Momchil Velikov |
3 | | * Portions Copyright (C) 2001 Christoph Hellwig |
4 | | * Copyright (C) 2006 Nick Piggin |
5 | | * |
6 | | * This program is free software; you can redistribute it and/or |
7 | | * modify it under the terms of the GNU General Public License as |
8 | | * published by the Free Software Foundation; either version 2, or (at |
9 | | * your option) any later version. |
10 | | * |
11 | | * This program is distributed in the hope that it will be useful, but |
12 | | * WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
14 | | * General Public License for more details. |
15 | | * |
16 | | * You should have received a copy of the GNU General Public License |
17 | | * along with this program; If not, see <http://www.gnu.org/licenses/>. |
18 | | */ |
19 | | #ifndef _XEN_RADIX_TREE_H |
20 | | #define _XEN_RADIX_TREE_H |
21 | | |
22 | | #include <xen/types.h> |
23 | | #include <xen/lib.h> |
24 | | #include <xen/rcupdate.h> |
25 | | |
26 | | /* |
27 | | * An indirect pointer (root->rnode pointing to a radix_tree_node, rather |
28 | | * than a data item) is signalled by the low bit set in the root->rnode |
29 | | * pointer. |
30 | | * |
31 | | * In this case root->height is > 0, but the indirect pointer tests are |
32 | | * needed for RCU lookups (because root->height is unreliable). The only |
33 | | * time callers need worry about this is when doing a lookup_slot under |
34 | | * RCU. |
35 | | * |
36 | | * Indirect pointer in fact is also used to tag the last pointer of a node |
37 | | * when it is shrunk, before we rcu free the node. See shrink code for |
38 | | * details. |
39 | | */ |
40 | 309k | #define RADIX_TREE_INDIRECT_PTR 1 |
41 | | |
42 | | static inline int radix_tree_is_indirect_ptr(void *ptr) |
43 | 273k | { |
44 | 273k | return (int)((unsigned long)ptr & RADIX_TREE_INDIRECT_PTR); |
45 | 273k | } Unexecuted instantiation: mm.c:radix_tree_is_indirect_ptr Unexecuted instantiation: ro-page-fault.c:radix_tree_is_indirect_ptr Unexecuted instantiation: misc-hypercalls.c:radix_tree_is_indirect_ptr Unexecuted instantiation: iret.c:radix_tree_is_indirect_ptr Unexecuted instantiation: emul-priv-op.c:radix_tree_is_indirect_ptr Unexecuted instantiation: emul-inv-op.c:radix_tree_is_indirect_ptr Unexecuted instantiation: emul-gate-op.c:radix_tree_is_indirect_ptr Unexecuted instantiation: descriptor-tables.c:radix_tree_is_indirect_ptr Unexecuted instantiation: callback.c:radix_tree_is_indirect_ptr Unexecuted instantiation: backtrace.c:radix_tree_is_indirect_ptr Unexecuted instantiation: op_model_athlon.c:radix_tree_is_indirect_ptr Unexecuted instantiation: op_model_ppro.c:radix_tree_is_indirect_ptr Unexecuted instantiation: nmi_int.c:radix_tree_is_indirect_ptr Unexecuted instantiation: nested_ept.c:radix_tree_is_indirect_ptr Unexecuted instantiation: nested_hap.c:radix_tree_is_indirect_ptr Unexecuted instantiation: hap.c:radix_tree_is_indirect_ptr Unexecuted instantiation: multi.c:radix_tree_is_indirect_ptr Unexecuted instantiation: mem_sharing.c:radix_tree_is_indirect_ptr Unexecuted instantiation: mem_paging.c:radix_tree_is_indirect_ptr Unexecuted instantiation: guest_walk.c:radix_tree_is_indirect_ptr Unexecuted instantiation: altp2m.c:radix_tree_is_indirect_ptr Unexecuted instantiation: p2m-pod.c:radix_tree_is_indirect_ptr Unexecuted instantiation: p2m-ept.c:radix_tree_is_indirect_ptr Unexecuted instantiation: p2m-pt.c:radix_tree_is_indirect_ptr Unexecuted instantiation: p2m.c:radix_tree_is_indirect_ptr Unexecuted instantiation: paging.c:radix_tree_is_indirect_ptr Unexecuted instantiation: vvmx.c:radix_tree_is_indirect_ptr Unexecuted instantiation: vmx.c:radix_tree_is_indirect_ptr Unexecuted instantiation: vmcs.c:radix_tree_is_indirect_ptr Unexecuted instantiation: realmode.c:radix_tree_is_indirect_ptr Unexecuted instantiation: vmcb.c:radix_tree_is_indirect_ptr Unexecuted instantiation: svmdebug.c:radix_tree_is_indirect_ptr Unexecuted instantiation: svm.c:radix_tree_is_indirect_ptr Unexecuted instantiation: nestedsvm.c:radix_tree_is_indirect_ptr Unexecuted instantiation: intr.c:radix_tree_is_indirect_ptr Unexecuted instantiation: vpt.c:radix_tree_is_indirect_ptr Unexecuted instantiation: vpic.c:radix_tree_is_indirect_ptr Unexecuted instantiation: vmsi.c:radix_tree_is_indirect_ptr Unexecuted instantiation: vlapic.c:radix_tree_is_indirect_ptr Unexecuted instantiation: viridian.c:radix_tree_is_indirect_ptr Unexecuted instantiation: vioapic.c:radix_tree_is_indirect_ptr Unexecuted instantiation: stdvga.c:radix_tree_is_indirect_ptr Unexecuted instantiation: save.c:radix_tree_is_indirect_ptr Unexecuted instantiation: rtc.c:radix_tree_is_indirect_ptr Unexecuted instantiation: pmtimer.c:radix_tree_is_indirect_ptr Unexecuted instantiation: nestedhvm.c:radix_tree_is_indirect_ptr Unexecuted instantiation: mtrr.c:radix_tree_is_indirect_ptr Unexecuted instantiation: ioreq.c:radix_tree_is_indirect_ptr Unexecuted instantiation: intercept.c:radix_tree_is_indirect_ptr Unexecuted instantiation: i8254.c:radix_tree_is_indirect_ptr Unexecuted instantiation: hvm.c:radix_tree_is_indirect_ptr Unexecuted instantiation: hpet.c:radix_tree_is_indirect_ptr Unexecuted instantiation: emulate.c:radix_tree_is_indirect_ptr Unexecuted instantiation: dm.c:radix_tree_is_indirect_ptr Unexecuted instantiation: asid.c:radix_tree_is_indirect_ptr Unexecuted instantiation: delivery.c:radix_tree_is_indirect_ptr Unexecuted instantiation: vmce.c:radix_tree_is_indirect_ptr Unexecuted instantiation: util.c:radix_tree_is_indirect_ptr Unexecuted instantiation: non-fatal.c:radix_tree_is_indirect_ptr Unexecuted instantiation: mce_intel.c:radix_tree_is_indirect_ptr Unexecuted instantiation: mce-apei.c:radix_tree_is_indirect_ptr Unexecuted instantiation: mce.c:radix_tree_is_indirect_ptr Unexecuted instantiation: mctelem.c:radix_tree_is_indirect_ptr Unexecuted instantiation: barrier.c:radix_tree_is_indirect_ptr Unexecuted instantiation: mcaction.c:radix_tree_is_indirect_ptr Unexecuted instantiation: mce_amd.c:radix_tree_is_indirect_ptr Unexecuted instantiation: amd_nonfatal.c:radix_tree_is_indirect_ptr Unexecuted instantiation: vpmu_intel.c:radix_tree_is_indirect_ptr Unexecuted instantiation: vpmu_amd.c:radix_tree_is_indirect_ptr Unexecuted instantiation: vpmu.c:radix_tree_is_indirect_ptr Unexecuted instantiation: mwait-idle.c:radix_tree_is_indirect_ptr Unexecuted instantiation: intel.c:radix_tree_is_indirect_ptr Unexecuted instantiation: common.c:radix_tree_is_indirect_ptr Unexecuted instantiation: amd.c:radix_tree_is_indirect_ptr Unexecuted instantiation: cpu_idle.c:radix_tree_is_indirect_ptr Unexecuted instantiation: suspend.c:radix_tree_is_indirect_ptr Unexecuted instantiation: power.c:radix_tree_is_indirect_ptr Unexecuted instantiation: xstate.c:radix_tree_is_indirect_ptr Unexecuted instantiation: tboot.c:radix_tree_is_indirect_ptr Unexecuted instantiation: x86_emulate.c:radix_tree_is_indirect_ptr Unexecuted instantiation: usercopy.c:radix_tree_is_indirect_ptr Unexecuted instantiation: traps.c:radix_tree_is_indirect_ptr Unexecuted instantiation: smpboot.c:radix_tree_is_indirect_ptr Unexecuted instantiation: smp.c:radix_tree_is_indirect_ptr Unexecuted instantiation: setup.c:radix_tree_is_indirect_ptr Unexecuted instantiation: psr.c:radix_tree_is_indirect_ptr Unexecuted instantiation: platform_hypercall.c:radix_tree_is_indirect_ptr Unexecuted instantiation: physdev.c:radix_tree_is_indirect_ptr Unexecuted instantiation: numa.c:radix_tree_is_indirect_ptr Unexecuted instantiation: nmi.c:radix_tree_is_indirect_ptr Unexecuted instantiation: mpparse.c:radix_tree_is_indirect_ptr Unexecuted instantiation: microcode.c:radix_tree_is_indirect_ptr Unexecuted instantiation: microcode_intel.c:radix_tree_is_indirect_ptr Unexecuted instantiation: microcode_amd.c:radix_tree_is_indirect_ptr Unexecuted instantiation: machine_kexec.c:radix_tree_is_indirect_ptr irq.c:radix_tree_is_indirect_ptr Line | Count | Source | 43 | 48 | { | 44 | 48 | return (int)((unsigned long)ptr & RADIX_TREE_INDIRECT_PTR); | 45 | 48 | } |
Unexecuted instantiation: ioport_emulate.c:radix_tree_is_indirect_ptr Unexecuted instantiation: msr.c:radix_tree_is_indirect_ptr Unexecuted instantiation: io_apic.c:radix_tree_is_indirect_ptr Unexecuted instantiation: i8259.c:radix_tree_is_indirect_ptr Unexecuted instantiation: i387.c:radix_tree_is_indirect_ptr Unexecuted instantiation: hypercall.c:radix_tree_is_indirect_ptr Unexecuted instantiation: flushtlb.c:radix_tree_is_indirect_ptr Unexecuted instantiation: domain_page.c:radix_tree_is_indirect_ptr Unexecuted instantiation: debug.c:radix_tree_is_indirect_ptr Unexecuted instantiation: crash.c:radix_tree_is_indirect_ptr Unexecuted instantiation: compat.c:radix_tree_is_indirect_ptr Unexecuted instantiation: cpuid.c:radix_tree_is_indirect_ptr Unexecuted instantiation: apic.c:radix_tree_is_indirect_ptr Unexecuted instantiation: xsm_core.c:radix_tree_is_indirect_ptr Unexecuted instantiation: pmstat.c:radix_tree_is_indirect_ptr Unexecuted instantiation: iommu_guest.c:radix_tree_is_indirect_ptr Unexecuted instantiation: iommu_cmd.c:radix_tree_is_indirect_ptr Unexecuted instantiation: iommu_intr.c:radix_tree_is_indirect_ptr Unexecuted instantiation: pci_amd_iommu.c:radix_tree_is_indirect_ptr Unexecuted instantiation: iommu_map.c:radix_tree_is_indirect_ptr Unexecuted instantiation: iommu_init.c:radix_tree_is_indirect_ptr Unexecuted instantiation: ats.c:radix_tree_is_indirect_ptr Unexecuted instantiation: vtd.c:radix_tree_is_indirect_ptr Unexecuted instantiation: quirks.c:radix_tree_is_indirect_ptr Unexecuted instantiation: intremap.c:radix_tree_is_indirect_ptr Unexecuted instantiation: qinval.c:radix_tree_is_indirect_ptr Unexecuted instantiation: utils.c:radix_tree_is_indirect_ptr Unexecuted instantiation: pci.c:radix_tree_is_indirect_ptr Unexecuted instantiation: io.c:radix_tree_is_indirect_ptr Unexecuted instantiation: iommu.c:radix_tree_is_indirect_ptr Unexecuted instantiation: msix.c:radix_tree_is_indirect_ptr Unexecuted instantiation: msi.c:radix_tree_is_indirect_ptr Unexecuted instantiation: header.c:radix_tree_is_indirect_ptr Unexecuted instantiation: vpci.c:radix_tree_is_indirect_ptr Unexecuted instantiation: utility.c:radix_tree_is_indirect_ptr Unexecuted instantiation: cpufreq_misc_governors.c:radix_tree_is_indirect_ptr Unexecuted instantiation: cpufreq_ondemand.c:radix_tree_is_indirect_ptr Unexecuted instantiation: cpufreq.c:radix_tree_is_indirect_ptr Unexecuted instantiation: ns16550.c:radix_tree_is_indirect_ptr Unexecuted instantiation: console.c:radix_tree_is_indirect_ptr Unexecuted instantiation: libelf-loader.c:radix_tree_is_indirect_ptr Unexecuted instantiation: llvm.c:radix_tree_is_indirect_ptr Unexecuted instantiation: tmem_control.c:radix_tree_is_indirect_ptr Unexecuted instantiation: tmem_xen.c:radix_tree_is_indirect_ptr Unexecuted instantiation: tmem.c:radix_tree_is_indirect_ptr Unexecuted instantiation: xenoprof.c:radix_tree_is_indirect_ptr Unexecuted instantiation: wait.c:radix_tree_is_indirect_ptr Unexecuted instantiation: vsprintf.c:radix_tree_is_indirect_ptr Unexecuted instantiation: vm_event.c:radix_tree_is_indirect_ptr Unexecuted instantiation: trace.c:radix_tree_is_indirect_ptr Unexecuted instantiation: timer.c:radix_tree_is_indirect_ptr Unexecuted instantiation: time.c:radix_tree_is_indirect_ptr Unexecuted instantiation: tasklet.c:radix_tree_is_indirect_ptr Unexecuted instantiation: sysctl.c:radix_tree_is_indirect_ptr Unexecuted instantiation: symbols.c:radix_tree_is_indirect_ptr Unexecuted instantiation: stop_machine.c:radix_tree_is_indirect_ptr Unexecuted instantiation: spinlock.c:radix_tree_is_indirect_ptr Unexecuted instantiation: softirq.c:radix_tree_is_indirect_ptr Unexecuted instantiation: shutdown.c:radix_tree_is_indirect_ptr Unexecuted instantiation: schedule.c:radix_tree_is_indirect_ptr Unexecuted instantiation: sched_null.c:radix_tree_is_indirect_ptr Unexecuted instantiation: sched_rt.c:radix_tree_is_indirect_ptr Unexecuted instantiation: sched_credit2.c:radix_tree_is_indirect_ptr Unexecuted instantiation: sched_credit.c:radix_tree_is_indirect_ptr Unexecuted instantiation: sched_arinc653.c:radix_tree_is_indirect_ptr Unexecuted instantiation: rcupdate.c:radix_tree_is_indirect_ptr radix-tree.c:radix_tree_is_indirect_ptr Line | Count | Source | 43 | 273k | { | 44 | 273k | return (int)((unsigned long)ptr & RADIX_TREE_INDIRECT_PTR); | 45 | 273k | } |
Unexecuted instantiation: rangeset.c:radix_tree_is_indirect_ptr Unexecuted instantiation: page_alloc.c:radix_tree_is_indirect_ptr Unexecuted instantiation: multicall.c:radix_tree_is_indirect_ptr Unexecuted instantiation: monitor.c:radix_tree_is_indirect_ptr Unexecuted instantiation: memory.c:radix_tree_is_indirect_ptr Unexecuted instantiation: mem_access.c:radix_tree_is_indirect_ptr Unexecuted instantiation: kimage.c:radix_tree_is_indirect_ptr Unexecuted instantiation: kexec.c:radix_tree_is_indirect_ptr Unexecuted instantiation: keyhandler.c:radix_tree_is_indirect_ptr Unexecuted instantiation: kernel.c:radix_tree_is_indirect_ptr Unexecuted instantiation: guestcopy.c:radix_tree_is_indirect_ptr Unexecuted instantiation: grant_table.c:radix_tree_is_indirect_ptr Unexecuted instantiation: event_fifo.c:radix_tree_is_indirect_ptr Unexecuted instantiation: event_channel.c:radix_tree_is_indirect_ptr Unexecuted instantiation: event_2l.c:radix_tree_is_indirect_ptr Unexecuted instantiation: domain.c:radix_tree_is_indirect_ptr Unexecuted instantiation: domctl.c:radix_tree_is_indirect_ptr Unexecuted instantiation: cpupool.c:radix_tree_is_indirect_ptr Unexecuted instantiation: cpu.c:radix_tree_is_indirect_ptr |
46 | | |
47 | | /* |
48 | | *** Radix tree structure definitions. |
49 | | *** These are public to allow users to allocate instances of them. |
50 | | *** However all fields are absolutely private. |
51 | | */ |
52 | | |
53 | 89.7k | #define RADIX_TREE_MAP_SHIFT 6 |
54 | 36.0k | #define RADIX_TREE_MAP_SIZE (1UL << RADIX_TREE_MAP_SHIFT) |
55 | 36.0k | #define RADIX_TREE_MAP_MASK (RADIX_TREE_MAP_SIZE-1) |
56 | | |
57 | | struct radix_tree_node { |
58 | | unsigned int height; /* Height from the bottom */ |
59 | | unsigned int count; |
60 | | void __rcu *slots[RADIX_TREE_MAP_SIZE]; |
61 | | }; |
62 | | |
63 | | typedef struct radix_tree_node *radix_tree_alloc_fn_t(void *); |
64 | | typedef void radix_tree_free_fn_t(struct radix_tree_node *, void *); |
65 | | |
66 | | struct radix_tree_root { |
67 | | unsigned int height; |
68 | | struct radix_tree_node __rcu *rnode; |
69 | | |
70 | | /* Allow to specify custom node alloc/dealloc routines. */ |
71 | | radix_tree_alloc_fn_t *node_alloc; |
72 | | radix_tree_free_fn_t *node_free; |
73 | | void *node_alloc_free_arg; |
74 | | }; |
75 | | |
76 | | /* |
77 | | *** radix-tree API starts here ** |
78 | | */ |
79 | | |
80 | | void radix_tree_init(struct radix_tree_root *root); |
81 | | void radix_tree_set_alloc_callbacks( |
82 | | struct radix_tree_root *root, |
83 | | radix_tree_alloc_fn_t *node_alloc, |
84 | | radix_tree_free_fn_t *node_free, |
85 | | void *node_alloc_free_arg); |
86 | | |
87 | | void radix_tree_destroy( |
88 | | struct radix_tree_root *root, |
89 | | void (*slot_free)(void *)); |
90 | | |
91 | | /** |
92 | | * Radix-tree synchronization |
93 | | * |
94 | | * The radix-tree API requires that users provide all synchronisation (with |
95 | | * specific exceptions, noted below). |
96 | | * |
97 | | * Synchronization of access to the data items being stored in the tree, and |
98 | | * management of their lifetimes must be completely managed by API users. |
99 | | * |
100 | | * For API usage, in general, |
101 | | * - any function _modifying_ the tree (inserting or deleting items) must |
102 | | * exclude other modifications, and exclude any functions reading the tree. |
103 | | * - any function _reading_ the tree (looking up items) must exclude |
104 | | * modifications to the tree, but may occur concurrently with other readers. |
105 | | * |
106 | | * The notable exceptions to this rule are the following functions: |
107 | | * radix_tree_lookup |
108 | | * radix_tree_lookup_slot |
109 | | * radix_tree_gang_lookup |
110 | | * radix_tree_gang_lookup_slot |
111 | | * |
112 | | * The first 7 functions are able to be called locklessly, using RCU. The |
113 | | * caller must ensure calls to these functions are made within rcu_read_lock() |
114 | | * regions. Other readers (lock-free or otherwise) and modifications may be |
115 | | * running concurrently. |
116 | | * |
117 | | * It is still required that the caller manage the synchronization and lifetimes |
118 | | * of the items. So if RCU lock-free lookups are used, typically this would mean |
119 | | * that the items have their own locks, or are amenable to lock-free access; and |
120 | | * that the items are freed by RCU (or only freed after having been deleted from |
121 | | * the radix tree *and* a synchronize_rcu() grace period). |
122 | | * |
123 | | * (Note, rcu_assign_pointer and rcu_dereference are not needed to control |
124 | | * access to data items when inserting into or looking up from the radix tree) |
125 | | */ |
126 | | |
127 | | /** |
128 | | * radix_tree_deref_slot - dereference a slot |
129 | | * @pslot: pointer to slot, returned by radix_tree_lookup_slot |
130 | | * Returns: item that was stored in that slot with any direct pointer flag |
131 | | * removed. |
132 | | * |
133 | | * For use with radix_tree_lookup_slot(). Caller must hold tree at least read |
134 | | * locked across slot lookup and dereference. Not required if write lock is |
135 | | * held (ie. items cannot be concurrently inserted). |
136 | | * |
137 | | * radix_tree_deref_retry must be used to confirm validity of the pointer if |
138 | | * only the read lock is held. |
139 | | */ |
140 | | static inline void *radix_tree_deref_slot(void **pslot) |
141 | 0 | { |
142 | 0 | return rcu_dereference(*pslot); |
143 | 0 | } Unexecuted instantiation: ro-page-fault.c:radix_tree_deref_slot Unexecuted instantiation: cpu.c:radix_tree_deref_slot Unexecuted instantiation: misc-hypercalls.c:radix_tree_deref_slot Unexecuted instantiation: iret.c:radix_tree_deref_slot Unexecuted instantiation: emul-priv-op.c:radix_tree_deref_slot Unexecuted instantiation: emul-inv-op.c:radix_tree_deref_slot Unexecuted instantiation: emul-gate-op.c:radix_tree_deref_slot Unexecuted instantiation: descriptor-tables.c:radix_tree_deref_slot Unexecuted instantiation: callback.c:radix_tree_deref_slot Unexecuted instantiation: backtrace.c:radix_tree_deref_slot Unexecuted instantiation: op_model_athlon.c:radix_tree_deref_slot Unexecuted instantiation: op_model_ppro.c:radix_tree_deref_slot Unexecuted instantiation: nmi_int.c:radix_tree_deref_slot Unexecuted instantiation: nested_ept.c:radix_tree_deref_slot Unexecuted instantiation: nested_hap.c:radix_tree_deref_slot Unexecuted instantiation: hap.c:radix_tree_deref_slot Unexecuted instantiation: multi.c:radix_tree_deref_slot Unexecuted instantiation: mem_sharing.c:radix_tree_deref_slot Unexecuted instantiation: mem_paging.c:radix_tree_deref_slot Unexecuted instantiation: guest_walk.c:radix_tree_deref_slot Unexecuted instantiation: altp2m.c:radix_tree_deref_slot Unexecuted instantiation: p2m-pod.c:radix_tree_deref_slot Unexecuted instantiation: p2m-ept.c:radix_tree_deref_slot Unexecuted instantiation: p2m-pt.c:radix_tree_deref_slot Unexecuted instantiation: p2m.c:radix_tree_deref_slot Unexecuted instantiation: paging.c:radix_tree_deref_slot Unexecuted instantiation: vvmx.c:radix_tree_deref_slot Unexecuted instantiation: vmx.c:radix_tree_deref_slot Unexecuted instantiation: vmcs.c:radix_tree_deref_slot Unexecuted instantiation: realmode.c:radix_tree_deref_slot Unexecuted instantiation: vmcb.c:radix_tree_deref_slot Unexecuted instantiation: svmdebug.c:radix_tree_deref_slot Unexecuted instantiation: svm.c:radix_tree_deref_slot Unexecuted instantiation: nestedsvm.c:radix_tree_deref_slot Unexecuted instantiation: intr.c:radix_tree_deref_slot Unexecuted instantiation: vpt.c:radix_tree_deref_slot Unexecuted instantiation: vpic.c:radix_tree_deref_slot Unexecuted instantiation: vmsi.c:radix_tree_deref_slot Unexecuted instantiation: vlapic.c:radix_tree_deref_slot Unexecuted instantiation: viridian.c:radix_tree_deref_slot Unexecuted instantiation: vioapic.c:radix_tree_deref_slot Unexecuted instantiation: stdvga.c:radix_tree_deref_slot Unexecuted instantiation: save.c:radix_tree_deref_slot Unexecuted instantiation: rtc.c:radix_tree_deref_slot Unexecuted instantiation: pmtimer.c:radix_tree_deref_slot Unexecuted instantiation: nestedhvm.c:radix_tree_deref_slot Unexecuted instantiation: mtrr.c:radix_tree_deref_slot Unexecuted instantiation: ioreq.c:radix_tree_deref_slot Unexecuted instantiation: intercept.c:radix_tree_deref_slot Unexecuted instantiation: i8254.c:radix_tree_deref_slot Unexecuted instantiation: hvm.c:radix_tree_deref_slot Unexecuted instantiation: hpet.c:radix_tree_deref_slot Unexecuted instantiation: emulate.c:radix_tree_deref_slot Unexecuted instantiation: dm.c:radix_tree_deref_slot Unexecuted instantiation: asid.c:radix_tree_deref_slot Unexecuted instantiation: delivery.c:radix_tree_deref_slot Unexecuted instantiation: vmce.c:radix_tree_deref_slot Unexecuted instantiation: util.c:radix_tree_deref_slot Unexecuted instantiation: non-fatal.c:radix_tree_deref_slot Unexecuted instantiation: mce_intel.c:radix_tree_deref_slot Unexecuted instantiation: mce-apei.c:radix_tree_deref_slot Unexecuted instantiation: mce.c:radix_tree_deref_slot Unexecuted instantiation: mctelem.c:radix_tree_deref_slot Unexecuted instantiation: barrier.c:radix_tree_deref_slot Unexecuted instantiation: mcaction.c:radix_tree_deref_slot Unexecuted instantiation: mce_amd.c:radix_tree_deref_slot Unexecuted instantiation: amd_nonfatal.c:radix_tree_deref_slot Unexecuted instantiation: vpmu_intel.c:radix_tree_deref_slot Unexecuted instantiation: vpmu_amd.c:radix_tree_deref_slot Unexecuted instantiation: vpmu.c:radix_tree_deref_slot Unexecuted instantiation: mwait-idle.c:radix_tree_deref_slot Unexecuted instantiation: intel.c:radix_tree_deref_slot Unexecuted instantiation: common.c:radix_tree_deref_slot Unexecuted instantiation: amd.c:radix_tree_deref_slot Unexecuted instantiation: cpu_idle.c:radix_tree_deref_slot Unexecuted instantiation: suspend.c:radix_tree_deref_slot Unexecuted instantiation: power.c:radix_tree_deref_slot Unexecuted instantiation: xstate.c:radix_tree_deref_slot Unexecuted instantiation: tboot.c:radix_tree_deref_slot Unexecuted instantiation: x86_emulate.c:radix_tree_deref_slot Unexecuted instantiation: usercopy.c:radix_tree_deref_slot Unexecuted instantiation: traps.c:radix_tree_deref_slot Unexecuted instantiation: smpboot.c:radix_tree_deref_slot Unexecuted instantiation: smp.c:radix_tree_deref_slot Unexecuted instantiation: setup.c:radix_tree_deref_slot Unexecuted instantiation: psr.c:radix_tree_deref_slot Unexecuted instantiation: platform_hypercall.c:radix_tree_deref_slot Unexecuted instantiation: physdev.c:radix_tree_deref_slot Unexecuted instantiation: numa.c:radix_tree_deref_slot Unexecuted instantiation: nmi.c:radix_tree_deref_slot Unexecuted instantiation: mpparse.c:radix_tree_deref_slot Unexecuted instantiation: mm.c:radix_tree_deref_slot Unexecuted instantiation: microcode.c:radix_tree_deref_slot Unexecuted instantiation: microcode_intel.c:radix_tree_deref_slot Unexecuted instantiation: microcode_amd.c:radix_tree_deref_slot Unexecuted instantiation: machine_kexec.c:radix_tree_deref_slot Unexecuted instantiation: irq.c:radix_tree_deref_slot Unexecuted instantiation: ioport_emulate.c:radix_tree_deref_slot Unexecuted instantiation: msr.c:radix_tree_deref_slot Unexecuted instantiation: io_apic.c:radix_tree_deref_slot Unexecuted instantiation: i8259.c:radix_tree_deref_slot Unexecuted instantiation: i387.c:radix_tree_deref_slot Unexecuted instantiation: hypercall.c:radix_tree_deref_slot Unexecuted instantiation: flushtlb.c:radix_tree_deref_slot Unexecuted instantiation: domain_page.c:radix_tree_deref_slot Unexecuted instantiation: debug.c:radix_tree_deref_slot Unexecuted instantiation: crash.c:radix_tree_deref_slot Unexecuted instantiation: compat.c:radix_tree_deref_slot Unexecuted instantiation: cpuid.c:radix_tree_deref_slot Unexecuted instantiation: apic.c:radix_tree_deref_slot Unexecuted instantiation: xsm_core.c:radix_tree_deref_slot Unexecuted instantiation: pmstat.c:radix_tree_deref_slot Unexecuted instantiation: iommu_guest.c:radix_tree_deref_slot Unexecuted instantiation: iommu_cmd.c:radix_tree_deref_slot Unexecuted instantiation: iommu_intr.c:radix_tree_deref_slot Unexecuted instantiation: pci_amd_iommu.c:radix_tree_deref_slot Unexecuted instantiation: iommu_map.c:radix_tree_deref_slot Unexecuted instantiation: iommu_init.c:radix_tree_deref_slot Unexecuted instantiation: ats.c:radix_tree_deref_slot Unexecuted instantiation: vtd.c:radix_tree_deref_slot Unexecuted instantiation: quirks.c:radix_tree_deref_slot Unexecuted instantiation: intremap.c:radix_tree_deref_slot Unexecuted instantiation: qinval.c:radix_tree_deref_slot Unexecuted instantiation: utils.c:radix_tree_deref_slot Unexecuted instantiation: pci.c:radix_tree_deref_slot Unexecuted instantiation: io.c:radix_tree_deref_slot Unexecuted instantiation: iommu.c:radix_tree_deref_slot Unexecuted instantiation: msix.c:radix_tree_deref_slot Unexecuted instantiation: msi.c:radix_tree_deref_slot Unexecuted instantiation: header.c:radix_tree_deref_slot Unexecuted instantiation: vpci.c:radix_tree_deref_slot Unexecuted instantiation: utility.c:radix_tree_deref_slot Unexecuted instantiation: cpufreq_misc_governors.c:radix_tree_deref_slot Unexecuted instantiation: cpufreq_ondemand.c:radix_tree_deref_slot Unexecuted instantiation: cpufreq.c:radix_tree_deref_slot Unexecuted instantiation: ns16550.c:radix_tree_deref_slot Unexecuted instantiation: console.c:radix_tree_deref_slot Unexecuted instantiation: libelf-loader.c:radix_tree_deref_slot Unexecuted instantiation: llvm.c:radix_tree_deref_slot Unexecuted instantiation: tmem_control.c:radix_tree_deref_slot Unexecuted instantiation: tmem_xen.c:radix_tree_deref_slot Unexecuted instantiation: tmem.c:radix_tree_deref_slot Unexecuted instantiation: xenoprof.c:radix_tree_deref_slot Unexecuted instantiation: wait.c:radix_tree_deref_slot Unexecuted instantiation: vsprintf.c:radix_tree_deref_slot Unexecuted instantiation: vm_event.c:radix_tree_deref_slot Unexecuted instantiation: trace.c:radix_tree_deref_slot Unexecuted instantiation: timer.c:radix_tree_deref_slot Unexecuted instantiation: time.c:radix_tree_deref_slot Unexecuted instantiation: tasklet.c:radix_tree_deref_slot Unexecuted instantiation: sysctl.c:radix_tree_deref_slot Unexecuted instantiation: symbols.c:radix_tree_deref_slot Unexecuted instantiation: stop_machine.c:radix_tree_deref_slot Unexecuted instantiation: spinlock.c:radix_tree_deref_slot Unexecuted instantiation: softirq.c:radix_tree_deref_slot Unexecuted instantiation: shutdown.c:radix_tree_deref_slot Unexecuted instantiation: schedule.c:radix_tree_deref_slot Unexecuted instantiation: sched_null.c:radix_tree_deref_slot Unexecuted instantiation: sched_rt.c:radix_tree_deref_slot Unexecuted instantiation: sched_credit2.c:radix_tree_deref_slot Unexecuted instantiation: sched_credit.c:radix_tree_deref_slot Unexecuted instantiation: sched_arinc653.c:radix_tree_deref_slot Unexecuted instantiation: rcupdate.c:radix_tree_deref_slot Unexecuted instantiation: radix-tree.c:radix_tree_deref_slot Unexecuted instantiation: rangeset.c:radix_tree_deref_slot Unexecuted instantiation: page_alloc.c:radix_tree_deref_slot Unexecuted instantiation: multicall.c:radix_tree_deref_slot Unexecuted instantiation: monitor.c:radix_tree_deref_slot Unexecuted instantiation: memory.c:radix_tree_deref_slot Unexecuted instantiation: mem_access.c:radix_tree_deref_slot Unexecuted instantiation: kimage.c:radix_tree_deref_slot Unexecuted instantiation: kexec.c:radix_tree_deref_slot Unexecuted instantiation: keyhandler.c:radix_tree_deref_slot Unexecuted instantiation: kernel.c:radix_tree_deref_slot Unexecuted instantiation: guestcopy.c:radix_tree_deref_slot Unexecuted instantiation: grant_table.c:radix_tree_deref_slot Unexecuted instantiation: event_fifo.c:radix_tree_deref_slot Unexecuted instantiation: event_channel.c:radix_tree_deref_slot Unexecuted instantiation: event_2l.c:radix_tree_deref_slot Unexecuted instantiation: domain.c:radix_tree_deref_slot Unexecuted instantiation: domctl.c:radix_tree_deref_slot Unexecuted instantiation: cpupool.c:radix_tree_deref_slot |
144 | | |
145 | | /** |
146 | | * radix_tree_deref_retry - check radix_tree_deref_slot |
147 | | * @arg: pointer returned by radix_tree_deref_slot |
148 | | * Returns: 0 if retry is not required, otherwise retry is required |
149 | | * |
150 | | * radix_tree_deref_retry must be used with radix_tree_deref_slot. |
151 | | */ |
152 | | static inline int radix_tree_deref_retry(void *arg) |
153 | 0 | { |
154 | 0 | return unlikely((unsigned long)arg & RADIX_TREE_INDIRECT_PTR); |
155 | 0 | } Unexecuted instantiation: misc-hypercalls.c:radix_tree_deref_retry Unexecuted instantiation: cpupool.c:radix_tree_deref_retry Unexecuted instantiation: domctl.c:radix_tree_deref_retry Unexecuted instantiation: domain.c:radix_tree_deref_retry Unexecuted instantiation: event_2l.c:radix_tree_deref_retry Unexecuted instantiation: event_channel.c:radix_tree_deref_retry Unexecuted instantiation: event_fifo.c:radix_tree_deref_retry Unexecuted instantiation: grant_table.c:radix_tree_deref_retry Unexecuted instantiation: guestcopy.c:radix_tree_deref_retry Unexecuted instantiation: kernel.c:radix_tree_deref_retry Unexecuted instantiation: keyhandler.c:radix_tree_deref_retry Unexecuted instantiation: kexec.c:radix_tree_deref_retry Unexecuted instantiation: kimage.c:radix_tree_deref_retry Unexecuted instantiation: mem_access.c:radix_tree_deref_retry Unexecuted instantiation: memory.c:radix_tree_deref_retry Unexecuted instantiation: monitor.c:radix_tree_deref_retry Unexecuted instantiation: multicall.c:radix_tree_deref_retry Unexecuted instantiation: page_alloc.c:radix_tree_deref_retry Unexecuted instantiation: rangeset.c:radix_tree_deref_retry Unexecuted instantiation: radix-tree.c:radix_tree_deref_retry Unexecuted instantiation: rcupdate.c:radix_tree_deref_retry Unexecuted instantiation: sched_arinc653.c:radix_tree_deref_retry Unexecuted instantiation: sched_credit.c:radix_tree_deref_retry Unexecuted instantiation: sched_credit2.c:radix_tree_deref_retry Unexecuted instantiation: sched_rt.c:radix_tree_deref_retry Unexecuted instantiation: sched_null.c:radix_tree_deref_retry Unexecuted instantiation: schedule.c:radix_tree_deref_retry Unexecuted instantiation: shutdown.c:radix_tree_deref_retry Unexecuted instantiation: softirq.c:radix_tree_deref_retry Unexecuted instantiation: spinlock.c:radix_tree_deref_retry Unexecuted instantiation: stop_machine.c:radix_tree_deref_retry Unexecuted instantiation: symbols.c:radix_tree_deref_retry Unexecuted instantiation: sysctl.c:radix_tree_deref_retry Unexecuted instantiation: tasklet.c:radix_tree_deref_retry Unexecuted instantiation: time.c:radix_tree_deref_retry Unexecuted instantiation: timer.c:radix_tree_deref_retry Unexecuted instantiation: trace.c:radix_tree_deref_retry Unexecuted instantiation: vm_event.c:radix_tree_deref_retry Unexecuted instantiation: vsprintf.c:radix_tree_deref_retry Unexecuted instantiation: wait.c:radix_tree_deref_retry Unexecuted instantiation: xenoprof.c:radix_tree_deref_retry Unexecuted instantiation: tmem.c:radix_tree_deref_retry Unexecuted instantiation: tmem_xen.c:radix_tree_deref_retry Unexecuted instantiation: tmem_control.c:radix_tree_deref_retry Unexecuted instantiation: llvm.c:radix_tree_deref_retry Unexecuted instantiation: libelf-loader.c:radix_tree_deref_retry Unexecuted instantiation: console.c:radix_tree_deref_retry Unexecuted instantiation: ns16550.c:radix_tree_deref_retry Unexecuted instantiation: cpufreq.c:radix_tree_deref_retry Unexecuted instantiation: cpufreq_ondemand.c:radix_tree_deref_retry Unexecuted instantiation: cpufreq_misc_governors.c:radix_tree_deref_retry Unexecuted instantiation: utility.c:radix_tree_deref_retry Unexecuted instantiation: vpci.c:radix_tree_deref_retry Unexecuted instantiation: header.c:radix_tree_deref_retry Unexecuted instantiation: msi.c:radix_tree_deref_retry Unexecuted instantiation: msix.c:radix_tree_deref_retry Unexecuted instantiation: iommu.c:radix_tree_deref_retry Unexecuted instantiation: io.c:radix_tree_deref_retry Unexecuted instantiation: pci.c:radix_tree_deref_retry Unexecuted instantiation: utils.c:radix_tree_deref_retry Unexecuted instantiation: qinval.c:radix_tree_deref_retry Unexecuted instantiation: intremap.c:radix_tree_deref_retry Unexecuted instantiation: quirks.c:radix_tree_deref_retry Unexecuted instantiation: vtd.c:radix_tree_deref_retry Unexecuted instantiation: ats.c:radix_tree_deref_retry Unexecuted instantiation: iommu_init.c:radix_tree_deref_retry Unexecuted instantiation: iommu_map.c:radix_tree_deref_retry Unexecuted instantiation: pci_amd_iommu.c:radix_tree_deref_retry Unexecuted instantiation: iommu_intr.c:radix_tree_deref_retry Unexecuted instantiation: iommu_cmd.c:radix_tree_deref_retry Unexecuted instantiation: iommu_guest.c:radix_tree_deref_retry Unexecuted instantiation: pmstat.c:radix_tree_deref_retry Unexecuted instantiation: xsm_core.c:radix_tree_deref_retry Unexecuted instantiation: apic.c:radix_tree_deref_retry Unexecuted instantiation: cpuid.c:radix_tree_deref_retry Unexecuted instantiation: compat.c:radix_tree_deref_retry Unexecuted instantiation: crash.c:radix_tree_deref_retry Unexecuted instantiation: debug.c:radix_tree_deref_retry Unexecuted instantiation: domain_page.c:radix_tree_deref_retry Unexecuted instantiation: flushtlb.c:radix_tree_deref_retry Unexecuted instantiation: hypercall.c:radix_tree_deref_retry Unexecuted instantiation: i387.c:radix_tree_deref_retry Unexecuted instantiation: i8259.c:radix_tree_deref_retry Unexecuted instantiation: io_apic.c:radix_tree_deref_retry Unexecuted instantiation: msr.c:radix_tree_deref_retry Unexecuted instantiation: ioport_emulate.c:radix_tree_deref_retry Unexecuted instantiation: irq.c:radix_tree_deref_retry Unexecuted instantiation: machine_kexec.c:radix_tree_deref_retry Unexecuted instantiation: microcode_amd.c:radix_tree_deref_retry Unexecuted instantiation: microcode_intel.c:radix_tree_deref_retry Unexecuted instantiation: microcode.c:radix_tree_deref_retry Unexecuted instantiation: ro-page-fault.c:radix_tree_deref_retry Unexecuted instantiation: mm.c:radix_tree_deref_retry Unexecuted instantiation: mpparse.c:radix_tree_deref_retry Unexecuted instantiation: nmi.c:radix_tree_deref_retry Unexecuted instantiation: numa.c:radix_tree_deref_retry Unexecuted instantiation: physdev.c:radix_tree_deref_retry Unexecuted instantiation: platform_hypercall.c:radix_tree_deref_retry Unexecuted instantiation: psr.c:radix_tree_deref_retry Unexecuted instantiation: setup.c:radix_tree_deref_retry Unexecuted instantiation: smp.c:radix_tree_deref_retry Unexecuted instantiation: smpboot.c:radix_tree_deref_retry Unexecuted instantiation: traps.c:radix_tree_deref_retry Unexecuted instantiation: usercopy.c:radix_tree_deref_retry Unexecuted instantiation: x86_emulate.c:radix_tree_deref_retry Unexecuted instantiation: tboot.c:radix_tree_deref_retry Unexecuted instantiation: xstate.c:radix_tree_deref_retry Unexecuted instantiation: power.c:radix_tree_deref_retry Unexecuted instantiation: suspend.c:radix_tree_deref_retry Unexecuted instantiation: cpu_idle.c:radix_tree_deref_retry Unexecuted instantiation: amd.c:radix_tree_deref_retry Unexecuted instantiation: common.c:radix_tree_deref_retry Unexecuted instantiation: intel.c:radix_tree_deref_retry Unexecuted instantiation: mwait-idle.c:radix_tree_deref_retry Unexecuted instantiation: vpmu.c:radix_tree_deref_retry Unexecuted instantiation: vpmu_amd.c:radix_tree_deref_retry Unexecuted instantiation: vpmu_intel.c:radix_tree_deref_retry Unexecuted instantiation: amd_nonfatal.c:radix_tree_deref_retry Unexecuted instantiation: mce_amd.c:radix_tree_deref_retry Unexecuted instantiation: mcaction.c:radix_tree_deref_retry Unexecuted instantiation: barrier.c:radix_tree_deref_retry Unexecuted instantiation: mctelem.c:radix_tree_deref_retry Unexecuted instantiation: mce.c:radix_tree_deref_retry Unexecuted instantiation: mce-apei.c:radix_tree_deref_retry Unexecuted instantiation: mce_intel.c:radix_tree_deref_retry Unexecuted instantiation: non-fatal.c:radix_tree_deref_retry Unexecuted instantiation: util.c:radix_tree_deref_retry Unexecuted instantiation: vmce.c:radix_tree_deref_retry Unexecuted instantiation: delivery.c:radix_tree_deref_retry Unexecuted instantiation: asid.c:radix_tree_deref_retry Unexecuted instantiation: dm.c:radix_tree_deref_retry Unexecuted instantiation: emulate.c:radix_tree_deref_retry Unexecuted instantiation: hpet.c:radix_tree_deref_retry Unexecuted instantiation: hvm.c:radix_tree_deref_retry Unexecuted instantiation: i8254.c:radix_tree_deref_retry Unexecuted instantiation: intercept.c:radix_tree_deref_retry Unexecuted instantiation: ioreq.c:radix_tree_deref_retry Unexecuted instantiation: mtrr.c:radix_tree_deref_retry Unexecuted instantiation: nestedhvm.c:radix_tree_deref_retry Unexecuted instantiation: pmtimer.c:radix_tree_deref_retry Unexecuted instantiation: rtc.c:radix_tree_deref_retry Unexecuted instantiation: save.c:radix_tree_deref_retry Unexecuted instantiation: stdvga.c:radix_tree_deref_retry Unexecuted instantiation: vioapic.c:radix_tree_deref_retry Unexecuted instantiation: viridian.c:radix_tree_deref_retry Unexecuted instantiation: vlapic.c:radix_tree_deref_retry Unexecuted instantiation: vmsi.c:radix_tree_deref_retry Unexecuted instantiation: vpic.c:radix_tree_deref_retry Unexecuted instantiation: vpt.c:radix_tree_deref_retry Unexecuted instantiation: intr.c:radix_tree_deref_retry Unexecuted instantiation: nestedsvm.c:radix_tree_deref_retry Unexecuted instantiation: svm.c:radix_tree_deref_retry Unexecuted instantiation: svmdebug.c:radix_tree_deref_retry Unexecuted instantiation: vmcb.c:radix_tree_deref_retry Unexecuted instantiation: realmode.c:radix_tree_deref_retry Unexecuted instantiation: vmcs.c:radix_tree_deref_retry Unexecuted instantiation: vmx.c:radix_tree_deref_retry Unexecuted instantiation: vvmx.c:radix_tree_deref_retry Unexecuted instantiation: paging.c:radix_tree_deref_retry Unexecuted instantiation: p2m.c:radix_tree_deref_retry Unexecuted instantiation: p2m-pt.c:radix_tree_deref_retry Unexecuted instantiation: p2m-ept.c:radix_tree_deref_retry Unexecuted instantiation: p2m-pod.c:radix_tree_deref_retry Unexecuted instantiation: altp2m.c:radix_tree_deref_retry Unexecuted instantiation: guest_walk.c:radix_tree_deref_retry Unexecuted instantiation: mem_paging.c:radix_tree_deref_retry Unexecuted instantiation: mem_sharing.c:radix_tree_deref_retry Unexecuted instantiation: multi.c:radix_tree_deref_retry Unexecuted instantiation: hap.c:radix_tree_deref_retry Unexecuted instantiation: nested_hap.c:radix_tree_deref_retry Unexecuted instantiation: nested_ept.c:radix_tree_deref_retry Unexecuted instantiation: nmi_int.c:radix_tree_deref_retry Unexecuted instantiation: op_model_ppro.c:radix_tree_deref_retry Unexecuted instantiation: op_model_athlon.c:radix_tree_deref_retry Unexecuted instantiation: backtrace.c:radix_tree_deref_retry Unexecuted instantiation: callback.c:radix_tree_deref_retry Unexecuted instantiation: descriptor-tables.c:radix_tree_deref_retry Unexecuted instantiation: emul-gate-op.c:radix_tree_deref_retry Unexecuted instantiation: emul-inv-op.c:radix_tree_deref_retry Unexecuted instantiation: emul-priv-op.c:radix_tree_deref_retry Unexecuted instantiation: iret.c:radix_tree_deref_retry Unexecuted instantiation: cpu.c:radix_tree_deref_retry |
156 | | |
157 | | /** |
158 | | * radix_tree_replace_slot - replace item in a slot |
159 | | * @pslot: pointer to slot, returned by radix_tree_lookup_slot |
160 | | * @item: new item to store in the slot. |
161 | | * |
162 | | * For use with radix_tree_lookup_slot(). Caller must hold tree write locked |
163 | | * across slot lookup and replacement. |
164 | | */ |
165 | | static inline void radix_tree_replace_slot(void **pslot, void *item) |
166 | 48 | { |
167 | 48 | BUG_ON(radix_tree_is_indirect_ptr(item)); |
168 | 48 | rcu_assign_pointer(*pslot, item); |
169 | 48 | } Unexecuted instantiation: cpu.c:radix_tree_replace_slot Unexecuted instantiation: cpupool.c:radix_tree_replace_slot Unexecuted instantiation: domctl.c:radix_tree_replace_slot Unexecuted instantiation: domain.c:radix_tree_replace_slot Unexecuted instantiation: event_2l.c:radix_tree_replace_slot Unexecuted instantiation: event_channel.c:radix_tree_replace_slot Unexecuted instantiation: event_fifo.c:radix_tree_replace_slot Unexecuted instantiation: grant_table.c:radix_tree_replace_slot Unexecuted instantiation: guestcopy.c:radix_tree_replace_slot Unexecuted instantiation: kernel.c:radix_tree_replace_slot Unexecuted instantiation: keyhandler.c:radix_tree_replace_slot Unexecuted instantiation: kexec.c:radix_tree_replace_slot Unexecuted instantiation: kimage.c:radix_tree_replace_slot Unexecuted instantiation: mem_access.c:radix_tree_replace_slot Unexecuted instantiation: memory.c:radix_tree_replace_slot Unexecuted instantiation: monitor.c:radix_tree_replace_slot Unexecuted instantiation: multicall.c:radix_tree_replace_slot Unexecuted instantiation: page_alloc.c:radix_tree_replace_slot Unexecuted instantiation: rangeset.c:radix_tree_replace_slot Unexecuted instantiation: radix-tree.c:radix_tree_replace_slot Unexecuted instantiation: rcupdate.c:radix_tree_replace_slot Unexecuted instantiation: sched_arinc653.c:radix_tree_replace_slot Unexecuted instantiation: sched_credit.c:radix_tree_replace_slot Unexecuted instantiation: sched_credit2.c:radix_tree_replace_slot Unexecuted instantiation: sched_rt.c:radix_tree_replace_slot Unexecuted instantiation: sched_null.c:radix_tree_replace_slot Unexecuted instantiation: schedule.c:radix_tree_replace_slot Unexecuted instantiation: shutdown.c:radix_tree_replace_slot Unexecuted instantiation: softirq.c:radix_tree_replace_slot Unexecuted instantiation: spinlock.c:radix_tree_replace_slot Unexecuted instantiation: stop_machine.c:radix_tree_replace_slot Unexecuted instantiation: symbols.c:radix_tree_replace_slot Unexecuted instantiation: sysctl.c:radix_tree_replace_slot Unexecuted instantiation: tasklet.c:radix_tree_replace_slot Unexecuted instantiation: time.c:radix_tree_replace_slot Unexecuted instantiation: timer.c:radix_tree_replace_slot Unexecuted instantiation: trace.c:radix_tree_replace_slot Unexecuted instantiation: vm_event.c:radix_tree_replace_slot Unexecuted instantiation: vsprintf.c:radix_tree_replace_slot Unexecuted instantiation: wait.c:radix_tree_replace_slot Unexecuted instantiation: xenoprof.c:radix_tree_replace_slot Unexecuted instantiation: tmem.c:radix_tree_replace_slot Unexecuted instantiation: tmem_xen.c:radix_tree_replace_slot Unexecuted instantiation: tmem_control.c:radix_tree_replace_slot Unexecuted instantiation: llvm.c:radix_tree_replace_slot Unexecuted instantiation: libelf-loader.c:radix_tree_replace_slot Unexecuted instantiation: console.c:radix_tree_replace_slot Unexecuted instantiation: ns16550.c:radix_tree_replace_slot Unexecuted instantiation: cpufreq.c:radix_tree_replace_slot Unexecuted instantiation: cpufreq_ondemand.c:radix_tree_replace_slot Unexecuted instantiation: cpufreq_misc_governors.c:radix_tree_replace_slot Unexecuted instantiation: utility.c:radix_tree_replace_slot Unexecuted instantiation: vpci.c:radix_tree_replace_slot Unexecuted instantiation: header.c:radix_tree_replace_slot Unexecuted instantiation: msi.c:radix_tree_replace_slot Unexecuted instantiation: msix.c:radix_tree_replace_slot Unexecuted instantiation: iommu.c:radix_tree_replace_slot Unexecuted instantiation: io.c:radix_tree_replace_slot Unexecuted instantiation: pci.c:radix_tree_replace_slot Unexecuted instantiation: utils.c:radix_tree_replace_slot Unexecuted instantiation: qinval.c:radix_tree_replace_slot Unexecuted instantiation: intremap.c:radix_tree_replace_slot Unexecuted instantiation: quirks.c:radix_tree_replace_slot Unexecuted instantiation: vtd.c:radix_tree_replace_slot Unexecuted instantiation: ats.c:radix_tree_replace_slot Unexecuted instantiation: iommu_init.c:radix_tree_replace_slot Unexecuted instantiation: iommu_map.c:radix_tree_replace_slot Unexecuted instantiation: pci_amd_iommu.c:radix_tree_replace_slot Unexecuted instantiation: iommu_intr.c:radix_tree_replace_slot Unexecuted instantiation: iommu_cmd.c:radix_tree_replace_slot Unexecuted instantiation: iommu_guest.c:radix_tree_replace_slot Unexecuted instantiation: pmstat.c:radix_tree_replace_slot Unexecuted instantiation: xsm_core.c:radix_tree_replace_slot Unexecuted instantiation: apic.c:radix_tree_replace_slot Unexecuted instantiation: cpuid.c:radix_tree_replace_slot Unexecuted instantiation: compat.c:radix_tree_replace_slot Unexecuted instantiation: crash.c:radix_tree_replace_slot Unexecuted instantiation: debug.c:radix_tree_replace_slot Unexecuted instantiation: domain_page.c:radix_tree_replace_slot Unexecuted instantiation: flushtlb.c:radix_tree_replace_slot Unexecuted instantiation: hypercall.c:radix_tree_replace_slot Unexecuted instantiation: i387.c:radix_tree_replace_slot Unexecuted instantiation: i8259.c:radix_tree_replace_slot Unexecuted instantiation: io_apic.c:radix_tree_replace_slot Unexecuted instantiation: msr.c:radix_tree_replace_slot Unexecuted instantiation: ioport_emulate.c:radix_tree_replace_slot irq.c:radix_tree_replace_slot Line | Count | Source | 166 | 48 | { | 167 | 48 | BUG_ON(radix_tree_is_indirect_ptr(item)); | 168 | 48 | rcu_assign_pointer(*pslot, item); | 169 | 48 | } |
Unexecuted instantiation: machine_kexec.c:radix_tree_replace_slot Unexecuted instantiation: microcode_amd.c:radix_tree_replace_slot Unexecuted instantiation: microcode_intel.c:radix_tree_replace_slot Unexecuted instantiation: microcode.c:radix_tree_replace_slot Unexecuted instantiation: mm.c:radix_tree_replace_slot Unexecuted instantiation: mpparse.c:radix_tree_replace_slot Unexecuted instantiation: nmi.c:radix_tree_replace_slot Unexecuted instantiation: numa.c:radix_tree_replace_slot Unexecuted instantiation: physdev.c:radix_tree_replace_slot Unexecuted instantiation: platform_hypercall.c:radix_tree_replace_slot Unexecuted instantiation: psr.c:radix_tree_replace_slot Unexecuted instantiation: setup.c:radix_tree_replace_slot Unexecuted instantiation: smp.c:radix_tree_replace_slot Unexecuted instantiation: smpboot.c:radix_tree_replace_slot Unexecuted instantiation: traps.c:radix_tree_replace_slot Unexecuted instantiation: usercopy.c:radix_tree_replace_slot Unexecuted instantiation: x86_emulate.c:radix_tree_replace_slot Unexecuted instantiation: tboot.c:radix_tree_replace_slot Unexecuted instantiation: xstate.c:radix_tree_replace_slot Unexecuted instantiation: power.c:radix_tree_replace_slot Unexecuted instantiation: suspend.c:radix_tree_replace_slot Unexecuted instantiation: cpu_idle.c:radix_tree_replace_slot Unexecuted instantiation: amd.c:radix_tree_replace_slot Unexecuted instantiation: common.c:radix_tree_replace_slot Unexecuted instantiation: intel.c:radix_tree_replace_slot Unexecuted instantiation: mwait-idle.c:radix_tree_replace_slot Unexecuted instantiation: vpmu.c:radix_tree_replace_slot Unexecuted instantiation: vpmu_amd.c:radix_tree_replace_slot Unexecuted instantiation: vpmu_intel.c:radix_tree_replace_slot Unexecuted instantiation: amd_nonfatal.c:radix_tree_replace_slot Unexecuted instantiation: mce_amd.c:radix_tree_replace_slot Unexecuted instantiation: mcaction.c:radix_tree_replace_slot Unexecuted instantiation: barrier.c:radix_tree_replace_slot Unexecuted instantiation: mctelem.c:radix_tree_replace_slot Unexecuted instantiation: mce.c:radix_tree_replace_slot Unexecuted instantiation: mce-apei.c:radix_tree_replace_slot Unexecuted instantiation: mce_intel.c:radix_tree_replace_slot Unexecuted instantiation: non-fatal.c:radix_tree_replace_slot Unexecuted instantiation: util.c:radix_tree_replace_slot Unexecuted instantiation: vmce.c:radix_tree_replace_slot Unexecuted instantiation: delivery.c:radix_tree_replace_slot Unexecuted instantiation: asid.c:radix_tree_replace_slot Unexecuted instantiation: dm.c:radix_tree_replace_slot Unexecuted instantiation: emulate.c:radix_tree_replace_slot Unexecuted instantiation: hpet.c:radix_tree_replace_slot Unexecuted instantiation: hvm.c:radix_tree_replace_slot Unexecuted instantiation: i8254.c:radix_tree_replace_slot Unexecuted instantiation: intercept.c:radix_tree_replace_slot Unexecuted instantiation: ioreq.c:radix_tree_replace_slot Unexecuted instantiation: mtrr.c:radix_tree_replace_slot Unexecuted instantiation: nestedhvm.c:radix_tree_replace_slot Unexecuted instantiation: pmtimer.c:radix_tree_replace_slot Unexecuted instantiation: rtc.c:radix_tree_replace_slot Unexecuted instantiation: save.c:radix_tree_replace_slot Unexecuted instantiation: stdvga.c:radix_tree_replace_slot Unexecuted instantiation: vioapic.c:radix_tree_replace_slot Unexecuted instantiation: viridian.c:radix_tree_replace_slot Unexecuted instantiation: vlapic.c:radix_tree_replace_slot Unexecuted instantiation: vmsi.c:radix_tree_replace_slot Unexecuted instantiation: vpic.c:radix_tree_replace_slot Unexecuted instantiation: vpt.c:radix_tree_replace_slot Unexecuted instantiation: intr.c:radix_tree_replace_slot Unexecuted instantiation: nestedsvm.c:radix_tree_replace_slot Unexecuted instantiation: svm.c:radix_tree_replace_slot Unexecuted instantiation: svmdebug.c:radix_tree_replace_slot Unexecuted instantiation: vmcb.c:radix_tree_replace_slot Unexecuted instantiation: realmode.c:radix_tree_replace_slot Unexecuted instantiation: vmcs.c:radix_tree_replace_slot Unexecuted instantiation: vmx.c:radix_tree_replace_slot Unexecuted instantiation: vvmx.c:radix_tree_replace_slot Unexecuted instantiation: paging.c:radix_tree_replace_slot Unexecuted instantiation: p2m.c:radix_tree_replace_slot Unexecuted instantiation: p2m-pt.c:radix_tree_replace_slot Unexecuted instantiation: p2m-ept.c:radix_tree_replace_slot Unexecuted instantiation: p2m-pod.c:radix_tree_replace_slot Unexecuted instantiation: altp2m.c:radix_tree_replace_slot Unexecuted instantiation: guest_walk.c:radix_tree_replace_slot Unexecuted instantiation: mem_paging.c:radix_tree_replace_slot Unexecuted instantiation: mem_sharing.c:radix_tree_replace_slot Unexecuted instantiation: multi.c:radix_tree_replace_slot Unexecuted instantiation: hap.c:radix_tree_replace_slot Unexecuted instantiation: nested_hap.c:radix_tree_replace_slot Unexecuted instantiation: nested_ept.c:radix_tree_replace_slot Unexecuted instantiation: nmi_int.c:radix_tree_replace_slot Unexecuted instantiation: op_model_ppro.c:radix_tree_replace_slot Unexecuted instantiation: op_model_athlon.c:radix_tree_replace_slot Unexecuted instantiation: backtrace.c:radix_tree_replace_slot Unexecuted instantiation: callback.c:radix_tree_replace_slot Unexecuted instantiation: descriptor-tables.c:radix_tree_replace_slot Unexecuted instantiation: emul-gate-op.c:radix_tree_replace_slot Unexecuted instantiation: emul-inv-op.c:radix_tree_replace_slot Unexecuted instantiation: emul-priv-op.c:radix_tree_replace_slot Unexecuted instantiation: iret.c:radix_tree_replace_slot Unexecuted instantiation: misc-hypercalls.c:radix_tree_replace_slot Unexecuted instantiation: ro-page-fault.c:radix_tree_replace_slot |
170 | | |
171 | | |
172 | | /** |
173 | | * radix_tree_{int_to_ptr,ptr_to_int}: |
174 | | * |
175 | | * Allow storage of signed integers in radix-tree slots. We use an encoding |
176 | | * in which the bottom two bits of the slot pointer are reserved (bit 0 for |
177 | | * the indirect-pointer tag; bit 1 always set to prevent an in-use |
178 | | * integer-valued slot from being NULL and thus mistakenly being reaped). |
179 | | */ |
180 | | static inline void *radix_tree_int_to_ptr(int val) |
181 | 96 | { |
182 | 96 | long _ptr = ((long)val << 2) | 0x2l; |
183 | 96 | ASSERT((_ptr >> 2) == val); |
184 | 96 | return (void *)_ptr; |
185 | 96 | } Unexecuted instantiation: cpu.c:radix_tree_int_to_ptr Unexecuted instantiation: cpupool.c:radix_tree_int_to_ptr Unexecuted instantiation: domctl.c:radix_tree_int_to_ptr Unexecuted instantiation: domain.c:radix_tree_int_to_ptr Unexecuted instantiation: event_2l.c:radix_tree_int_to_ptr Unexecuted instantiation: event_channel.c:radix_tree_int_to_ptr Unexecuted instantiation: event_fifo.c:radix_tree_int_to_ptr Unexecuted instantiation: grant_table.c:radix_tree_int_to_ptr Unexecuted instantiation: guestcopy.c:radix_tree_int_to_ptr Unexecuted instantiation: kernel.c:radix_tree_int_to_ptr Unexecuted instantiation: keyhandler.c:radix_tree_int_to_ptr Unexecuted instantiation: kexec.c:radix_tree_int_to_ptr Unexecuted instantiation: kimage.c:radix_tree_int_to_ptr Unexecuted instantiation: mem_access.c:radix_tree_int_to_ptr Unexecuted instantiation: memory.c:radix_tree_int_to_ptr Unexecuted instantiation: monitor.c:radix_tree_int_to_ptr Unexecuted instantiation: multicall.c:radix_tree_int_to_ptr Unexecuted instantiation: page_alloc.c:radix_tree_int_to_ptr Unexecuted instantiation: rangeset.c:radix_tree_int_to_ptr Unexecuted instantiation: radix-tree.c:radix_tree_int_to_ptr Unexecuted instantiation: rcupdate.c:radix_tree_int_to_ptr Unexecuted instantiation: sched_arinc653.c:radix_tree_int_to_ptr Unexecuted instantiation: sched_credit.c:radix_tree_int_to_ptr Unexecuted instantiation: sched_credit2.c:radix_tree_int_to_ptr Unexecuted instantiation: sched_rt.c:radix_tree_int_to_ptr Unexecuted instantiation: sched_null.c:radix_tree_int_to_ptr Unexecuted instantiation: schedule.c:radix_tree_int_to_ptr Unexecuted instantiation: shutdown.c:radix_tree_int_to_ptr Unexecuted instantiation: softirq.c:radix_tree_int_to_ptr Unexecuted instantiation: spinlock.c:radix_tree_int_to_ptr Unexecuted instantiation: stop_machine.c:radix_tree_int_to_ptr Unexecuted instantiation: symbols.c:radix_tree_int_to_ptr Unexecuted instantiation: sysctl.c:radix_tree_int_to_ptr Unexecuted instantiation: tasklet.c:radix_tree_int_to_ptr Unexecuted instantiation: time.c:radix_tree_int_to_ptr Unexecuted instantiation: timer.c:radix_tree_int_to_ptr Unexecuted instantiation: trace.c:radix_tree_int_to_ptr Unexecuted instantiation: vm_event.c:radix_tree_int_to_ptr Unexecuted instantiation: vsprintf.c:radix_tree_int_to_ptr Unexecuted instantiation: wait.c:radix_tree_int_to_ptr Unexecuted instantiation: xenoprof.c:radix_tree_int_to_ptr Unexecuted instantiation: tmem.c:radix_tree_int_to_ptr Unexecuted instantiation: tmem_xen.c:radix_tree_int_to_ptr Unexecuted instantiation: tmem_control.c:radix_tree_int_to_ptr Unexecuted instantiation: llvm.c:radix_tree_int_to_ptr Unexecuted instantiation: libelf-loader.c:radix_tree_int_to_ptr Unexecuted instantiation: console.c:radix_tree_int_to_ptr Unexecuted instantiation: ns16550.c:radix_tree_int_to_ptr Unexecuted instantiation: cpufreq.c:radix_tree_int_to_ptr Unexecuted instantiation: cpufreq_ondemand.c:radix_tree_int_to_ptr Unexecuted instantiation: cpufreq_misc_governors.c:radix_tree_int_to_ptr Unexecuted instantiation: utility.c:radix_tree_int_to_ptr Unexecuted instantiation: vpci.c:radix_tree_int_to_ptr Unexecuted instantiation: header.c:radix_tree_int_to_ptr Unexecuted instantiation: msi.c:radix_tree_int_to_ptr Unexecuted instantiation: msix.c:radix_tree_int_to_ptr Unexecuted instantiation: iommu.c:radix_tree_int_to_ptr Unexecuted instantiation: io.c:radix_tree_int_to_ptr Unexecuted instantiation: pci.c:radix_tree_int_to_ptr Unexecuted instantiation: utils.c:radix_tree_int_to_ptr Unexecuted instantiation: qinval.c:radix_tree_int_to_ptr Unexecuted instantiation: intremap.c:radix_tree_int_to_ptr Unexecuted instantiation: quirks.c:radix_tree_int_to_ptr Unexecuted instantiation: vtd.c:radix_tree_int_to_ptr Unexecuted instantiation: ats.c:radix_tree_int_to_ptr Unexecuted instantiation: iommu_init.c:radix_tree_int_to_ptr Unexecuted instantiation: iommu_map.c:radix_tree_int_to_ptr Unexecuted instantiation: pci_amd_iommu.c:radix_tree_int_to_ptr Unexecuted instantiation: iommu_intr.c:radix_tree_int_to_ptr Unexecuted instantiation: iommu_cmd.c:radix_tree_int_to_ptr Unexecuted instantiation: iommu_guest.c:radix_tree_int_to_ptr Unexecuted instantiation: pmstat.c:radix_tree_int_to_ptr Unexecuted instantiation: xsm_core.c:radix_tree_int_to_ptr Unexecuted instantiation: apic.c:radix_tree_int_to_ptr Unexecuted instantiation: cpuid.c:radix_tree_int_to_ptr Unexecuted instantiation: compat.c:radix_tree_int_to_ptr Unexecuted instantiation: crash.c:radix_tree_int_to_ptr Unexecuted instantiation: debug.c:radix_tree_int_to_ptr Unexecuted instantiation: domain_page.c:radix_tree_int_to_ptr Unexecuted instantiation: flushtlb.c:radix_tree_int_to_ptr Unexecuted instantiation: hypercall.c:radix_tree_int_to_ptr Unexecuted instantiation: i387.c:radix_tree_int_to_ptr Unexecuted instantiation: i8259.c:radix_tree_int_to_ptr Unexecuted instantiation: io_apic.c:radix_tree_int_to_ptr Unexecuted instantiation: msr.c:radix_tree_int_to_ptr Unexecuted instantiation: ioport_emulate.c:radix_tree_int_to_ptr irq.c:radix_tree_int_to_ptr Line | Count | Source | 181 | 96 | { | 182 | 96 | long _ptr = ((long)val << 2) | 0x2l; | 183 | 96 | ASSERT((_ptr >> 2) == val); | 184 | 96 | return (void *)_ptr; | 185 | 96 | } |
Unexecuted instantiation: machine_kexec.c:radix_tree_int_to_ptr Unexecuted instantiation: microcode_amd.c:radix_tree_int_to_ptr Unexecuted instantiation: microcode_intel.c:radix_tree_int_to_ptr Unexecuted instantiation: microcode.c:radix_tree_int_to_ptr Unexecuted instantiation: mm.c:radix_tree_int_to_ptr Unexecuted instantiation: mpparse.c:radix_tree_int_to_ptr Unexecuted instantiation: nmi.c:radix_tree_int_to_ptr Unexecuted instantiation: numa.c:radix_tree_int_to_ptr Unexecuted instantiation: physdev.c:radix_tree_int_to_ptr Unexecuted instantiation: platform_hypercall.c:radix_tree_int_to_ptr Unexecuted instantiation: psr.c:radix_tree_int_to_ptr Unexecuted instantiation: setup.c:radix_tree_int_to_ptr Unexecuted instantiation: smp.c:radix_tree_int_to_ptr Unexecuted instantiation: smpboot.c:radix_tree_int_to_ptr Unexecuted instantiation: traps.c:radix_tree_int_to_ptr Unexecuted instantiation: usercopy.c:radix_tree_int_to_ptr Unexecuted instantiation: x86_emulate.c:radix_tree_int_to_ptr Unexecuted instantiation: tboot.c:radix_tree_int_to_ptr Unexecuted instantiation: xstate.c:radix_tree_int_to_ptr Unexecuted instantiation: power.c:radix_tree_int_to_ptr Unexecuted instantiation: suspend.c:radix_tree_int_to_ptr Unexecuted instantiation: cpu_idle.c:radix_tree_int_to_ptr Unexecuted instantiation: amd.c:radix_tree_int_to_ptr Unexecuted instantiation: common.c:radix_tree_int_to_ptr Unexecuted instantiation: intel.c:radix_tree_int_to_ptr Unexecuted instantiation: mwait-idle.c:radix_tree_int_to_ptr Unexecuted instantiation: vpmu.c:radix_tree_int_to_ptr Unexecuted instantiation: vpmu_amd.c:radix_tree_int_to_ptr Unexecuted instantiation: vpmu_intel.c:radix_tree_int_to_ptr Unexecuted instantiation: amd_nonfatal.c:radix_tree_int_to_ptr Unexecuted instantiation: mce_amd.c:radix_tree_int_to_ptr Unexecuted instantiation: mcaction.c:radix_tree_int_to_ptr Unexecuted instantiation: barrier.c:radix_tree_int_to_ptr Unexecuted instantiation: mctelem.c:radix_tree_int_to_ptr Unexecuted instantiation: mce.c:radix_tree_int_to_ptr Unexecuted instantiation: mce-apei.c:radix_tree_int_to_ptr Unexecuted instantiation: mce_intel.c:radix_tree_int_to_ptr Unexecuted instantiation: non-fatal.c:radix_tree_int_to_ptr Unexecuted instantiation: util.c:radix_tree_int_to_ptr Unexecuted instantiation: vmce.c:radix_tree_int_to_ptr Unexecuted instantiation: delivery.c:radix_tree_int_to_ptr Unexecuted instantiation: asid.c:radix_tree_int_to_ptr Unexecuted instantiation: dm.c:radix_tree_int_to_ptr Unexecuted instantiation: emulate.c:radix_tree_int_to_ptr Unexecuted instantiation: hpet.c:radix_tree_int_to_ptr Unexecuted instantiation: hvm.c:radix_tree_int_to_ptr Unexecuted instantiation: i8254.c:radix_tree_int_to_ptr Unexecuted instantiation: intercept.c:radix_tree_int_to_ptr Unexecuted instantiation: ioreq.c:radix_tree_int_to_ptr Unexecuted instantiation: mtrr.c:radix_tree_int_to_ptr Unexecuted instantiation: nestedhvm.c:radix_tree_int_to_ptr Unexecuted instantiation: pmtimer.c:radix_tree_int_to_ptr Unexecuted instantiation: rtc.c:radix_tree_int_to_ptr Unexecuted instantiation: save.c:radix_tree_int_to_ptr Unexecuted instantiation: stdvga.c:radix_tree_int_to_ptr Unexecuted instantiation: vioapic.c:radix_tree_int_to_ptr Unexecuted instantiation: viridian.c:radix_tree_int_to_ptr Unexecuted instantiation: vlapic.c:radix_tree_int_to_ptr Unexecuted instantiation: vmsi.c:radix_tree_int_to_ptr Unexecuted instantiation: vpic.c:radix_tree_int_to_ptr Unexecuted instantiation: vpt.c:radix_tree_int_to_ptr Unexecuted instantiation: intr.c:radix_tree_int_to_ptr Unexecuted instantiation: nestedsvm.c:radix_tree_int_to_ptr Unexecuted instantiation: svm.c:radix_tree_int_to_ptr Unexecuted instantiation: svmdebug.c:radix_tree_int_to_ptr Unexecuted instantiation: vmcb.c:radix_tree_int_to_ptr Unexecuted instantiation: realmode.c:radix_tree_int_to_ptr Unexecuted instantiation: vmcs.c:radix_tree_int_to_ptr Unexecuted instantiation: vmx.c:radix_tree_int_to_ptr Unexecuted instantiation: vvmx.c:radix_tree_int_to_ptr Unexecuted instantiation: paging.c:radix_tree_int_to_ptr Unexecuted instantiation: p2m.c:radix_tree_int_to_ptr Unexecuted instantiation: p2m-pt.c:radix_tree_int_to_ptr Unexecuted instantiation: p2m-ept.c:radix_tree_int_to_ptr Unexecuted instantiation: p2m-pod.c:radix_tree_int_to_ptr Unexecuted instantiation: altp2m.c:radix_tree_int_to_ptr Unexecuted instantiation: guest_walk.c:radix_tree_int_to_ptr Unexecuted instantiation: mem_paging.c:radix_tree_int_to_ptr Unexecuted instantiation: mem_sharing.c:radix_tree_int_to_ptr Unexecuted instantiation: multi.c:radix_tree_int_to_ptr Unexecuted instantiation: hap.c:radix_tree_int_to_ptr Unexecuted instantiation: nested_hap.c:radix_tree_int_to_ptr Unexecuted instantiation: nested_ept.c:radix_tree_int_to_ptr Unexecuted instantiation: nmi_int.c:radix_tree_int_to_ptr Unexecuted instantiation: op_model_ppro.c:radix_tree_int_to_ptr Unexecuted instantiation: op_model_athlon.c:radix_tree_int_to_ptr Unexecuted instantiation: backtrace.c:radix_tree_int_to_ptr Unexecuted instantiation: callback.c:radix_tree_int_to_ptr Unexecuted instantiation: descriptor-tables.c:radix_tree_int_to_ptr Unexecuted instantiation: emul-gate-op.c:radix_tree_int_to_ptr Unexecuted instantiation: emul-inv-op.c:radix_tree_int_to_ptr Unexecuted instantiation: emul-priv-op.c:radix_tree_int_to_ptr Unexecuted instantiation: iret.c:radix_tree_int_to_ptr Unexecuted instantiation: misc-hypercalls.c:radix_tree_int_to_ptr Unexecuted instantiation: ro-page-fault.c:radix_tree_int_to_ptr |
186 | | |
187 | | static inline int radix_tree_ptr_to_int(void *ptr) |
188 | 7.99k | { |
189 | 7.99k | ASSERT(((long)ptr & 0x3) == 0x2); |
190 | 7.99k | return (int)((long)ptr >> 2); |
191 | 7.99k | } Unexecuted instantiation: cpu.c:radix_tree_ptr_to_int Unexecuted instantiation: cpupool.c:radix_tree_ptr_to_int Unexecuted instantiation: domctl.c:radix_tree_ptr_to_int Unexecuted instantiation: domain.c:radix_tree_ptr_to_int Unexecuted instantiation: event_2l.c:radix_tree_ptr_to_int Unexecuted instantiation: event_channel.c:radix_tree_ptr_to_int Unexecuted instantiation: event_fifo.c:radix_tree_ptr_to_int Unexecuted instantiation: grant_table.c:radix_tree_ptr_to_int Unexecuted instantiation: guestcopy.c:radix_tree_ptr_to_int Unexecuted instantiation: kernel.c:radix_tree_ptr_to_int Unexecuted instantiation: keyhandler.c:radix_tree_ptr_to_int Unexecuted instantiation: kexec.c:radix_tree_ptr_to_int Unexecuted instantiation: kimage.c:radix_tree_ptr_to_int Unexecuted instantiation: mem_access.c:radix_tree_ptr_to_int Unexecuted instantiation: memory.c:radix_tree_ptr_to_int Unexecuted instantiation: monitor.c:radix_tree_ptr_to_int Unexecuted instantiation: multicall.c:radix_tree_ptr_to_int Unexecuted instantiation: page_alloc.c:radix_tree_ptr_to_int Unexecuted instantiation: rangeset.c:radix_tree_ptr_to_int Unexecuted instantiation: radix-tree.c:radix_tree_ptr_to_int Unexecuted instantiation: rcupdate.c:radix_tree_ptr_to_int Unexecuted instantiation: sched_arinc653.c:radix_tree_ptr_to_int Unexecuted instantiation: sched_credit.c:radix_tree_ptr_to_int Unexecuted instantiation: sched_credit2.c:radix_tree_ptr_to_int Unexecuted instantiation: sched_rt.c:radix_tree_ptr_to_int Unexecuted instantiation: sched_null.c:radix_tree_ptr_to_int Unexecuted instantiation: schedule.c:radix_tree_ptr_to_int Unexecuted instantiation: shutdown.c:radix_tree_ptr_to_int Unexecuted instantiation: softirq.c:radix_tree_ptr_to_int Unexecuted instantiation: spinlock.c:radix_tree_ptr_to_int Unexecuted instantiation: stop_machine.c:radix_tree_ptr_to_int Unexecuted instantiation: symbols.c:radix_tree_ptr_to_int Unexecuted instantiation: sysctl.c:radix_tree_ptr_to_int Unexecuted instantiation: tasklet.c:radix_tree_ptr_to_int Unexecuted instantiation: time.c:radix_tree_ptr_to_int Unexecuted instantiation: timer.c:radix_tree_ptr_to_int Unexecuted instantiation: trace.c:radix_tree_ptr_to_int Unexecuted instantiation: vm_event.c:radix_tree_ptr_to_int Unexecuted instantiation: vsprintf.c:radix_tree_ptr_to_int Unexecuted instantiation: wait.c:radix_tree_ptr_to_int Unexecuted instantiation: xenoprof.c:radix_tree_ptr_to_int Unexecuted instantiation: tmem.c:radix_tree_ptr_to_int Unexecuted instantiation: tmem_xen.c:radix_tree_ptr_to_int Unexecuted instantiation: tmem_control.c:radix_tree_ptr_to_int Unexecuted instantiation: llvm.c:radix_tree_ptr_to_int Unexecuted instantiation: libelf-loader.c:radix_tree_ptr_to_int Unexecuted instantiation: console.c:radix_tree_ptr_to_int Unexecuted instantiation: ns16550.c:radix_tree_ptr_to_int Unexecuted instantiation: cpufreq.c:radix_tree_ptr_to_int Unexecuted instantiation: cpufreq_ondemand.c:radix_tree_ptr_to_int Unexecuted instantiation: cpufreq_misc_governors.c:radix_tree_ptr_to_int Unexecuted instantiation: utility.c:radix_tree_ptr_to_int Unexecuted instantiation: vpci.c:radix_tree_ptr_to_int Unexecuted instantiation: header.c:radix_tree_ptr_to_int Unexecuted instantiation: msi.c:radix_tree_ptr_to_int Unexecuted instantiation: msix.c:radix_tree_ptr_to_int Unexecuted instantiation: iommu.c:radix_tree_ptr_to_int Unexecuted instantiation: io.c:radix_tree_ptr_to_int Unexecuted instantiation: pci.c:radix_tree_ptr_to_int Unexecuted instantiation: utils.c:radix_tree_ptr_to_int Unexecuted instantiation: qinval.c:radix_tree_ptr_to_int Unexecuted instantiation: intremap.c:radix_tree_ptr_to_int Unexecuted instantiation: quirks.c:radix_tree_ptr_to_int Unexecuted instantiation: vtd.c:radix_tree_ptr_to_int Unexecuted instantiation: ats.c:radix_tree_ptr_to_int Unexecuted instantiation: iommu_init.c:radix_tree_ptr_to_int Unexecuted instantiation: iommu_map.c:radix_tree_ptr_to_int Unexecuted instantiation: pci_amd_iommu.c:radix_tree_ptr_to_int Unexecuted instantiation: iommu_intr.c:radix_tree_ptr_to_int Unexecuted instantiation: iommu_cmd.c:radix_tree_ptr_to_int Unexecuted instantiation: iommu_guest.c:radix_tree_ptr_to_int Unexecuted instantiation: pmstat.c:radix_tree_ptr_to_int Unexecuted instantiation: xsm_core.c:radix_tree_ptr_to_int Unexecuted instantiation: apic.c:radix_tree_ptr_to_int Unexecuted instantiation: cpuid.c:radix_tree_ptr_to_int Unexecuted instantiation: compat.c:radix_tree_ptr_to_int Unexecuted instantiation: crash.c:radix_tree_ptr_to_int Unexecuted instantiation: debug.c:radix_tree_ptr_to_int Unexecuted instantiation: domain_page.c:radix_tree_ptr_to_int Unexecuted instantiation: flushtlb.c:radix_tree_ptr_to_int Unexecuted instantiation: hypercall.c:radix_tree_ptr_to_int Unexecuted instantiation: i387.c:radix_tree_ptr_to_int Unexecuted instantiation: i8259.c:radix_tree_ptr_to_int Unexecuted instantiation: io_apic.c:radix_tree_ptr_to_int Unexecuted instantiation: msr.c:radix_tree_ptr_to_int Unexecuted instantiation: ioport_emulate.c:radix_tree_ptr_to_int irq.c:radix_tree_ptr_to_int Line | Count | Source | 188 | 7.99k | { | 189 | 7.99k | ASSERT(((long)ptr & 0x3) == 0x2); | 190 | 7.99k | return (int)((long)ptr >> 2); | 191 | 7.99k | } |
Unexecuted instantiation: machine_kexec.c:radix_tree_ptr_to_int Unexecuted instantiation: microcode_amd.c:radix_tree_ptr_to_int Unexecuted instantiation: microcode_intel.c:radix_tree_ptr_to_int Unexecuted instantiation: microcode.c:radix_tree_ptr_to_int Unexecuted instantiation: mm.c:radix_tree_ptr_to_int Unexecuted instantiation: mpparse.c:radix_tree_ptr_to_int Unexecuted instantiation: nmi.c:radix_tree_ptr_to_int Unexecuted instantiation: numa.c:radix_tree_ptr_to_int Unexecuted instantiation: physdev.c:radix_tree_ptr_to_int Unexecuted instantiation: platform_hypercall.c:radix_tree_ptr_to_int Unexecuted instantiation: psr.c:radix_tree_ptr_to_int Unexecuted instantiation: setup.c:radix_tree_ptr_to_int Unexecuted instantiation: smp.c:radix_tree_ptr_to_int Unexecuted instantiation: smpboot.c:radix_tree_ptr_to_int Unexecuted instantiation: traps.c:radix_tree_ptr_to_int Unexecuted instantiation: usercopy.c:radix_tree_ptr_to_int Unexecuted instantiation: x86_emulate.c:radix_tree_ptr_to_int Unexecuted instantiation: tboot.c:radix_tree_ptr_to_int Unexecuted instantiation: xstate.c:radix_tree_ptr_to_int Unexecuted instantiation: power.c:radix_tree_ptr_to_int Unexecuted instantiation: suspend.c:radix_tree_ptr_to_int Unexecuted instantiation: cpu_idle.c:radix_tree_ptr_to_int Unexecuted instantiation: amd.c:radix_tree_ptr_to_int Unexecuted instantiation: common.c:radix_tree_ptr_to_int Unexecuted instantiation: intel.c:radix_tree_ptr_to_int Unexecuted instantiation: mwait-idle.c:radix_tree_ptr_to_int Unexecuted instantiation: vpmu.c:radix_tree_ptr_to_int Unexecuted instantiation: vpmu_amd.c:radix_tree_ptr_to_int Unexecuted instantiation: vpmu_intel.c:radix_tree_ptr_to_int Unexecuted instantiation: amd_nonfatal.c:radix_tree_ptr_to_int Unexecuted instantiation: mce_amd.c:radix_tree_ptr_to_int Unexecuted instantiation: mcaction.c:radix_tree_ptr_to_int Unexecuted instantiation: barrier.c:radix_tree_ptr_to_int Unexecuted instantiation: mctelem.c:radix_tree_ptr_to_int Unexecuted instantiation: mce.c:radix_tree_ptr_to_int Unexecuted instantiation: mce-apei.c:radix_tree_ptr_to_int Unexecuted instantiation: mce_intel.c:radix_tree_ptr_to_int Unexecuted instantiation: non-fatal.c:radix_tree_ptr_to_int Unexecuted instantiation: util.c:radix_tree_ptr_to_int Unexecuted instantiation: vmce.c:radix_tree_ptr_to_int Unexecuted instantiation: delivery.c:radix_tree_ptr_to_int Unexecuted instantiation: asid.c:radix_tree_ptr_to_int Unexecuted instantiation: dm.c:radix_tree_ptr_to_int Unexecuted instantiation: emulate.c:radix_tree_ptr_to_int Unexecuted instantiation: hpet.c:radix_tree_ptr_to_int Unexecuted instantiation: hvm.c:radix_tree_ptr_to_int Unexecuted instantiation: i8254.c:radix_tree_ptr_to_int Unexecuted instantiation: intercept.c:radix_tree_ptr_to_int Unexecuted instantiation: ioreq.c:radix_tree_ptr_to_int Unexecuted instantiation: mtrr.c:radix_tree_ptr_to_int Unexecuted instantiation: nestedhvm.c:radix_tree_ptr_to_int Unexecuted instantiation: pmtimer.c:radix_tree_ptr_to_int Unexecuted instantiation: rtc.c:radix_tree_ptr_to_int Unexecuted instantiation: save.c:radix_tree_ptr_to_int Unexecuted instantiation: stdvga.c:radix_tree_ptr_to_int Unexecuted instantiation: vioapic.c:radix_tree_ptr_to_int Unexecuted instantiation: viridian.c:radix_tree_ptr_to_int Unexecuted instantiation: vlapic.c:radix_tree_ptr_to_int Unexecuted instantiation: vmsi.c:radix_tree_ptr_to_int Unexecuted instantiation: vpic.c:radix_tree_ptr_to_int Unexecuted instantiation: vpt.c:radix_tree_ptr_to_int Unexecuted instantiation: intr.c:radix_tree_ptr_to_int Unexecuted instantiation: nestedsvm.c:radix_tree_ptr_to_int Unexecuted instantiation: svm.c:radix_tree_ptr_to_int Unexecuted instantiation: svmdebug.c:radix_tree_ptr_to_int Unexecuted instantiation: vmcb.c:radix_tree_ptr_to_int Unexecuted instantiation: realmode.c:radix_tree_ptr_to_int Unexecuted instantiation: vmcs.c:radix_tree_ptr_to_int Unexecuted instantiation: vmx.c:radix_tree_ptr_to_int Unexecuted instantiation: vvmx.c:radix_tree_ptr_to_int Unexecuted instantiation: paging.c:radix_tree_ptr_to_int Unexecuted instantiation: p2m.c:radix_tree_ptr_to_int Unexecuted instantiation: p2m-pt.c:radix_tree_ptr_to_int Unexecuted instantiation: p2m-ept.c:radix_tree_ptr_to_int Unexecuted instantiation: p2m-pod.c:radix_tree_ptr_to_int Unexecuted instantiation: altp2m.c:radix_tree_ptr_to_int Unexecuted instantiation: guest_walk.c:radix_tree_ptr_to_int Unexecuted instantiation: mem_paging.c:radix_tree_ptr_to_int Unexecuted instantiation: mem_sharing.c:radix_tree_ptr_to_int Unexecuted instantiation: multi.c:radix_tree_ptr_to_int Unexecuted instantiation: hap.c:radix_tree_ptr_to_int Unexecuted instantiation: nested_hap.c:radix_tree_ptr_to_int Unexecuted instantiation: nested_ept.c:radix_tree_ptr_to_int Unexecuted instantiation: nmi_int.c:radix_tree_ptr_to_int Unexecuted instantiation: op_model_ppro.c:radix_tree_ptr_to_int Unexecuted instantiation: op_model_athlon.c:radix_tree_ptr_to_int Unexecuted instantiation: backtrace.c:radix_tree_ptr_to_int Unexecuted instantiation: callback.c:radix_tree_ptr_to_int Unexecuted instantiation: descriptor-tables.c:radix_tree_ptr_to_int Unexecuted instantiation: emul-gate-op.c:radix_tree_ptr_to_int Unexecuted instantiation: emul-inv-op.c:radix_tree_ptr_to_int Unexecuted instantiation: emul-priv-op.c:radix_tree_ptr_to_int Unexecuted instantiation: iret.c:radix_tree_ptr_to_int Unexecuted instantiation: misc-hypercalls.c:radix_tree_ptr_to_int Unexecuted instantiation: ro-page-fault.c:radix_tree_ptr_to_int |
192 | | |
193 | | int radix_tree_insert(struct radix_tree_root *, unsigned long, void *); |
194 | | void *radix_tree_lookup(struct radix_tree_root *, unsigned long); |
195 | | void **radix_tree_lookup_slot(struct radix_tree_root *, unsigned long); |
196 | | void *radix_tree_delete(struct radix_tree_root *, unsigned long); |
197 | | unsigned int |
198 | | radix_tree_gang_lookup(struct radix_tree_root *root, void **results, |
199 | | unsigned long first_index, unsigned int max_items); |
200 | | unsigned int |
201 | | radix_tree_gang_lookup_slot(struct radix_tree_root *root, void ***results, |
202 | | unsigned long first_index, unsigned int max_items); |
203 | | unsigned long radix_tree_next_hole(struct radix_tree_root *root, |
204 | | unsigned long index, unsigned long max_scan); |
205 | | unsigned long radix_tree_prev_hole(struct radix_tree_root *root, |
206 | | unsigned long index, unsigned long max_scan); |
207 | | |
208 | | #endif /* _XEN_RADIX_TREE_H */ |