Android-cuttlefish cvd tool
Classes | Macros | Functions | Variables
usb_linux.cpp File Reference
#include "sysdeps.h"
#include "client/usb.h"
#include <ctype.h>
#include <dirent.h>
#include <errno.h>
#include <fcntl.h>
#include <linux/usb/ch9.h>
#include <linux/usbdevice_fs.h>
#include <linux/version.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/ioctl.h>
#include <sys/time.h>
#include <sys/sysmacros.h>
#include <sys/types.h>
#include <unistd.h>
#include <chrono>
#include <condition_variable>
#include <list>
#include <mutex>
#include <string>
#include <string_view>
#include <thread>
#include <android-base/file.h>
#include <android-base/stringprintf.h>
#include <android-base/strings.h>
#include "adb.h"
#include "transport.h"
Include dependency graph for usb_linux.cpp:

Classes

struct  usb_handle
 

Macros

#define TRACE_TAG   USB
 
#define DBGX(x...)
 

Functions

static int is_known_device (std::string_view dev_name)
 
static void kick_disconnected_devices ()
 
static bool contains_non_digit (const char *name)
 
static void find_usb_device (const std::string &base, void(*register_device_callback)(const char *, const char *, unsigned char, unsigned char, int, int, unsigned, size_t))
 
static int usb_bulk_write (usb_handle *h, const void *data, int len)
 
static int usb_bulk_read (usb_handle *h, void *data, int len)
 
static int usb_write_split (usb_handle *h, unsigned char *data, int len)
 
int usb_write (usb_handle *h, const void *_data, int len)
 
int usb_read (usb_handle *h, void *_data, int len)
 
void usb_reset (usb_handle *h)
 
void usb_kick (usb_handle *h)
 
int usb_close (usb_handle *h)
 
size_t usb_get_max_packet_size (usb_handle *h)
 
static void register_device (const char *dev_name, const char *dev_path, unsigned char ep_in, unsigned char ep_out, int interface, int serial_index, unsigned zero_mask, size_t max_packet_size)
 
static void device_poll_thread ()
 
void usb_init ()
 
void usb_cleanup ()
 

Variables

static auto & g_usb_handles_mutex = *new std::mutex()
 
static auto & g_usb_handles = *new std::list<usb_handle*>()
 

Macro Definition Documentation

◆ DBGX

#define DBGX (   x...)

◆ TRACE_TAG

#define TRACE_TAG   USB

Function Documentation

◆ contains_non_digit()

static bool contains_non_digit ( const char *  name)
inlinestatic

◆ device_poll_thread()

static void device_poll_thread ( )
static

◆ find_usb_device()

static void find_usb_device ( const std::string &  base,
void(*)(const char *, const char *, unsigned char, unsigned char, int, int, unsigned, size_t)  register_device_callback 
)
static

◆ is_known_device()

static int is_known_device ( std::string_view  dev_name)
static

◆ kick_disconnected_devices()

static void kick_disconnected_devices ( )
static

◆ register_device()

static void register_device ( const char *  dev_name,
const char *  dev_path,
unsigned char  ep_in,
unsigned char  ep_out,
int  interface,
int  serial_index,
unsigned  zero_mask,
size_t  max_packet_size 
)
static

◆ usb_bulk_read()

static int usb_bulk_read ( usb_handle h,
void *  data,
int  len 
)
static

◆ usb_bulk_write()

static int usb_bulk_write ( usb_handle h,
const void *  data,
int  len 
)
static

◆ usb_cleanup()

void usb_cleanup ( )

◆ usb_close()

int usb_close ( usb_handle h)

◆ usb_get_max_packet_size()

size_t usb_get_max_packet_size ( usb_handle h)

◆ usb_init()

void usb_init ( )

◆ usb_kick()

void usb_kick ( usb_handle h)

◆ usb_read()

int usb_read ( usb_handle h,
void *  _data,
int  len 
)

◆ usb_reset()

void usb_reset ( usb_handle h)

◆ usb_write()

int usb_write ( usb_handle h,
const void *  _data,
int  len 
)

◆ usb_write_split()

static int usb_write_split ( usb_handle h,
unsigned char *  data,
int  len 
)
static

Variable Documentation

◆ g_usb_handles

auto& g_usb_handles = *new std::list<usb_handle*>()
static

◆ g_usb_handles_mutex

auto& g_usb_handles_mutex = *new std::mutex()
static