obj_t
avl_create(&avl_byid, cmp_id, sizeof (obj_t),
offsetof(obj_t, obj_avlid));
avl_create(&avl_byname, cmp_objname, sizeof (obj_t),
offsetof(obj_t, obj_avlname));
obj_t templ = {
obj_t *obj = avl_find(&avl_byid, &templ, &where);
obj_t *obj = a;
obj_t *obj = a;
add_name(obj_t *obj, const path_t *p, bool is_symlink)
const obj_t *l = a;
const obj_t *r = b;
const obj_t *l = a;
const obj_t *r = b;
static void add_name(obj_t *, const path_t *, bool);
static void expl(obj_t __kernel *k, obj_t __iomem *o,
obj_t __user *p, obj_t __percpu *pc,
obj_t __rcu *r)
(obj_t*)(k);
(obj_t __kernel*)(k);
(obj_t*)(o);
(obj_t __iomem*)(o);
(obj_t*)(p);
(obj_t __user*)(p);
(obj_t*)(pc);
(obj_t __percpu*)(pc);
(obj_t*)(r);
(obj_t __rcu*)(r);
static void expl(obj_t __kernel *k, obj_t __iomem *o,
obj_t __user *p, obj_t __percpu *pc,
obj_t __rcu *r)
(obj_t*)(k); // OK
(obj_t __kernel*)(k); // OK
(obj_t*)(o);
(obj_t __iomem*)(o); // OK
(obj_t*)(p);
(obj_t __user*)(p); // OK
(obj_t*)(pc);
(obj_t __percpu*)(pc); // OK
(obj_t*)(r);
(obj_t __rcu*)(r); // OK
(obj_t*)(v);
(obj_t __user*)(v);
(obj_t*)(o);
(obj_t __user*)(o);
(obj_t*)(p); // w
(obj_t __user*)(p); // ok
static void expl(ulong u, void *v, obj_t *o, obj_t __user *p)
(obj_t*)(u);
(obj_t __user*)(u);
(obj_t __user*)(u);
(obj_t*)(uip);
(obj_t __user*)(uip);
(obj_t*)(v);
(obj_t __user*)(v);
(obj_t*)(o);
(obj_t __user*)(o);
(obj_t __user*)(p);
static void expl(ulong u, uintptr_t uip, void *v, obj_t *o, obj_t __user *p)
(obj_t*)(u);