Home | History | Annotate | Download | only in fastboot

Lines Matching refs:transport

48 #include "transport.h"
59 static int64_t check_response(Transport* transport, uint32_t size, char* response) {
63 int r = transport->Read(status, 64);
66 transport->Close();
73 transport->Close();
102 transport->Close();
109 transport->Close();
116 static int64_t _command_start(Transport* transport, const std::string& cmd, uint32_t size,
127 if (transport->Write(cmd.c_str(), cmd.size()) != static_cast<int>(cmd.size())) {
129 transport->Close();
133 return check_response(transport, size, response);
136 static int64_t _command_write_data(Transport* transport, const void* data, uint32_t size) {
137 int64_t r = transport->Write(data, size);
140 transport->Close();
145 transport->Close();
151 static int64_t _command_read_data(Transport* transport, void* data, uint32_t size) {
152 int64_t r = transport->Read(data, size);
155 transport->Close();
160 transport->Close();
166 static int64_t _command_end(Transport* transport) {
167 return check_response(transport, 0, 0) < 0 ? -1 : 0;
170 static int64_t _command_send(Transport* transport, const std::string& cmd, const void* data,
176 int64_t r = _command_start(transport, cmd, size, response);
180 r = _command_write_data(transport, data, size);
185 r = _command_end(transport);
193 static int64_t _command_send_fd(Transport* transport, const std::string& cmd, int fd, uint32_t size,
199 if (_command_start(transport, cmd, size, response) < 0) {
211 if (_command_write_data(transport, filemap.getDataPtr(), len) < 0) {
219 if (_command_end(transport) < 0) {
226 static int _command_send_no_data(Transport* transport, const std::string& cmd, char* response) {
227 return _command_start(transport, cmd, 0, response);
230 int fb_command(Transport* transport, const std::string& cmd) {
231 return _command_send_no_data(transport, cmd, 0);
234 int fb_command_response(Transport* transport, const std::string& cmd, char* response) {
235 return _command_send_no_data(transport, cmd, response);
238 int64_t fb_download_data(Transport* transport, const void* data, uint32_t size) {
240 return _command_send(transport, cmd.c_str(), data, size, 0) < 0 ? -1 : 0;
243 int64_t fb_download_data_fd(Transport* transport, int fd, uint32_t size) {
245 return _command_send_fd(transport, cmd.c_str(), fd, size, 0) < 0 ? -1 : 0;
248 int64_t fb_upload_data(Transport* transport, const char* outfile) {
250 int64_t r = _command_start(transport, "upload", std::numeric_limits<int32_t>::max(), nullptr);
258 if ((r = _command_read_data(transport, &data[0], data.size())) == -1) {
267 return _command_end(transport);
277 Transport* transport = reinterpret_cast<Transport*>(priv);
291 r = _command_write_data(transport, transport_buf, TRANSPORT_BUF_SIZE);
304 r = _command_write_data(transport, ptr, to_write);
324 static int fb_download_data_sparse_flush(Transport* transport) {
326 int64_t r = _command_write_data(transport, transport_buf, transport_buf_len);
335 int fb_download_data_sparse(Transport* transport, struct sparse_file* s) {
342 int r = _command_start(transport, cmd, size, 0);
347 r = sparse_file_callback(s, true, false, fb_download_data_sparse_write, transport);
352 r = fb_download_data_sparse_flush(transport);
357 return _command_end(transport);