µOS++ IIIe Reference 7.0.0
The third edition of µOS++, a POSIX inspired open source framework, written in C++
Loading...
Searching...
No Matches
os::driver::usb::Host Class Referenceabstract

#include <usb-host.h>

+ Inheritance diagram for os::driver::usb::Host:

Public Member Functions

 Host () noexcept
 
 Host (const Host &)=delete
 
 Host (Host &&)=delete
 
virtual ~Host () noexcept override
 
return_t abort_transfer (pipe_t pipe) noexcept
 
pipe_t create_pipe (device_address_t dev_addr, speed_t dev_speed, hub_addr_t hub_addr, hub_port_t hub_port, endpoint_t ep_addr, endpoint_type_t ep_type, packet_size_t ep_max_packet_size, polling_interval_t ep_interval) noexcept
 
return_t delete_pipe (pipe_t pipe) noexcept
 
const host::Capabilitiesget_capabilities (void) noexcept
 
uint16_t get_frame_number (void) noexcept
 
host::Statusget_port_status (port_t port) noexcept
 
std::size_t get_transfer_count (pipe_t pipe) noexcept
 
const Versionget_version (void) noexcept
 Get driver version.
 
return_t modify_pipe (pipe_t pipe, device_address_t dev_addr, speed_t dev_speed, hub_addr_t hub_addr, hub_port_t hub_port, packet_size_t ep_max_packet_size) noexcept
 
Hostoperator= (const Host &)=delete
 
Hostoperator= (Host &&)=delete
 
return_t power (Power state) noexcept
 Power up/down device.
 
return_t power_port_vbus (port_t port, bool vbus) noexcept
 
void register_pipe_callback (host::signal_pipe_event_t cb_func, const void *cb_object=nullptr) noexcept
 
void register_port_callback (host::signal_port_event_t cb_func, const void *cb_object=nullptr) noexcept
 Register port event callback.
 
return_t reset_pipe (pipe_t pipe) noexcept
 
return_t reset_port (port_t port) noexcept
 
return_t resume_port (port_t port) noexcept
 
void signal_pipe_event (pipe_t pipe, event_t event) noexcept
 
void signal_port_event (port_t port, event_t event) noexcept
 
return_t suspend_port (port_t port) noexcept
 
return_t transfer (pipe_t pipe, uint32_t packet, uint8_t *data, std::size_t num) noexcept
 

Protected Member Functions

virtual return_t do_abort_transfer (pipe_t pipe) noexcept=0
 
virtual pipe_t do_create_pipe (device_address_t dev_addr, speed_t dev_speed, hub_addr_t hub_addr, hub_port_t hub_port, endpoint_t ep_addr, endpoint_type_t ep_type, packet_size_t ep_max_packet_size, polling_interval_t ep_interval) noexcept=0
 
virtual return_t do_delete_pipe (pipe_t pipe) noexcept=0
 
virtual const host::Capabilitiesdo_get_capabilities (void) noexcept=0
 
virtual uint16_t do_get_frame_number (void) noexcept=0
 
virtual host::Statusdo_get_port_status (port_t port) noexcept=0
 
virtual std::size_t do_get_transfer_count (pipe_t pipe) noexcept=0
 
virtual const Versiondo_get_version (void) noexcept=0
 
virtual return_t do_modify_pipe (pipe_t pipe, device_address_t dev_addr, speed_t dev_speed, hub_addr_t hub_addr, hub_port_t hub_port, packet_size_t ep_max_packet_size) noexcept=0
 
virtual return_t do_power (Power state) noexcept=0
 
virtual return_t do_power_port_vbus (port_t port, bool vbus) noexcept=0
 
virtual return_t do_reset_pipe (pipe_t pipe) noexcept=0
 
virtual return_t do_reset_port (port_t port) noexcept=0
 
virtual return_t do_resume_port (port_t port) noexcept=0
 
virtual return_t do_suspend_port (port_t port) noexcept=0
 
