Lines Matching refs:request
633 struct fw_request *request; in free_response_callback() local
635 request = container_of(packet, struct fw_request, response); in free_response_callback()
636 kfree(request); in free_response_callback()
751 struct fw_request *request; in allocate_request() local
784 request = kmalloc(sizeof(*request) + length, GFP_ATOMIC); in allocate_request()
785 if (request == NULL) in allocate_request()
788 request->response.speed = p->speed; in allocate_request()
789 request->response.timestamp = in allocate_request()
791 request->response.generation = p->generation; in allocate_request()
792 request->response.ack = 0; in allocate_request()
793 request->response.callback = free_response_callback; in allocate_request()
794 request->ack = p->ack; in allocate_request()
795 request->length = length; in allocate_request()
797 memcpy(request->data, data, length); in allocate_request()
799 memcpy(request->request_header, p->header, sizeof(p->header)); in allocate_request()
801 return request; in allocate_request()
805 struct fw_request *request, int rcode) in fw_send_response() argument
807 if (WARN_ONCE(!request, "invalid for FCP address handlers")) in fw_send_response()
811 if (request->ack != ACK_PENDING || in fw_send_response()
812 HEADER_DESTINATION_IS_BROADCAST(request->request_header[0])) { in fw_send_response()
813 kfree(request); in fw_send_response()
818 fw_fill_response(&request->response, request->request_header, in fw_send_response()
819 rcode, request->data, in fw_send_response()
820 fw_get_response_length(request)); in fw_send_response()
822 fw_fill_response(&request->response, request->request_header, in fw_send_response()
825 card->driver->send_response(card, &request->response); in fw_send_response()
832 int fw_get_request_speed(struct fw_request *request) in fw_get_request_speed() argument
834 return request->response.speed; in fw_get_request_speed()
840 struct fw_request *request, in handle_exclusive_region_request() argument
854 offset, request->length); in handle_exclusive_region_request()
856 handler->address_callback(card, request, in handle_exclusive_region_request()
859 request->data, request->length, in handle_exclusive_region_request()
864 fw_send_response(card, request, RCODE_ADDRESS_ERROR); in handle_exclusive_region_request()
869 struct fw_request *request, in handle_fcp_region_request() argument
877 request->length > 0x200) { in handle_fcp_region_request()
878 fw_send_response(card, request, RCODE_ADDRESS_ERROR); in handle_fcp_region_request()
889 fw_send_response(card, request, RCODE_TYPE_ERROR); in handle_fcp_region_request()
896 if (is_enclosing_handler(handler, offset, request->length)) in handle_fcp_region_request()
900 request->data, in handle_fcp_region_request()
901 request->length, in handle_fcp_region_request()
906 fw_send_response(card, request, RCODE_COMPLETE); in handle_fcp_region_request()
911 struct fw_request *request; in fw_core_handle_request() local
922 request = allocate_request(card, p); in fw_core_handle_request()
923 if (request == NULL) { in fw_core_handle_request()
931 if (!is_in_fcp_region(offset, request->length)) in fw_core_handle_request()
932 handle_exclusive_region_request(card, p, request, offset); in fw_core_handle_request()
934 handle_fcp_region_request(card, p, request, offset); in fw_core_handle_request()
1042 static void handle_topology_map(struct fw_card *card, struct fw_request *request, in handle_topology_map() argument
1050 fw_send_response(card, request, RCODE_TYPE_ERROR); in handle_topology_map()
1055 fw_send_response(card, request, RCODE_ADDRESS_ERROR); in handle_topology_map()
1062 fw_send_response(card, request, RCODE_COMPLETE); in handle_topology_map()
1087 static void handle_registers(struct fw_card *card, struct fw_request *request, in handle_registers() argument
1199 fw_send_response(card, request, rcode); in handle_registers()
1207 static void handle_low_memory(struct fw_card *card, struct fw_request *request, in handle_low_memory() argument
1216 fw_send_response(card, request, RCODE_TYPE_ERROR); in handle_low_memory()