Lines Matching refs:obj
49 struct ias_object *obj; in irias_new_object() local
51 obj = kzalloc(sizeof(struct ias_object), GFP_ATOMIC); in irias_new_object()
52 if (obj == NULL) { in irias_new_object()
58 obj->magic = IAS_OBJECT_MAGIC; in irias_new_object()
59 obj->name = kstrndup(name, IAS_MAX_CLASSNAME, GFP_ATOMIC); in irias_new_object()
60 if (!obj->name) { in irias_new_object()
63 kfree(obj); in irias_new_object()
66 obj->id = id; in irias_new_object()
71 obj->attribs = hashbin_new(HB_LOCK); in irias_new_object()
73 if (obj->attribs == NULL) { in irias_new_object()
76 kfree(obj->name); in irias_new_object()
77 kfree(obj); in irias_new_object()
81 return obj; in irias_new_object()
104 void __irias_delete_object(struct ias_object *obj) in __irias_delete_object() argument
106 IRDA_ASSERT(obj != NULL, return;); in __irias_delete_object()
107 IRDA_ASSERT(obj->magic == IAS_OBJECT_MAGIC, return;); in __irias_delete_object()
109 kfree(obj->name); in __irias_delete_object()
111 hashbin_delete(obj->attribs, (FREE_FUNC) __irias_delete_attrib); in __irias_delete_object()
113 obj->magic = ~IAS_OBJECT_MAGIC; in __irias_delete_object()
115 kfree(obj); in __irias_delete_object()
125 int irias_delete_object(struct ias_object *obj) in irias_delete_object() argument
129 IRDA_ASSERT(obj != NULL, return -1;); in irias_delete_object()
130 IRDA_ASSERT(obj->magic == IAS_OBJECT_MAGIC, return -1;); in irias_delete_object()
133 node = hashbin_remove_this(irias_objects, (irda_queue_t *) obj); in irias_delete_object()
139 __irias_delete_object(obj); in irias_delete_object()
152 int irias_delete_attrib(struct ias_object *obj, struct ias_attrib *attrib, in irias_delete_attrib() argument
157 IRDA_ASSERT(obj != NULL, return -1;); in irias_delete_attrib()
158 IRDA_ASSERT(obj->magic == IAS_OBJECT_MAGIC, return -1;); in irias_delete_attrib()
162 node = hashbin_remove_this(obj->attribs, (irda_queue_t *) attrib); in irias_delete_attrib()
174 node = (struct ias_attrib *) hashbin_get_first(obj->attribs); in irias_delete_attrib()
176 irias_delete_object(obj); in irias_delete_attrib()
187 void irias_insert_object(struct ias_object *obj) in irias_insert_object() argument
189 IRDA_ASSERT(obj != NULL, return;); in irias_insert_object()
190 IRDA_ASSERT(obj->magic == IAS_OBJECT_MAGIC, return;); in irias_insert_object()
192 hashbin_insert(irias_objects, (irda_queue_t *) obj, 0, obj->name); in irias_insert_object()
217 struct ias_attrib *irias_find_attrib(struct ias_object *obj, char *name) in irias_find_attrib() argument
221 IRDA_ASSERT(obj != NULL, return NULL;); in irias_find_attrib()
222 IRDA_ASSERT(obj->magic == IAS_OBJECT_MAGIC, return NULL;); in irias_find_attrib()
225 attrib = hashbin_lock_find(obj->attribs, 0, name); in irias_find_attrib()
239 static void irias_add_attrib(struct ias_object *obj, struct ias_attrib *attrib, in irias_add_attrib() argument
242 IRDA_ASSERT(obj != NULL, return;); in irias_add_attrib()
243 IRDA_ASSERT(obj->magic == IAS_OBJECT_MAGIC, return;); in irias_add_attrib()
251 hashbin_insert(obj->attribs, (irda_queue_t *) attrib, 0, attrib->name); in irias_add_attrib()
263 struct ias_object *obj; in irias_object_change_attribute() local
268 obj = hashbin_lock_find(irias_objects, 0, obj_name); in irias_object_change_attribute()
269 if (obj == NULL) { in irias_object_change_attribute()
276 spin_lock_irqsave(&obj->attribs->hb_spinlock, flags); in irias_object_change_attribute()
279 attrib = hashbin_find(obj->attribs, 0, attrib_name); in irias_object_change_attribute()
283 spin_unlock_irqrestore(&obj->attribs->hb_spinlock, flags); in irias_object_change_attribute()
290 spin_unlock_irqrestore(&obj->attribs->hb_spinlock, flags); in irias_object_change_attribute()
301 spin_unlock_irqrestore(&obj->attribs->hb_spinlock, flags); in irias_object_change_attribute()
312 void irias_add_integer_attrib(struct ias_object *obj, char *name, int value, in irias_add_integer_attrib() argument
317 IRDA_ASSERT(obj != NULL, return;); in irias_add_integer_attrib()
318 IRDA_ASSERT(obj->magic == IAS_OBJECT_MAGIC, return;); in irias_add_integer_attrib()
343 irias_add_attrib(obj, attrib, owner); in irias_add_integer_attrib()
354 void irias_add_octseq_attrib(struct ias_object *obj, char *name, __u8 *octets, in irias_add_octseq_attrib() argument
359 IRDA_ASSERT(obj != NULL, return;); in irias_add_octseq_attrib()
360 IRDA_ASSERT(obj->magic == IAS_OBJECT_MAGIC, return;); in irias_add_octseq_attrib()
386 irias_add_attrib(obj, attrib, owner); in irias_add_octseq_attrib()
396 void irias_add_string_attrib(struct ias_object *obj, char *name, char *value, in irias_add_string_attrib() argument
401 IRDA_ASSERT(obj != NULL, return;); in irias_add_string_attrib()
402 IRDA_ASSERT(obj->magic == IAS_OBJECT_MAGIC, return;); in irias_add_string_attrib()
428 irias_add_attrib(obj, attrib, owner); in irias_add_string_attrib()