virtual return_t do_transfer (pipe_t pipe, uint32_t packet, uint8_t *data, std::size_t num) noexcept=0
 

Protected Attributes

host::Status status_
 

Private Attributes

host::signal_pipe_event_t cb_pipe_func_
 Pointer to static function that implements the pipe callback.
 
const void * cb_pipe_object_
 Pointer to object instance associated with the pipe callback.
 
host::signal_port_event_t cb_port_func_
 Pointer to static function that implements the port callback.
 
const void * cb_port_object_
 Pointer to object instance associated with the port callback.
 

Detailed Description

Definition at line 210 of file usb-host.h.

Constructor & Destructor Documentation

◆ Host() [1/3]

os::driver::usb::Host::Host ( )
noexcept

Definition at line 38 of file usb-host.cpp.

39 {
40 trace::printf ("%s() %p\n", __func__, this);
41
42 cb_port_func_ = nullptr;
43 cb_port_object_ = nullptr;
44
45 cb_pipe_func_ = nullptr;
46 cb_pipe_object_ = nullptr;
47 }
host::signal_port_event_t cb_port_func_
Pointer to static function that implements the port callback.
Definition usb-host.h:372
host::signal_pipe_event_t cb_pipe_func_
Pointer to static function that implements the pipe callback.
Definition usb-host.h:378
const void * cb_pipe_object_
Pointer to object instance associated with the pipe callback.
Definition usb-host.h:381
const void * cb_port_object_
Pointer to object instance associated with the port callback.
Definition usb-host.h:375
int printf(const char *format,...)
Write a formatted string to the trace device.
Definition trace.cpp:59

References cb_pipe_func_, cb_pipe_object_, cb_port_func_, cb_port_object_, and os::trace::printf().

◆ Host() [2/3]

os::driver::usb::Host::Host ( const Host )
delete

◆ Host() [3/3]

os::driver::usb::Host::Host ( Host &&  )
delete

◆ ~Host()

os::driver::usb::Host::~Host ( )
overridevirtualnoexcept

Definition at line 49 of file usb-host.cpp.

50 {
51 trace::printf ("%s() %p\n", __func__, this);
52 }

References os::trace::printf().

Member Function Documentation

◆ abort_transfer()

return_t os::driver::usb::Host::abort_transfer ( pipe_t  pipe)
inlinenoexcept

Definition at line 495 of file usb-host.h.

496 {
497 return do_abort_transfer (pipe);
498 }
virtual return_t do_abort_transfer(pipe_t pipe) noexcept=0

References do_abort_transfer().

◆ create_pipe()

pipe_t os::driver::usb::Host::create_pipe ( device_address_t  dev_addr,
speed_t  dev_speed,
hub_addr_t  hub_addr,
hub_port_t  hub_port,
endpoint_t  ep_addr,
endpoint_type_t  ep_type,
packet_size_t  ep_max_packet_size,
polling_interval_t  ep_interval 
)
inlinenoexcept

Definition at line 455 of file usb-host.h.

460 {
461 return do_create_pipe (dev_addr, dev_speed, hub_addr, hub_port,
462 ep_addr, ep_type, ep_max_packet_size,
463 ep_interval);
464 }
virtual pipe_t do_create_pipe(device_address_t dev_addr, speed_t dev_speed, hub_addr_t hub_addr, hub_port_t hub_port, endpoint_t ep_addr, endpoint_type_t ep_type, packet_size_t ep_max_packet_size, polling_interval_t ep_interval) noexcept=0

References do_create_pipe().

◆ delete_pipe()

return_t os::driver::usb::Host::delete_pipe ( pipe_t  pipe)
inlinenoexcept

Definition at line 477 of file usb-host.h.

478 {
479 return do_delete_pipe (pipe);
480 }
virtual return_t do_delete_pipe(pipe_t pipe) noexcept=0

References do_delete_pipe().

