xref: /aosp_15_r20/hardware/interfaces/usb/1.0/default/Usb.h (revision 4d7e907c777eeecc4c5bd7cf640a754fac206ff7)
1*4d7e907cSAndroid Build Coastguard Worker #ifndef ANDROID_HARDWARE_USB_V1_0_USB_H
2*4d7e907cSAndroid Build Coastguard Worker #define ANDROID_HARDWARE_USB_V1_0_USB_H
3*4d7e907cSAndroid Build Coastguard Worker 
4*4d7e907cSAndroid Build Coastguard Worker #include <android/hardware/usb/1.0/IUsb.h>
5*4d7e907cSAndroid Build Coastguard Worker #include <hidl/MQDescriptor.h>
6*4d7e907cSAndroid Build Coastguard Worker #include <hidl/Status.h>
7*4d7e907cSAndroid Build Coastguard Worker #include <log/log.h>
8*4d7e907cSAndroid Build Coastguard Worker 
9*4d7e907cSAndroid Build Coastguard Worker #ifdef LOG_TAG
10*4d7e907cSAndroid Build Coastguard Worker #undef LOG_TAG
11*4d7e907cSAndroid Build Coastguard Worker #endif
12*4d7e907cSAndroid Build Coastguard Worker 
13*4d7e907cSAndroid Build Coastguard Worker #define LOG_TAG "[email protected]"
14*4d7e907cSAndroid Build Coastguard Worker #define UEVENT_MSG_LEN 2048
15*4d7e907cSAndroid Build Coastguard Worker 
16*4d7e907cSAndroid Build Coastguard Worker namespace android {
17*4d7e907cSAndroid Build Coastguard Worker namespace hardware {
18*4d7e907cSAndroid Build Coastguard Worker namespace usb {
19*4d7e907cSAndroid Build Coastguard Worker namespace V1_0 {
20*4d7e907cSAndroid Build Coastguard Worker namespace implementation {
21*4d7e907cSAndroid Build Coastguard Worker 
22*4d7e907cSAndroid Build Coastguard Worker using ::android::hardware::usb::V1_0::IUsb;
23*4d7e907cSAndroid Build Coastguard Worker using ::android::hardware::usb::V1_0::IUsbCallback;
24*4d7e907cSAndroid Build Coastguard Worker using ::android::hardware::usb::V1_0::PortRole;
25*4d7e907cSAndroid Build Coastguard Worker using ::android::hidl::base::V1_0::IBase;
26*4d7e907cSAndroid Build Coastguard Worker using ::android::hardware::hidl_array;
27*4d7e907cSAndroid Build Coastguard Worker using ::android::hardware::hidl_memory;
28*4d7e907cSAndroid Build Coastguard Worker using ::android::hardware::hidl_string;
29*4d7e907cSAndroid Build Coastguard Worker using ::android::hardware::hidl_vec;
30*4d7e907cSAndroid Build Coastguard Worker using ::android::hardware::Return;
31*4d7e907cSAndroid Build Coastguard Worker using ::android::hardware::Void;
32*4d7e907cSAndroid Build Coastguard Worker using ::android::sp;
33*4d7e907cSAndroid Build Coastguard Worker 
34*4d7e907cSAndroid Build Coastguard Worker struct Usb : public IUsb {
35*4d7e907cSAndroid Build Coastguard Worker     Usb();
36*4d7e907cSAndroid Build Coastguard Worker     Return<void> switchRole(const hidl_string& portName, const PortRole& role) override;
37*4d7e907cSAndroid Build Coastguard Worker     Return<void> setCallback(const sp<IUsbCallback>& callback) override;
38*4d7e907cSAndroid Build Coastguard Worker     Return<void> queryPortStatus() override;
39*4d7e907cSAndroid Build Coastguard Worker 
40*4d7e907cSAndroid Build Coastguard Worker     sp<IUsbCallback> mCallback;
41*4d7e907cSAndroid Build Coastguard Worker     private:
42*4d7e907cSAndroid Build Coastguard Worker         pthread_t mPoll;
43*4d7e907cSAndroid Build Coastguard Worker         pthread_mutex_t mLock = PTHREAD_MUTEX_INITIALIZER;
44*4d7e907cSAndroid Build Coastguard Worker };
45*4d7e907cSAndroid Build Coastguard Worker 
46*4d7e907cSAndroid Build Coastguard Worker }  // namespace implementation
47*4d7e907cSAndroid Build Coastguard Worker }  // namespace V1_0
48*4d7e907cSAndroid Build Coastguard Worker }  // namespace usb
49*4d7e907cSAndroid Build Coastguard Worker }  // namespace hardware
50*4d7e907cSAndroid Build Coastguard Worker }  // namespace android
51*4d7e907cSAndroid Build Coastguard Worker 
52*4d7e907cSAndroid Build Coastguard Worker #endif  // ANDROID_HARDWARE_USB_V1_0_USB_H
53