|
dxd - dynax driver framework 2.6.0d179
cross platform open source driver development framework
|
PPC device. More...
#include <dxd_pci_ppc.h>
Inheritance diagram for dxd::ppc:
Collaboration diagram for dxd::ppc:Public Types | |
| enum | eumb { omisr = 0x030 , omimr = 0x034 , ifpqr = 0x040 , ofpqr = 0x044 , odbr = 0x060 , idbr = 0x068 , itwr = 0x310 } |
| embedded utility memory block More... | |
| enum | i2o { om0i = LE32(0x01) , om1i = LE32(0x02) , odi = LE32(0x08) , opqi = LE32(0x20) } |
Public Member Functions | |
| template<class client_t = ::IOService, typename return_t = os_result, typename exec_arg_t , typename exec_t > | |
| return_t | each_child (exec_arg_t exec_arg, exec_t exec) |
| apply executor functor for each child | |
| template<class client_t = ::IOUserClient, typename return_t = os_result, typename exec_arg_t , typename exec_t > | |
| return_t | each_client (exec_arg_t exec_arg, exec_t exec) |
| apply executor functor for each user client | |
| volatile unsigned int * | eumb (eumb offset) |
| pointer to eumb register | |
| template<endian endian_t> | |
| void | fill32 (unsigned int pattern, unsigned int inbound, size_t size32) |
| fill ppc inbound range with 32bit pattern | |
| os_result | i2o (const unsigned int *msg, size_t size) |
| i2o message send | |
| template<typename tx_t , typename rx_t > | |
| os_result | ioctl (unsigned int ioctl, const tx_t &tx, rx_t &rx) |
| convenience ioctl accessor for direct inter-kext IOCTL | |
| virtual os_result | ioctl (unsigned int ioctl, const void *in, size_t size_in, void *out, size_t size_out, size_t &size) |
| device IOCTL handler | |
| os_result | notify_clients () |
| operator::IOPCIDevice * () const | |
| IOKit IOPCIDevice* implicit cast. | |
| template<typename type_t > | |
| os_result | property (const char *key, type_t &value) const |
| provider property request | |
| template<typename type_t > | |
| os_result | query (const char *key, type_t &value) |
| device property request | |
| template<> | |
| os_result | query (const char *key, unsigned int &value) |
| (defined(doxygen)||defined(DXD_EXTERN)) | |
| template<endian endian_t> | |
| void | read32 (unsigned int *dst, unsigned int inbound, size_t size32) |
| read endian corrected 32bit values from ppc | |
| template<endian endian_t> | |
| unsigned int | read32 (unsigned int inbound) |
| read the endian corrected 32bit value from ppc | |
| os_result | set (const char *key, unsigned int value) |
| template<endian endian_t> | |
| void | write32 (const unsigned int *src, unsigned int inbound, size_t size32) |
| write endian corrected 32bit values to ppc | |
| template<endian endian_t> | |
| void | write32 (unsigned int src, unsigned int inbound) |
| write endian corrected 32bit value to ppc | |
Protected Member Functions | |
| void | conclude () override |
| IOKit: Main driver finalization. | |
| virtual os_result | irq_disable () |
| IOKit: disable hardware irq handler. | |
| virtual os_result | irq_enable () |
| IOKit: enable hardware irq handler. | |
| virtual os_result | isr_odi (unsigned int dbr) |
| outbound doorbell interrupt handler | |
| virtual os_result | isr_opqi (unsigned int fpqr) |
| outbound messsage interrupt handler | |
| os_result | launch () override |
| IOKit: Main driver entry. | |
Protected Attributes | |
| resources | hw |
PPC device.
This class provides embedded PPC PCI device driver functionality.
| enum dxd::ppc::eumb |
embedded utility memory block
Register set for use in eumb function to retrieve pointer of device register.
| enum dxd::ppc::i2o |
|
inlineoverrideprotectedvirtualinherited |
IOKit: Main driver finalization.
conclude() is one of the driver-supplied routines that is called before a driver is to be removed. It is responsible for freeing all resource the driver acquired during launch().
Reimplemented from dxd::device.
|
inlineinherited |
apply executor functor for each child
|
inlineinherited |
apply executor functor for each user client
|
inline |
pointer to eumb register
Use with eumb register set for use in eumb function to retrieve pointer of device register.
|
inline |
fill ppc inbound range with 32bit pattern
Fill the ppc inbound range with a 32bit pattern. Since this function needs to access the inbound translation window this call blocks.
| pattern | 32bit pattern to be written to inbound ppc range |
| inbound | ppc inbound range start address to be filled |
| size32 | amount of 32bit values written to inbound range |
|
inline |
i2o message send
Copies the message contents to PCI window and
writes inbound queue to post the message.
Here is the call graph for this function:
|
inlineinherited |
convenience ioctl accessor for direct inter-kext IOCTL
Here is the call graph for this function:
|
inlinevirtualinherited |
device IOCTL handler
virtual ioctl() gets called by the dynax driver framework for device IOCTL handling.
remark: this is rarely done. usually IOCTLs are handled in the user client derivate.
| ioctl | IOCTL |
| in | buffer pointer containing data from user mode |
| size_in | size of the buffer containing data from user mode |
| out | buffer pointer accepting data to be returned to user mode |
| size_out | size of the buffer accepting data to be returned to user mode |
| size | actual size of data to be returned to user mode |
Reimplemented in dxd::usb_stream_device.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineprotectedvirtualinherited |
IOKit: disable hardware irq handler.
|
inlineprotectedvirtualinherited |
IOKit: enable hardware irq handler.
|
inlineprotectedvirtual |
outbound doorbell interrupt handler
| dbr | doorbell register |
|
inlineprotectedvirtual |
outbound messsage interrupt handler
| fpqr | FIFO pointer queue register |
|
inlineoverrideprotectedvirtual |
IOKit: Main driver entry.
launch() is one of the dynax driver frameword-supplied routines that is called after this driver is loaded. It is responsible for initializing the driver.
Checks if there are exactly two PCI memory windows.
Reimplemented from dxd::pci.
|
inlineinherited |
|
inlineinherited |
IOKit IOPCIDevice* implicit cast.
|
inlineinherited |
provider property request
try if property is an OSString
or, try to get it as OSData
Here is the caller graph for this function:
|
inherited |
device property request
device string property request
try if property is an OSString
get it as OSData
|
inherited |
(defined(doxygen)||defined(DXD_EXTERN))
device integer property request
|
inline |
read endian corrected 32bit values from ppc
Return the endian corrected 32bit values from ppc device. Since this function needs to access the inbound translation window this call blocks.
| dst | buffer to accept read data |
| inbound | ppc inbound address to read from |
| size32 | amount of 32bit words to read |
|
inline |
read the endian corrected 32bit value from ppc
Return the endian corrected 32bit value from ppc device. Since this function needs to access the inbound translation window this call blocks.
| inbound | ppc inbound address to read from |
|
inlineinherited |
|
inline |
write endian corrected 32bit values to ppc
Writes the endian corrected 32bit values to ppc device. Since this function needs to access the inbound translation window this call blocks.
| src | 32bit buffer containing data to be written to ppc |
| inbound | ppc inbound destination address |
| size32 | number of 32bit values to be written to ppc |
|
inline |
write endian corrected 32bit value to ppc
Writes the endian corrected 32bit value to ppc device. Since this function needs to access the inbound translation window this call blocks.
| src | 32bit value containing data to be written to ppc |
| inbound | ppc inbound destination address |
| volatile unsigned int dxd::ppc::dbr |
doorbell register
|
protectedinherited |
| volatile unsigned int dxd::ppc::sr |
status register
| (c) copyright 2009 dynamic acoustics e.U. | generated on Tue Nov 25 2025 |