dau_driver.macos_xdma¶
Attributes¶
Classes¶
Base class for protocol classes. |
|
Functions¶
|
The user client hands these to the dext as unsigned 64-bit scalars; a |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Module Contents¶
- dau_driver.macos_xdma.DEFAULT_BACKEND = 'macos-xdma'¶
- dau_driver.macos_xdma.CANONICAL_SERVICE_NAME = 'com.dau-dev.xdma'¶
- dau_driver.macos_xdma.DEFAULT_SERVICE_NAMES¶
- dau_driver.macos_xdma.REGISTER_BAR_INDICES = (0, 1, 2, 3, 4, 5)¶
- dau_driver.macos_xdma.K_METHOD_READ_BAR = 0¶
- dau_driver.macos_xdma.K_METHOD_WRITE_BAR = 1¶
- dau_driver.macos_xdma.K_METHOD_DMA_WRITE = 2¶
- dau_driver.macos_xdma.K_METHOD_DMA_READ = 3¶
- dau_driver.macos_xdma.K_METHOD_GET_INFO = 4¶
- dau_driver.macos_xdma.DMA_CHUNK_BYTES = 8388608¶
- dau_driver.macos_xdma.MACOS_XDMA_DMA_CONSTRAINTS¶
- class dau_driver.macos_xdma.MacOSXDMAServiceProbe[source]¶
- service_name: str¶
- matched_services: int = 0¶
- opened_clients: int = 0¶
- error: str | None = None¶
- class dau_driver.macos_xdma.MacOSXDMAProbeResult[source]¶
- status: str¶
- devices: tuple[dau_driver.device.DauDevice, ...]¶
- service_names: tuple[str, ...]¶
- service_probes: tuple[MacOSXDMAServiceProbe, ...]¶
- failures: tuple[str, ...]¶
- message: str¶
- dau_driver.macos_xdma._check_bar_access(bar_index: int, offset: int) None[source]¶
The user client hands these to the dext as unsigned 64-bit scalars; a negative offset would wrap to a huge one and address BAR space the caller never meant to touch.
- class dau_driver.macos_xdma.MacOSXDMAClientProtocol[source]¶
Bases:
ProtocolBase class for protocol classes.
Protocol classes are defined as:
class Proto(Protocol): def meth(self) -> int: ...
Such classes are primarily used with static type checkers that recognize structural subtyping (static duck-typing).
For example:
class C: def meth(self) -> int: return 0 def func(x: Proto) -> int: return x.meth() func(C()) # Passes static type check
See PEP 544 for details. Protocol classes decorated with @typing.runtime_checkable act as simple-minded runtime protocols that check only the presence of given attributes, ignoring their type signatures. Protocol classes can be generic, they are defined as:
class GenProto[T](Protocol): def meth(self) -> T: ...
- get_info() MacOSXDMADeviceInfo[source]¶
- class dau_driver.macos_xdma.MacOSXDMADeviceInfo[source]¶
- vendor_id: int¶
- device_id: int¶
- subsystem_vendor_id: int¶
- subsystem_device_id: int¶
- class dau_driver.macos_xdma.MacOSXDMATransport[source]¶
- client: MacOSXDMAClientProtocol¶
- bar_index: int¶
- class dau_driver.macos_xdma.MacOSXDMAClient[source]¶
- connection: int¶
- service: int¶
- bindings: _IOKitBindings¶
- classmethod open_all(*, service_name: str | None = None, service_names: collections.abc.Sequence[str] | None = None) tuple[MacOSXDMAClient, ...][source]¶
- classmethod open_candidates(*, service_name: str | None = None, service_names: collections.abc.Sequence[str] | None = None) tuple[tuple[MacOSXDMAClient, ...], tuple[MacOSXDMAServiceProbe, ...]][source]¶
- classmethod _open_service_name(bindings: _IOKitBindings, service_name: str, seen_services: set[int]) tuple[tuple[MacOSXDMAClient, ...], MacOSXDMAServiceProbe][source]¶
- get_info() MacOSXDMADeviceInfo[source]¶
- class dau_driver.macos_xdma._IOKitBindings[source]¶
- iokit: ctypes.CDLL¶
- libsystem: ctypes.CDLL¶
- classmethod load() _IOKitBindings[source]¶
- call_struct_in(connection: int, selector: int, scalars: collections.abc.Sequence[int], data: bytes | bytearray | memoryview) None[source]¶
- call_struct_out(connection: int, selector: int, scalars: collections.abc.Sequence[int], output_size: int) bytes[source]¶
- dau_driver.macos_xdma.discover_devices(client_factory: collections.abc.Callable[[], collections.abc.Iterable[MacOSXDMAClientProtocol]] | None = None) list[dau_driver.device.DauDevice][source]¶
- dau_driver.macos_xdma.probe_devices(client_factory: collections.abc.Callable[[], collections.abc.Iterable[MacOSXDMAClientProtocol]] | None = None, *, service_names: collections.abc.Sequence[str] = DEFAULT_SERVICE_NAMES, service_probes: collections.abc.Sequence[MacOSXDMAServiceProbe] = ()) MacOSXDMAProbeResult[source]¶
- dau_driver.macos_xdma._normalize_service_names(*, service_name: str | None = None, service_names: collections.abc.Sequence[str] | None = None) tuple[str, ...][source]¶
- dau_driver.macos_xdma._probe_status(devices: tuple[dau_driver.device.DauDevice, ...], clients: tuple[MacOSXDMAClientProtocol, ...], service_probes: tuple[MacOSXDMAServiceProbe, ...], failures: tuple[str, ...]) str[source]¶
- dau_driver.macos_xdma._probe_result(*, status: str, devices: tuple[dau_driver.device.DauDevice, ...], service_names: tuple[str, ...], service_probes: tuple[MacOSXDMAServiceProbe, ...], failures: tuple[str, ...]) MacOSXDMAProbeResult[source]¶
- dau_driver.macos_xdma._probe_message(status: str, devices: tuple[dau_driver.device.DauDevice, ...], service_names: tuple[str, ...], service_probes: tuple[MacOSXDMAServiceProbe, ...], failures: tuple[str, ...]) str[source]¶
- dau_driver.macos_xdma._format_service_probe_details(service_probes: collections.abc.Sequence[MacOSXDMAServiceProbe]) str[source]¶
- dau_driver.macos_xdma.identify_device(client: MacOSXDMAClientProtocol, *, index: int = 0) dau_driver.device.DauDevice[source]¶
- dau_driver.macos_xdma._find_register_window(client: MacOSXDMAClientProtocol) tuple[int, int, int][source]¶
- dau_driver.macos_xdma._read_register_block_snapshot(client: MacOSXDMAClientProtocol, bar_index: int, register_window_offset: int) dau_core.registers.RegisterBlockSnapshot[source]¶
- dau_driver.macos_xdma._read_register(client: MacOSXDMAClientProtocol, bar_index: int, register_window_offset: int, offset: dau_core.registers.RegisterOffset) int[source]¶