◆ do_abort_transfer()

virtual return_t os::driver::usb::Host::do_abort_transfer ( pipe_t  pipe)
protectedpure virtualnoexcept

Implemented in os::driver::usbh_wrapper.

Referenced by abort_transfer().

◆ do_create_pipe()

virtual pipe_t os::driver::usb::Host::do_create_pipe ( device_address_t  dev_addr,
speed_t  dev_speed,
hub_addr_t  hub_addr,
hub_port_t  hub_port,
endpoint_t  ep_addr,
endpoint_type_t  ep_type,
packet_size_t  ep_max_packet_size,
polling_interval_t  ep_interval 
)
protectedpure virtualnoexcept

Implemented in os::driver::usbh_wrapper.

Referenced by create_pipe().

◆ do_delete_pipe()

virtual return_t os::driver::usb::Host::do_delete_pipe ( pipe_t  pipe)
protectedpure virtualnoexcept

Implemented in os::driver::usbh_wrapper.

Referenced by delete_pipe().

◆ do_get_capabilities()

virtual const host::Capabilities & os::driver::usb::Host::do_get_capabilities ( void  )
protectedpure virtualnoexcept

Implemented in os::driver::usbh_wrapper.

Referenced by get_capabilities().

◆ do_get_frame_number()

virtual uint16_t os::driver::usb::Host::do_get_frame_number ( void  )
protectedpure virtualnoexcept

Implemented in os::driver::usbh_wrapper.

Referenced by get_frame_number().

◆ do_get_port_status()

virtual host::Status & os::driver::usb::Host::do_get_port_status ( port_t  port)
protectedpure virtualnoexcept

Implemented in os::driver::usbh_wrapper.

Referenced by get_port_status().

◆ do_get_transfer_count()

virtual std::size_t os::driver::usb::Host::do_get_transfer_count ( pipe_t  pipe)
protectedpure virtualnoexcept

Implemented in os::driver::usbh_wrapper.

Referenced by get_transfer_count().

◆ do_get_version()

virtual const Version & os::driver::Base::do_get_version ( void  )
protectedpure virtualnoexceptinherited

◆ do_modify_pipe()

virtual return_t os::driver::usb::Host::do_modify_pipe ( pipe_t  pipe,
device_address_t  dev_addr,
speed_t  dev_speed,
hub_addr_t  hub_addr,
hub_port_t  hub_port,
packet_size_t  ep_max_packet_size 
)
protectedpure virtualnoexcept

Implemented in os::driver::usbh_wrapper.

Referenced by modify_pipe().

◆ do_power()

virtual return_t os::driver::Base::do_power ( Power  state)
protectedpure virtualnoexceptinherited

◆ do_power_port_vbus()

virtual return_t os::driver::usb::Host::do_power_port_vbus ( port_t  port,
bool  vbus 
)
protectedpure virtualnoexcept

Implemented in os::driver::usbh_wrapper.

Referenced by power_port_vbus().

◆ do_reset_pipe()

virtual return_t os::driver::usb::Host::do_reset_pipe ( pipe_t  pipe)
protectedpure virtualnoexcept

Implemented in os::driver::usbh_wrapper.

Referenced by reset_pipe().

◆ do_reset_port()

virtual return_t os::driver::usb::Host::do_reset_port ( port_t  port)
protectedpure virtualnoexcept

Implemented in os::driver::usbh_wrapper.

Referenced by reset_port().

◆ do_resume_port()

virtual return_t os::driver::usb::Host::do_resume_port ( port_t  port)
protectedpure virtualnoexcept

Implemented in os::driver::usbh_wrapper.

Referenced by resume_port().

◆ do_suspend_port()

virtual return_t os::driver::usb::Host::do_suspend_port ( port_t  port)
protectedpure virtualnoexcept

Implemented in os::driver::usbh_wrapper.

Referenced by suspend_port().

◆ do_transfer()

