• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/net/irda/

Lines Matching refs:self

65 static void __iriap_close(struct iriap_cb *self);
66 static int iriap_register_lsap(struct iriap_cb *self, __u8 slsap_sel, int mode);
82 static inline void iriap_start_watchdog_timer(struct iriap_cb *self,
85 irda_start_timer(&self->watchdog_timer, timeout, self,
172 struct iriap_cb *self;
176 self = kzalloc(sizeof(*self), GFP_ATOMIC);
177 if (!self) {
186 self->magic = IAS_MAGIC;
187 self->mode = mode;
189 iriap_register_lsap(self, slsap_sel, mode);
191 self->confirm = callback;
192 self->priv = priv;
196 self->max_header_size = LMP_MAX_HEADER;
198 init_timer(&self->watchdog_timer);
200 hashbin_insert(iriap, (irda_queue_t *) self, (long) self, NULL);
203 iriap_next_client_state(self, S_DISCONNECT);
204 iriap_next_call_state(self, S_MAKE_CALL);
205 iriap_next_server_state(self, R_DISCONNECT);
206 iriap_next_r_connect_state(self, R_WAITING);
208 return self;
213 * Function __iriap_close (self)
218 static void __iriap_close(struct iriap_cb *self)
222 IRDA_ASSERT(self != NULL, return;);
223 IRDA_ASSERT(self->magic == IAS_MAGIC, return;);
225 del_timer(&self->watchdog_timer);
227 if (self->request_skb)
228 dev_kfree_skb(self->request_skb);
230 self->magic = 0;
232 kfree(self);
240 void iriap_close(struct iriap_cb *self)
246 IRDA_ASSERT(self != NULL, return;);
247 IRDA_ASSERT(self->magic == IAS_MAGIC, return;);
249 if (self->lsap) {
250 irlmp_close_lsap(self->lsap);
251 self->lsap = NULL;
254 entry = (struct iriap_cb *) hashbin_remove(iriap, (long) self, NULL);
255 IRDA_ASSERT(entry == self, return;);
257 __iriap_close(self);
261 static int iriap_register_lsap(struct iriap_cb *self, __u8 slsap_sel, int mode)
272 notify.instance = self;
278 self->lsap = irlmp_open_lsap(slsap_sel, &notify, 0);
279 if (self->lsap == NULL) {
283 self->slsap_sel = self->lsap->slsap_sel;
298 struct iriap_cb *self;
302 self = (struct iriap_cb *) instance;
304 IRDA_ASSERT(self != NULL, return;);
305 IRDA_ASSERT(self->magic == IAS_MAGIC, return;);
309 del_timer(&self->watchdog_timer);
315 if (self->mode == IAS_CLIENT) {
319 iriap_do_client_event(self, IAP_LM_DISCONNECT_INDICATION,
324 * remember no to use self anymore after calling confirm
326 if (self->confirm)
327 self->confirm(IAS_DISCONNECT, 0, NULL, self->priv);
330 iriap_do_server_event(self, IAP_LM_DISCONNECT_INDICATION,
332 iriap_close(self);
339 static void iriap_disconnect_request(struct iriap_cb *self)
345 IRDA_ASSERT(self != NULL, return;);
346 IRDA_ASSERT(self->magic == IAS_MAGIC, return;);
361 irlmp_disconnect_request(self->lsap, tx_skb);
370 int iriap_getvaluebyclass_request(struct iriap_cb *self,
378 IRDA_ASSERT(self != NULL, return -1;);
379 IRDA_ASSERT(self->magic == IAS_MAGIC, return -1;);
385 self->daddr = daddr;
386 self->saddr = saddr;
391 self->operation = GET_VALUE_BY_CLASS;
394 iriap_start_watchdog_timer(self, 10*HZ);
399 skb_len = self->max_header_size+2+name_len+1+attr_len+4;
405 skb_reserve(tx_skb, self->max_header_size);
416 iriap_do_client_event(self, IAP_CALL_REQUEST_GVBC, tx_skb);
426 * Function iriap_getvaluebyclass_confirm (self, skb)
432 static void iriap_getvaluebyclass_confirm(struct iriap_cb *self,
445 IRDA_ASSERT(self != NULL, return;);
446 IRDA_ASSERT(self->magic == IAS_MAGIC, return;);
496 iriap_disconnect_request(self);
524 iriap_disconnect_request(self);
526 /* Warning, the client might close us, so remember no to use self
529 if (self->confirm)
530 self->confirm(IAS_SUCCESS, obj_id, value, self->priv);
543 static void iriap_getvaluebyclass_response(struct iriap_cb *self,
556 IRDA_ASSERT(self != NULL, return;);
557 IRDA_ASSERT(self->magic == IAS_MAGIC, return;);
569 tx_skb = alloc_skb(value->len + self->max_header_size + 32,
575 skb_reserve(tx_skb, self->max_header_size);
624 iriap_do_r_connect_event(self, IAP_CALL_RESPONSE, tx_skb);
631 * Function iriap_getvaluebyclass_indication (self, skb)
636 static void iriap_getvaluebyclass_indication(struct iriap_cb *self,
650 IRDA_ASSERT(self != NULL, return;);
651 IRDA_ASSERT(self->magic == IAS_MAGIC, return;);
670 iriap_getvaluebyclass_response(self, 0x1235, IAS_CLASS_UNKNOWN,
679 iriap_getvaluebyclass_response(self, obj->id,
686 iriap_getvaluebyclass_response(self, obj->id, IAS_SUCCESS,
696 void iriap_send_ack(struct iriap_cb *self)
703 IRDA_ASSERT(self != NULL, return;);
704 IRDA_ASSERT(self->magic == IAS_MAGIC, return;);
711 skb_reserve(tx_skb, self->max_header_size);
716 frame[0] = IAP_LST | IAP_ACK | self->operation;
718 irlmp_data_request(self->lsap, tx_skb);
721 void iriap_connect_request(struct iriap_cb *self)
725 IRDA_ASSERT(self != NULL, return;);
726 IRDA_ASSERT(self->magic == IAS_MAGIC, return;);
728 ret = irlmp_connect_request(self->lsap, LSAP_IAS,
729 self->saddr, self->daddr,
733 self->confirm(IAS_DISCONNECT, 0, NULL, self->priv);
748 struct iriap_cb *self;
750 self = (struct iriap_cb *) instance;
752 IRDA_ASSERT(self != NULL, return;);
753 IRDA_ASSERT(self->magic == IAS_MAGIC, return;);
756 self->max_data_size = max_seg_size;
757 self->max_header_size = max_header_size;
759 del_timer(&self->watchdog_timer);
761 iriap_do_client_event(self, IAP_LM_CONNECT_CONFIRM, skb);
778 struct iriap_cb *self, *new;
782 self = (struct iriap_cb *) instance;
785 IRDA_ASSERT(self != NULL, goto out;);
786 IRDA_ASSERT(self->magic == IAS_MAGIC, goto out;);
796 new->lsap = irlmp_dup(self->lsap, new);
806 irlmp_listen(self->lsap);
824 struct iriap_cb *self;
830 self = (struct iriap_cb *) instance;
833 IRDA_ASSERT(self != NULL, goto out;);
834 IRDA_ASSERT(self->magic == IAS_MAGIC, goto out;);
838 if (self->mode == IAS_SERVER) {
841 iriap_do_r_connect_event(self, IAP_RECV_F_LST, skb);
865 iriap_do_call_event(self, IAP_RECV_F_LST, NULL);
869 iriap_getvaluebyclass_confirm(self, skb);
874 iriap_disconnect_request(self);
878 * no to use self anymore after calling confirm
880 if (self->confirm)
881 self->confirm(IAS_CLASS_UNKNOWN, 0, NULL,
882 self->priv);
887 iriap_disconnect_request(self);
891 * no to use self anymore after calling confirm
893 if (self->confirm)
894 self->confirm(IAS_ATTRIB_UNKNOWN, 0, NULL,
895 self->priv);
912 * Function iriap_call_indication (self, skb)
917 void iriap_call_indication(struct iriap_cb *self, struct sk_buff *skb)
924 IRDA_ASSERT(self != NULL, return;);
925 IRDA_ASSERT(self->magic == IAS_MAGIC, return;);
944 iriap_getvaluebyclass_indication(self, skb);
958 struct iriap_cb *self = (struct iriap_cb *) data;
960 IRDA_ASSERT(self != NULL, return;);
961 IRDA_ASSERT(self->magic == IAS_MAGIC, return;);
963 /* iriap_close(self); */