• Home
  • Raw
  • Download

Lines Matching refs:params

70 static rndis_resp_t *rndis_add_response(struct rndis_params *params,
169 static int gen_ndis_query_resp(struct rndis_params *params, u32 OID, u8 *buf, in gen_ndis_query_resp() argument
201 net = params->dev; in gen_ndis_query_resp()
234 *outbuf = cpu_to_le32(params->medium); in gen_ndis_query_resp()
242 *outbuf = cpu_to_le32(params->medium); in gen_ndis_query_resp()
249 if (params->dev) { in gen_ndis_query_resp()
250 *outbuf = cpu_to_le32(params->dev->mtu); in gen_ndis_query_resp()
259 if (params->media_state == RNDIS_MEDIA_STATE_DISCONNECTED) in gen_ndis_query_resp()
262 *outbuf = cpu_to_le32(params->speed); in gen_ndis_query_resp()
269 if (params->dev) { in gen_ndis_query_resp()
270 *outbuf = cpu_to_le32(params->dev->mtu); in gen_ndis_query_resp()
278 if (params->dev) { in gen_ndis_query_resp()
279 *outbuf = cpu_to_le32(params->dev->mtu); in gen_ndis_query_resp()
287 *outbuf = cpu_to_le32(params->vendorID); in gen_ndis_query_resp()
294 if (params->vendorDescr) { in gen_ndis_query_resp()
295 length = strlen(params->vendorDescr); in gen_ndis_query_resp()
296 memcpy(outbuf, params->vendorDescr, length); in gen_ndis_query_resp()
313 *outbuf = cpu_to_le32(*params->filter); in gen_ndis_query_resp()
328 *outbuf = cpu_to_le32(params->media_state); in gen_ndis_query_resp()
408 if (params->dev) { in gen_ndis_query_resp()
410 memcpy(outbuf, params->host_mac, length); in gen_ndis_query_resp()
418 if (params->dev) { in gen_ndis_query_resp()
420 memcpy(outbuf, params->host_mac, length); in gen_ndis_query_resp()
484 static int gen_ndis_set_resp(struct rndis_params *params, u32 OID, in gen_ndis_set_resp() argument
516 *params->filter = (u16)get_unaligned_le32(buf); in gen_ndis_set_resp()
518 __func__, *params->filter); in gen_ndis_set_resp()
525 if (*params->filter) { in gen_ndis_set_resp()
526 params->state = RNDIS_DATA_INITIALIZED; in gen_ndis_set_resp()
527 netif_carrier_on(params->dev); in gen_ndis_set_resp()
528 if (netif_running(params->dev)) in gen_ndis_set_resp()
529 netif_wake_queue(params->dev); in gen_ndis_set_resp()
531 params->state = RNDIS_INITIALIZED; in gen_ndis_set_resp()
532 netif_carrier_off(params->dev); in gen_ndis_set_resp()
533 netif_stop_queue(params->dev); in gen_ndis_set_resp()
555 static int rndis_init_response(struct rndis_params *params, in rndis_init_response() argument
561 if (!params->dev) in rndis_init_response()
564 r = rndis_add_response(params, sizeof(rndis_init_cmplt_type)); in rndis_init_response()
579 params->dev->mtu in rndis_init_response()
587 params->resp_avail(params->v); in rndis_init_response()
591 static int rndis_query_response(struct rndis_params *params, in rndis_query_response() argument
598 if (!params->dev) in rndis_query_response()
607 r = rndis_add_response(params, in rndis_query_response()
616 if (gen_ndis_query_resp(params, le32_to_cpu(buf->OID), in rndis_query_response()
629 params->resp_avail(params->v); in rndis_query_response()
633 static int rndis_set_response(struct rndis_params *params, in rndis_set_response() argument
647 r = rndis_add_response(params, sizeof(rndis_set_cmplt_type)); in rndis_set_response()
667 if (gen_ndis_set_resp(params, le32_to_cpu(buf->OID), in rndis_set_response()
673 params->resp_avail(params->v); in rndis_set_response()
677 static int rndis_reset_response(struct rndis_params *params, in rndis_reset_response() argument
686 while ((xbuf = rndis_get_next_response(params, &length))) in rndis_reset_response()
687 rndis_free_response(params, xbuf); in rndis_reset_response()
689 r = rndis_add_response(params, sizeof(rndis_reset_cmplt_type)); in rndis_reset_response()
700 params->resp_avail(params->v); in rndis_reset_response()
704 static int rndis_keepalive_response(struct rndis_params *params, in rndis_keepalive_response() argument
712 r = rndis_add_response(params, sizeof(rndis_keepalive_cmplt_type)); in rndis_keepalive_response()
722 params->resp_avail(params->v); in rndis_keepalive_response()
730 static int rndis_indicate_status_msg(struct rndis_params *params, u32 status) in rndis_indicate_status_msg() argument
735 if (params->state == RNDIS_UNINITIALIZED) in rndis_indicate_status_msg()
738 r = rndis_add_response(params, sizeof(rndis_indicate_status_msg_type)); in rndis_indicate_status_msg()
749 params->resp_avail(params->v); in rndis_indicate_status_msg()
753 int rndis_signal_connect(struct rndis_params *params) in rndis_signal_connect() argument
755 params->media_state = RNDIS_MEDIA_STATE_CONNECTED; in rndis_signal_connect()
756 return rndis_indicate_status_msg(params, RNDIS_STATUS_MEDIA_CONNECT); in rndis_signal_connect()
760 int rndis_signal_disconnect(struct rndis_params *params) in rndis_signal_disconnect() argument
762 params->media_state = RNDIS_MEDIA_STATE_DISCONNECTED; in rndis_signal_disconnect()
763 return rndis_indicate_status_msg(params, RNDIS_STATUS_MEDIA_DISCONNECT); in rndis_signal_disconnect()
767 void rndis_uninit(struct rndis_params *params) in rndis_uninit() argument
772 if (!params) in rndis_uninit()
774 params->state = RNDIS_UNINITIALIZED; in rndis_uninit()
777 while ((buf = rndis_get_next_response(params, &length))) in rndis_uninit()
778 rndis_free_response(params, buf); in rndis_uninit()
782 void rndis_set_host_mac(struct rndis_params *params, const u8 *addr) in rndis_set_host_mac() argument
784 params->host_mac = addr; in rndis_set_host_mac()
791 int rndis_msg_parser(struct rndis_params *params, u8 *buf) in rndis_msg_parser() argument
803 if (!params) in rndis_msg_parser()
816 params->state = RNDIS_INITIALIZED; in rndis_msg_parser()
817 return rndis_init_response(params, (rndis_init_msg_type *)buf); in rndis_msg_parser()
822 params->state = RNDIS_UNINITIALIZED; in rndis_msg_parser()
823 if (params->dev) { in rndis_msg_parser()
824 netif_carrier_off(params->dev); in rndis_msg_parser()
825 netif_stop_queue(params->dev); in rndis_msg_parser()
830 return rndis_query_response(params, in rndis_msg_parser()
834 return rndis_set_response(params, (rndis_set_msg_type *)buf); in rndis_msg_parser()
839 return rndis_reset_response(params, in rndis_msg_parser()
847 return rndis_keepalive_response(params, in rndis_msg_parser()
882 struct rndis_params *params; in rndis_register() local
895 params = kzalloc(sizeof(*params), GFP_KERNEL); in rndis_register()
896 if (!params) { in rndis_register()
909 &rndis_proc_ops, params); in rndis_register()
911 kfree(params); in rndis_register()
919 params->confignr = i; in rndis_register()
920 params->used = 1; in rndis_register()
921 params->state = RNDIS_UNINITIALIZED; in rndis_register()
922 params->media_state = RNDIS_MEDIA_STATE_DISCONNECTED; in rndis_register()
923 params->resp_avail = resp_avail; in rndis_register()
924 params->v = v; in rndis_register()
925 INIT_LIST_HEAD(&params->resp_queue); in rndis_register()
926 spin_lock_init(&params->resp_lock); in rndis_register()
929 return params; in rndis_register()
933 void rndis_deregister(struct rndis_params *params) in rndis_deregister() argument
939 if (!params) in rndis_deregister()
942 i = params->confignr; in rndis_deregister()
953 kfree(params); in rndis_deregister()
957 int rndis_set_param_dev(struct rndis_params *params, struct net_device *dev, in rndis_set_param_dev() argument
963 if (!params) in rndis_set_param_dev()
966 params->dev = dev; in rndis_set_param_dev()
967 params->filter = cdc_filter; in rndis_set_param_dev()
973 int rndis_set_param_vendor(struct rndis_params *params, u32 vendorID, in rndis_set_param_vendor() argument
978 if (!params) in rndis_set_param_vendor()
981 params->vendorID = vendorID; in rndis_set_param_vendor()
982 params->vendorDescr = vendorDescr; in rndis_set_param_vendor()
988 int rndis_set_param_medium(struct rndis_params *params, u32 medium, u32 speed) in rndis_set_param_medium() argument
991 if (!params) in rndis_set_param_medium()
994 params->medium = medium; in rndis_set_param_medium()
995 params->speed = speed; in rndis_set_param_medium()
1016 void rndis_free_response(struct rndis_params *params, u8 *buf) in rndis_free_response() argument
1020 spin_lock(&params->resp_lock); in rndis_free_response()
1021 list_for_each_entry_safe(r, n, &params->resp_queue, list) { in rndis_free_response()
1027 spin_unlock(&params->resp_lock); in rndis_free_response()
1031 u8 *rndis_get_next_response(struct rndis_params *params, u32 *length) in rndis_get_next_response() argument
1037 spin_lock(&params->resp_lock); in rndis_get_next_response()
1038 list_for_each_entry_safe(r, n, &params->resp_queue, list) { in rndis_get_next_response()
1042 spin_unlock(&params->resp_lock); in rndis_get_next_response()
1047 spin_unlock(&params->resp_lock); in rndis_get_next_response()
1052 static rndis_resp_t *rndis_add_response(struct rndis_params *params, u32 length) in rndis_add_response() argument
1064 spin_lock(&params->resp_lock); in rndis_add_response()
1065 list_add_tail(&r->list, &params->resp_queue); in rndis_add_response()
1066 spin_unlock(&params->resp_lock); in rndis_add_response()