virtual return_t os::driver::usb::Host::do_transfer ( pipe_t  pipe,
uint32_t  packet,
uint8_t *  data,
std::size_t  num 
)
protectedpure virtualnoexcept

Implemented in os::driver::usbh_wrapper.

◆ get_capabilities()

const host::Capabilities & os::driver::usb::Host::get_capabilities ( void  )
inlinenoexcept

Definition at line 419 of file usb-host.h.

420 {
421 return do_get_capabilities ();
422 }
virtual const host::Capabilities & do_get_capabilities(void) noexcept=0

References do_get_capabilities().

◆ get_frame_number()

uint16_t os::driver::usb::Host::get_frame_number ( void  )
inlinenoexcept

Definition at line 501 of file usb-host.h.

502 {
503 return do_get_frame_number ();
504 }
virtual uint16_t do_get_frame_number(void) noexcept=0

References do_get_frame_number().

◆ get_port_status()

host::Status & os::driver::usb::Host::get_port_status ( port_t  port)
inlinenoexcept

Definition at line 449 of file usb-host.h.

450 {
451 return do_get_port_status (port);
452 }
virtual host::Status & do_get_port_status(port_t port) noexcept=0

References do_get_port_status().

◆ get_transfer_count()

std::size_t os::driver::usb::Host::get_transfer_count ( pipe_t  pipe)
inlinenoexcept

Definition at line 489 of file usb-host.h.

490 {
491 return do_get_transfer_count (pipe);
492 }
virtual std::size_t do_get_transfer_count(pipe_t pipe) noexcept=0

References do_get_transfer_count().

◆ get_version()

const Version & os::driver::Base::get_version ( void  )
inlinenoexceptinherited
Returns
Version.

Definition at line 185 of file common.h.

186 {
187 return do_get_version ();
188 }
virtual const Version & do_get_version(void) noexcept=0

◆ modify_pipe()

return_t os::driver::usb::Host::modify_pipe ( pipe_t  pipe,
device_address_t  dev_addr,
speed_t  dev_speed,
hub_addr_t  hub_addr,
hub_port_t  hub_port,
packet_size_t  ep_max_packet_size 
)
inlinenoexcept

Definition at line 467 of file usb-host.h.

471 {
472 return do_modify_pipe (pipe, dev_addr, dev_speed, hub_addr, hub_port,
473 ep_max_packet_size);
474 }
virtual return_t do_modify_pipe(pipe_t pipe, device_address_t dev_addr, speed_t dev_speed, hub_addr_t hub_addr, hub_port_t hub_port, packet_size_t ep_max_packet_size) noexcept=0

References do_modify_pipe().

◆ operator=() [1/2]

Host & os::driver::usb::Host::operator= ( const Host )
delete

◆ operator=() [2/2]

Host & os::driver::usb::Host::operator= ( Host &&  )
delete

◆ power()

return_t os::driver::Base::power ( Power  state)
inlinenoexceptinherited
Parameters
[in]statePower state
Returns
Execution status

Definition at line 191 of file common.h.

192 {
193 return do_power (state);
194 }
virtual return_t do_power(Power state) noexcept=0

◆ power_port_vbus()

return_t os::driver::usb::Host::power_port_vbus ( port_t  port,
bool  vbus 
)
inlinenoexcept

Definition at line 425 of file usb-host.h.

426 {
427 return do_power_port_vbus (port, vbus);
428 }
virtual return_t do_power_port_vbus(port_t port, bool vbus) noexcept=0

References do_power_port_vbus().

◆ register_pipe_callback()

void os::driver::usb::Host::register_pipe_callback ( host::signal_pipe_event_t  cb_func,
const void *  cb_object = nullptr 
)
noexcept

Definition at line 63 of file usb-host.cpp.

65 {
66 cb_pipe_func_ = cb_func;
67 cb_pipe_object_ = cb_object;
68 }

◆ register_port_callback()

