|
uuu
uuu (Universal Update Utility), mfgtools 3.0
|
#include <thread>#include <atomic>#include <mutex>#include <utility>#include <algorithm>#include <stdexcept>#include "libusb.h"#include "liberror.h"#include "config.h"#include "cmd.h"#include "libcomm.h"#include "libuuu.h"#include "trans.h"#include "rominfo.h"#include "vector"#include <time.h>#include <iostream>#include <chrono>Classes | |
| class | CAutoDeInit |
| class | CAutoList |
| struct | filter |
| struct | Timer |
Macros | |
| #define | TRY_SUDO ",Try sudo uuu" |
| #define | SERIAL_NO_MAX 512 |
Enumerations | |
| enum | KnownDeviceState { NoKnownDevice , KnownDeviceToDo , KnownDeviceDone , WaitNextKnownDevice } |
Functions | |
| if (list.empty()) return true | |
| if (serial_no.empty()) return false | |
| for (auto it:list) | |
| static string | get_device_path (libusb_device *dev) |
| static string | get_device_serial_no (libusb_device *dev, struct libusb_device_descriptor *desc, ConfigItem *item) |
| static string | get_device_serial_no (libusb_device *dev) |
| static int | open_libusb (libusb_device *dev, TransHandle *usb_device_handle) |
| static int | run_usb_cmds (ConfigItem *item, libusb_device *dev, short bcddevice) |
| static int | usb_add (libusb_device *dev) |
| static int | usb_remove (libusb_device *) |
| void | compare_list (libusb_device **old, libusb_device **nw) |
| static int | check_usb_timeout (Timer &usb_timer) |
| int | polling_usb (std::atomic< int > &bexit) |
| int | uuu_add_usbpath_filter (const char *path) |
| int | uuu_add_usbserial_no_filter (const char *serial_no) |
| int | uuu_for_each_devices (uuu_ls_usb_devices fn, void *p) |
| int | uuu_set_wait_timeout (int timeout_in_seconds) |
| void | uuu_set_poll_period (int period_in_milliseconds) |
| int | uuu_set_wait_next_timeout (int timeout_in_seconds) |
Variables | |
| static atomic< seconds > | g_wait_usb_timeout {-1s} |
| static atomic< milliseconds > | g_usb_poll_period {200ms} |
| static atomic< seconds > | g_wait_next_usb_timeout {-1s} |
| static atomic< KnownDeviceState > | g_known_device_state {NoKnownDevice} |
| class CAutoDeInit | g_autoDeInit |
| static | struct |
| auto | end = list.end() |
| auto | pos = find(list.begin(), end, path) |
| g_filter_usbpath | |
| return | false |
| g_filter_usbserial_no | |
| #define SERIAL_NO_MAX 512 |
| #define TRY_SUDO ",Try sudo uuu" |
| enum KnownDeviceState |
|
static |
| void compare_list | ( | libusb_device ** | old, |
| libusb_device ** | nw ) |
| for | ( | auto it:list | ) |
|
static |
|
static |
|
static |
| if | ( | list. | empty() | ) |
| if | ( | serial_no. | empty() | ) |
|
static |
| int polling_usb | ( | std::atomic< int > & | bexit | ) |
|
static |
Thread function. Didn't call this function directly. Unbalance libusb_unref_device. Before start thread, need call libusb_ref_device to dev is free
libusb_get_list() libusb_ref_device // avoid free at libusb_free_list if run_usb_cmd have not open device in time. thread start run_usb_cmds; libusb_free_list()
|
static |
|
static |
| int uuu_add_usbpath_filter | ( | const char * | path | ) |
| int uuu_add_usbserial_no_filter | ( | const char * | serial_no | ) |
| int uuu_for_each_devices | ( | uuu_ls_usb_devices | fn, |
| void * | p ) |
| void uuu_set_poll_period | ( | int | period_in_milliseconds | ) |
| int uuu_set_wait_next_timeout | ( | int | timeout_in_seconds | ) |
| int uuu_set_wait_timeout | ( | int | timeout_in_seconds | ) |
| auto end = list.end() |
| return false |
| class CAutoDeInit g_autoDeInit |
| g_filter_usbpath |
| g_filter_usbserial_no |
|
static |
|
static |
|
static |
|
static |
| return pos = find(list.begin(), end, path) |
|
static |