1 // Copyright 2018 The Fuchsia Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "usb-handler.h"
6
7 namespace xdc {
8
9 // static
Create()10 std::unique_ptr<UsbHandler::Transfer> UsbHandler::Transfer::Create() {
11 auto transfer = std::make_unique<UsbHandler::Transfer>(ConstructorTag{});
12 // TODO(jocelyndang): need to initialize the transfer.
13 return transfer;
14 }
15
FillHeader(uint32_t stream_id,size_t data_len)16 zx_status_t UsbHandler::Transfer::FillHeader(uint32_t stream_id, size_t data_len) {
17 // TODO(jocelyndang): implement this.
18 return ZX_ERR_NOT_SUPPORTED;
19 }
20
FillData(uint32_t stream_id,unsigned char * data,size_t data_len)21 zx_status_t UsbHandler::Transfer::FillData(uint32_t stream_id, unsigned char* data,
22 size_t data_len) {
23 // TODO(jocelyndang): implement this.
24 return ZX_ERR_NOT_SUPPORTED;
25 }
26
SetOffset(int offset)27 bool UsbHandler::Transfer::SetOffset(int offset) {
28 if (offset < 0 || offset > actual_length_) {
29 return false;
30 }
31 offset_ = offset;
32 return true;
33 }
34
35 // static
Create()36 std::unique_ptr<UsbHandler> UsbHandler::Create() {
37 auto usb_handler = std::make_unique<UsbHandler>(ConstructorTag{});
38 if (!usb_handler) {
39 return nullptr;
40 }
41 // TODO(jocelyndang): need to initialize initial libusb fds.
42 return usb_handler;
43 }
44
HandleEvents(std::vector<std::unique_ptr<Transfer>> & completed_reads)45 bool UsbHandler::HandleEvents(std::vector<std::unique_ptr<Transfer>>& completed_reads) {
46 // TODO(jocelyndang): implement this.
47 return false;
48 }
49
RequeueRead(std::unique_ptr<Transfer> transfer)50 void UsbHandler::RequeueRead(std::unique_ptr<Transfer> transfer) {
51 // TODO(jocelyndang): implement this.
52 }
53
GetFdUpdates(std::map<int,short> & added_fds,std::set<int> & removed_fds)54 void UsbHandler::GetFdUpdates(std::map<int, short>& added_fds, std::set<int>& removed_fds) {
55 // TODO(jocelyndang): implement this.
56 }
57
GetWriteTransfer()58 std::unique_ptr<UsbHandler::Transfer> UsbHandler::GetWriteTransfer() {
59 // TODO(jocelyndang): implement this.
60 return nullptr;
61 }
62
ReturnWriteTransfer(std::unique_ptr<Transfer>)63 void UsbHandler::ReturnWriteTransfer(std::unique_ptr<Transfer>) {
64 // TODO(jocelyndang): implement this.
65 }
66
QueueWriteTransfer(std::unique_ptr<Transfer> transfer)67 std::unique_ptr<UsbHandler::Transfer> UsbHandler::QueueWriteTransfer(
68 std::unique_ptr<Transfer> transfer) {
69 // TODO(jocelyndang): implement this.
70 return transfer;
71 }
72
73 } // namespace xdc