Commit graph

317 commits

Author SHA1 Message Date
Dmitry Fleytman
56590de5de UsbDkHelper: Make service manager class use generic handle holder
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-20 12:03:23 +03:00
Dmitry Fleytman
e44cbe7a96 UsbDkHelper: Introduce generic handle holder class
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-20 12:03:22 +03:00
Pavel Gurvich
f0db6b4e62 UsbDkHelper: Add AbortPipe API
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-20 11:56:28 +03:00
Pavel Gurvich
55e7d683fe UsbDk: Add handling of AbortPipe IOCTL
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-20 11:56:27 +03:00
Pavel Gurvich
4a8ff66332 UsbDk: Add IOCTL for abort pipe
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-20 11:56:27 +03:00
Pavel Gurvich
dfcbfb2d65 UsbDk: Make ControlTransfer asynchronous
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-20 11:56:26 +03:00
Dmitry Fleytman
77070e8d31 UsbDk: update architecture document to reflect the latest changes
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-20 11:56:25 +03:00
Dmitry Fleytman
f54a817a93 build: add interface headers to package
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-20 11:56:24 +03:00
Pavel Gurvich
22b2a7d758 UsbDkController: update names of UsbDkHelper API
Prefix UsbDk_ added to API names

Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-20 11:56:24 +03:00
Pavel Gurvich
99521baed4 UsbDkHelper: add UsbDk_ prefix to UsbDkHelper API functions
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-20 11:56:23 +03:00
Pavel Gurvich
f118d34ac5 UsbDkHelper: Cosmetics: rename ReleaseDeviceList ReleaseDevicesList
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-20 11:56:22 +03:00
Pavel Gurvich
e583286caa UsbDk: Add UsbDk.inf file to packages
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-20 11:56:22 +03:00
Pavel Gurvich
a77d8161e4 UsbDk: Add license-related files and headers
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-20 11:56:20 +03:00
Dmitry Fleytman
43f4646cd9 UsbDkHelper: Fix warnings in release builds
This patch uses "potentially uninitialized variable used"
warnings in release builds.

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Dmitry Fleytman
52be87ee4c UsbDk: Make CWdmList accessors safer
Accessor functions made private, corresponding
list class specialization declared as friend.

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Dmitry Fleytman
2954a1c5a2 UsbDk: Unused data member at CWdmList dropped
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Pavel Gurvich
1ca133b506 UsbDkHelper: Fix bug: second install leads to configuration corruption
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Pavel Gurvich
5ab2b4eca3 UsbDkHelper: Wait for service to stop before removal
If one tries to remove service that is running
system marks it for deletion and requires reboot
in case it is being recreated (uninstall/install case).

Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Pavel Gurvich
223a2d8fe3 UsbDk: fix trace message
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Pavel Gurvich
2127d90c4b UsbDkHelper: Support asynchronous calls
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Pavel Gurvich
cdff8c0bae UsbDkHelper: Add interface GetRedirectorSystemHandle()
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Pavel Gurvich
2f82bf2c55 UsbDk: Add TransferResult enum to UsbDkData.h
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Dmitry Fleytman
882b77a27d UsbDk: Make control transfer logic method of CWdfUsbTarget
This allows to drop internal object acessor of CWdfUsbTarget
and preserve better encapsulation.

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Dmitry Fleytman
c07cfbf0c1 UsbDk: Increase redirection wait timeout
10 seconds is not enough for real platforms,
120 seconds looks more reasonable timeout.

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Dmitry Fleytman
af30ad9b0a UsbDk: Move MAX_DEVICE_ID_LEN definition to Public.h
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Dmitry Fleytman
1d4dbc9b86 UsbDkHelper: Fix enumerate devices API
1. Handle properly 0 USB devices case
  2. Do not leak memory on exception in IOCTL_USBDK_ENUM_DEVICES

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Dmitry Fleytman
6d5b7151ee UsbDk: Trivial: Replace NULL with nullptr
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Dmitry Fleytman
d680b5b139 UsbDk: Fix ReadPipe/WritePipe number of bytes transferred propagation
Number of bytes transferred returned by ReadFile/WriteFile cannot
be larger then the size of buffer passed to the function.

Since buffer passed to ReadFile/WriteFile is our request
structure and number of bytes transferred to/from usb device
depends on buffer size passed via the request structure and not on
request structure size we have to return actual number of bytes
transferred via some field in request structure and not via system
facilities.

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Dmitry Fleytman
008699089f UsbDkHelper: Fix read/write logic
Do not destroy redirector handle after each operation.

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Dmitry Fleytman
1447b8d476 UsbDk: disable maximum packet size check for pipes
It's up to client to send packets of allowed size.

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Dmitry Fleytman
655307e7b3 UsbDk: Fix WdfRequest unsafe buffers interface
1. Fix buffers probing methods semantics
2. Remove template directives where not required

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Dmitry Fleytman
e602d6c4cc UsbDk: Trivial: traces cleanup/fixes
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Dmitry Fleytman
5cdaf656f9 UsbDkHelper: Introduce ReadPipe/WritePipe API
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Dmitry Fleytman
e3c976d432 UsbDkHelper: Introduce generic read/write methods
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Dmitry Fleytman
33ceed2b33 UsbDk: Redirector queue read/write methods
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Dmitry Fleytman
54cc88bc61 UsbDk: Redirector strategy read/write methods
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Dmitry Fleytman
8c2b454cae UsbDk: Simplify strategy interface
Make filter strategy methods accept raw WDF requests.
This simplifies overall request handling code.

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Dmitry Fleytman
a5bba7bf0c UsbDk: Introduce read/write endpoint logic
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Dmitry Fleytman
f2b18a5706 UsbDk: Make WdfRequest detach return original object
This change slightly simplifies CWdfRequest class usage

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Dmitry Fleytman
b50b2eddb8 UsbDk: Method for sending request with completion
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Dmitry Fleytman
46cac03bc6 UsbDk: CWdfRequest: introduce internal object accessor
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Dmitry Fleytman
685f789979 UsbDk: CWdfRequest methods for read/written bytes number specification
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
799164e90d UsbDk: Trivial: simplify WdfRequest completion code
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
ba060102dd UsbDk: Introduce accessors for WdfRequest unsafe buffers
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
00dec94f34 UsbDk: Assign HUB strategy to devices of class HUB
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
267311dcfe UsbDk: Introduce UsbDeviceIsHub helper
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
527a0b774f UsbDkController: Handle start redirect return value properly
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
9a12b44669 UsbDkHelper: Trivial: typos and cosmetics
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
9fa5fc08ac UsbDk: Prevent double request completion in IoInCallerContext
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
9e09d8b764 UsbDk: Implement control transfer logic
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00