Lines Matching refs:ops
39 * @arg ops cache operations handle
42 struct nl_object *nl_object_alloc(struct nl_object_ops *ops)
46 if (ops->oo_size < sizeof(*new))
49 new = calloc(1, ops->oo_size);
56 new->ce_ops = ops;
57 if (ops->oo_constructor)
58 ops->oo_constructor(new);
72 struct nl_cache_ops *ops;
74 ops = nl_cache_ops_lookup(kind);
75 if (!ops)
78 if (!(*result = nl_object_alloc(ops->co_obj_ops)))
97 struct nl_object_ops *ops = obj_ops(obj);
101 new = nl_object_alloc(ops);
105 size = ops->oo_size - doff;
116 if (ops->oo_clone) {
117 if (ops->oo_clone(new, obj) < 0) {
121 } else if (size && ops->oo_free_data)
135 struct nl_object_ops *ops = obj_ops(obj);
143 if (ops->oo_free_data)
144 ops->oo_free_data(obj);
260 struct nl_object_ops *ops = obj_ops(a);
264 if (ops != obj_ops(b))
267 req_attrs = ops->oo_id_attrs;
278 if (ops->oo_compare == NULL)
281 return !(ops->oo_compare(a, b, req_attrs, 0));
298 struct nl_object_ops *ops = obj_ops(a);
300 if (ops != obj_ops(b) || ops->oo_compare == NULL)
303 return ops->oo_compare(a, b, ~0, 0);
317 struct nl_object_ops *ops = obj_ops(obj);
319 if (ops != obj_ops(filter) || ops->oo_compare == NULL)
322 return !(ops->oo_compare(obj, filter, filter->ce_mask,
341 struct nl_object_ops *ops = obj_ops(obj);
343 if (ops->oo_attrs2str != NULL)
344 return ops->oo_attrs2str(attrs, buf, len);