Lines Matching refs:shadow
6 additional "shadow" data with existing data structures. Shadow data is
8 unmodified. The shadow variable API described in this document is used
9 to allocate/add and remove/free shadow variables to/from their parents.
13 shadow data. The numeric identifier is a simple enumeration that may be
14 used to describe shadow variable version, class or type, etc. More
16 numeric id subsequently filters hashtable queries. Multiple shadow
24 (See the full API usage docbook notes in livepatch/shadow.c.)
26 A hashtable references all shadow variables. These references are
30 meta-data and shadow-data:
37 - data[] - storage for shadow data
48 * klp_shadow_get() - retrieve a shadow variable data pointer
51 * klp_shadow_alloc() - allocate and add a new shadow variable
60 - allocate a new shadow variable
64 * klp_shadow_get_or_alloc() - get existing or alloc a new shadow variable
69 - return existing shadow variable
73 - allocate a new shadow variable
77 * klp_shadow_free() - detach and free a <obj, id> shadow variable
83 - free shadow variable
85 * klp_shadow_free_all() - detach and free all <_, id> shadow variables
91 - free shadow variable
97 (See the example shadow variable livepatch modules in samples/livepatch/
111 be easiest to align their shadow variables lifetimes to the same
116 parent "goes live" (ie, any shadow variable get-API requests are made
120 allocate a shadow copy of the ps_lock pointer, then initialize it::
132 /* Attach a corresponding shadow variable, then initialize it */
140 When requiring a ps_lock, query the shadow variable API to retrieve one
153 When the parent sta_info structure is freed, first free the shadow
166 Sometimes it may not be convenient or possible to allocate shadow
168 require shadow variables for only a subset of parent object instances.
170 shadow variables to parents already in-flight.
172 For commit 1d147bfa6429, a good spot to allocate a shadow spinlock is
197 This usage will create a shadow variable, only if needed, otherwise it
200 Like the previous use-case, the shadow spinlock needs to be cleaned up.
201 A shadow variable can be freed just before its parent object is freed,
202 or even when the shadow variable itself is no longer required.
210 doesn't matter what data value the shadow variable holds, its existence
219 The livepatch implementation is based on the kpatch version of shadow
226 a datatype update technique called "shadow data structures".