void os::driver::usb::Host::register_port_callback ( host::signal_port_event_t  cb_func,
const void *  cb_object = nullptr 
)
noexcept
Parameters
[in]cb_funcPointer to callback function.
[in]cb_objectPointer to object to be passed to the function.

Definition at line 55 of file usb-host.cpp.

57 {
58 cb_port_func_ = cb_func;
59 cb_port_object_ = cb_object;
60 }

◆ reset_pipe()

return_t os::driver::usb::Host::reset_pipe ( pipe_t  pipe)
inlinenoexcept

Definition at line 483 of file usb-host.h.

484 {
485 return do_reset_pipe (pipe);
486 }
virtual return_t do_reset_pipe(pipe_t pipe) noexcept=0

References do_reset_pipe().

◆ reset_port()

return_t os::driver::usb::Host::reset_port ( port_t  port)
inlinenoexcept

Definition at line 431 of file usb-host.h.

432 {
433 return do_reset_port (port);
434 }
virtual return_t do_reset_port(port_t port) noexcept=0

References do_reset_port().

◆ resume_port()

return_t os::driver::usb::Host::resume_port ( port_t  port)
inlinenoexcept

Definition at line 443 of file usb-host.h.

444 {
445 return do_resume_port (port);
446 }
virtual return_t do_resume_port(port_t port) noexcept=0

References do_resume_port().

◆ signal_pipe_event()

void os::driver::usb::Host::signal_pipe_event ( pipe_t  pipe,
event_t  event 
)
noexcept

Definition at line 97 of file usb-host.cpp.

98 {
99 if (cb_pipe_func_ != nullptr)
100 {
101 // Forward event to registered callback.
102 cb_pipe_func_ (cb_pipe_object_, pipe, event);
103 }
104 }

◆ signal_port_event()

void os::driver::usb::Host::signal_port_event ( port_t  port,
event_t  event 
)
noexcept

Definition at line 87 of file usb-host.cpp.

88 {
89 if (cb_port_func_ != nullptr)
90 {
91 // Forward event to registered callback.
92 cb_port_func_ (cb_port_object_, port, event);
93 }
94 }

◆ suspend_port()

return_t os::driver::usb::Host::suspend_port ( port_t  port)
inlinenoexcept

Definition at line 437 of file usb-host.h.

438 {
439 return do_suspend_port (port);
440 }
virtual return_t do_suspend_port(port_t port) noexcept=0

References do_suspend_port().

◆ transfer()

return_t os::driver::usb::Host::transfer ( pipe_t  pipe,
uint32_t  packet,
uint8_t *  data,
std::size_t  num 
)
noexcept

Definition at line 73 of file usb-host.cpp.

75 {
76 assert (data != nullptr);
77 if (num == 0)
78 {
79 return RETURN_OK;
80 }
81 return do_transfer (pipe, packet, data, num);
82 }
virtual return_t do_transfer(pipe_t pipe, uint32_t packet, uint8_t *data, std::size_t num) noexcept=0
constexpr return_t RETURN_OK
Definition common.h:52

References os::driver::RETURN_OK.

Member Data Documentation

◆ cb_pipe_func_

host::signal_pipe_event_t os::driver::usb::Host::cb_pipe_func_
private

Definition at line 378 of file usb-host.h.

Referenced by Host().

◆ cb_pipe_object_

const void* os::driver::usb::Host::cb_pipe_object_
private

Definition at line 381 of file usb-host.h.

Referenced by Host().

◆ cb_port_func_

host::signal_port_event_t os::driver::usb::Host::cb_port_func_
private

Definition at line 372 of file usb-host.h.

Referenced by Host().

◆ cb_port_object_

const void* os::driver::usb::Host::cb_port_object_
private

Definition at line 375 of file usb-host.h.

Referenced by Host().

◆ status_

host::Status os::driver::usb::Host::status_
protected

Definition at line 384 of file usb-host.h.


The documentation for this class was generated from the following files: