A set of basic interfaces to operate isochronous context on 1394 OHCI hardware.
[iface@FwIsoCtx] includes interfaces to operate 1394 OHCI hardware for isochronous communication
by any kind of contexts.
Create [struct@GLib.Source] for [struct@GLib.MainContext] to dispatch events for isochronous
context.
TRUE if the overall operation finishes successfully, otherwise FALSE.
A [iface@FwIsoCtx].
A [struct@GLib.Source].
Flush isochronous context until recent isochronous cycle. The call of function forces the
context to queue any type of interrupt event for the recent isochronous cycle. Application can
process the content of isochronous packet without waiting for actual hardware interrupt.
TRUE if the overall operation finishes successfully, otherwise FALSE.
A [iface@FwIsoCtx].
Retrieve the value of cycle time register. This method call is available once any isochronous
context is created.
TRUE if the overall operation finishes successfully, otherwise FALSE.
A [iface@FwIsoCtx].
The numeric ID of clock source for the reference timestamp. One CLOCK_REALTIME(0),
CLOCK_MONOTONIC(1), and CLOCK_MONOTONIC_RAW(4) is available in UAPI of Linux kernel.
A [struct@Hinawa.CycleTime] to store data of cycle time.
Release the contest from 1394 OHCI hardware.
A [iface@FwIsoCtx].
Stop isochronous context.
A [iface@FwIsoCtx].
Closure for the [signal@FwIsoCtx::stopped] signal.
A [iface@FwIsoCtx].
A [struct@GLib.Error].
Unmap intermediate buffer shared with 1394 OHCI hardware for the context.
A [iface@FwIsoCtx].
Create [struct@GLib.Source] for [struct@GLib.MainContext] to dispatch events for isochronous
context.
TRUE if the overall operation finishes successfully, otherwise FALSE.
A [iface@FwIsoCtx].
A [struct@GLib.Source].
Flush isochronous context until recent isochronous cycle. The call of function forces the
context to queue any type of interrupt event for the recent isochronous cycle. Application can
process the content of isochronous packet without waiting for actual hardware interrupt.
TRUE if the overall operation finishes successfully, otherwise FALSE.
A [iface@FwIsoCtx].
Retrieve the value of cycle time register. This method call is available once any isochronous
context is created.
TRUE if the overall operation finishes successfully, otherwise FALSE.
A [iface@FwIsoCtx].
The numeric ID of clock source for the reference timestamp. One CLOCK_REALTIME(0),
CLOCK_MONOTONIC(1), and CLOCK_MONOTONIC_RAW(4) is available in UAPI of Linux kernel.
A [struct@Hinawa.CycleTime] to store data of cycle time.
Release the contest from 1394 OHCI hardware.
A [iface@FwIsoCtx].
Stop isochronous context.
A [iface@FwIsoCtx].
Unmap intermediate buffer shared with 1394 OHCI hardware for the context.
A [iface@FwIsoCtx].
The number of bytes per chunk in buffer.
The number of chunks per buffer.
Emitted when isochronous context is stopped.
A [struct@GLib.Error].
A set of error code for operations in [iface@FwIsoCtx].
The system call fails.
The instance is already associated to any firewire
character device.
The instance is not associated to any firewire
character device.
The intermediate buffer is already mapped to the
process.
The intermediate buffer is not mapped to the
process.
No chunk registered before starting.
No isochronous channel is available.
Return the [alias@GLib.Quark] for [struct@GLib.Error] which has code in [error@FwIsoCtxError].
A [alias@GLib.Quark].
A [iface@FwIsoCtx].
A [iface@FwIsoCtx].
A [iface@FwIsoCtx].
TRUE if the overall operation finishes successfully, otherwise FALSE.
A [iface@FwIsoCtx].
The numeric ID of clock source for the reference timestamp. One CLOCK_REALTIME(0),
CLOCK_MONOTONIC(1), and CLOCK_MONOTONIC_RAW(4) is available in UAPI of Linux kernel.
A [struct@Hinawa.CycleTime] to store data of cycle time.
TRUE if the overall operation finishes successfully, otherwise FALSE.
A [iface@FwIsoCtx].
TRUE if the overall operation finishes successfully, otherwise FALSE.
A [iface@FwIsoCtx].
A [struct@GLib.Source].
A [iface@FwIsoCtx].
A [struct@GLib.Error].
A set of tag field of isochronous packet on IEEE 1394 bus.
The value of tag0 in 1394 OHCI.
The value of tag1 in 1394 OHCI.
The value of tag2 in 1394 OHCI.
The value of tag3 in 1394 OHCI.
A set of mode for isochronous context of Linux FireWire subsystem.
The mode of IT context of 1394 OHCI.
The mode of IR context of 1394 OHCI with
packer-per-buffer protocol
The mode of IR context of 1394 OHCI with
buffer-fill protocol.
An object to receive isochronous packet for several channels.
[class@FwIsoIrMultiple] receives isochronous packets for several channels by buffer-fill mode of
IR context in 1394 OHCI.
Instantiate [class@FwIsoIrMultiple] object and return the instance.
an instance of [class@FwIsoIrMultiple].
Class closure for the [signal@FwIsoIrMultiple::interrupted].
A [class@FwIsoIrMultiple].
The number of packets available in this interrupt.
Allocate an IR context to 1394 OHCI hardware for buffer-fill mode. A local node of the node
corresponding to the given path is used as the hardware, thus any path is accepted as long as
process has enough permission for the path.
A [class@FwIsoIrMultiple].
A path to any Linux FireWire character device.
an array for channels to listen
to. The value of each element should be up to 63.
The length of channels.
Retrieve data for packet indicated by the index parameter. The data has isochronous packet header
in its first quadlet, timestamp in its last quadlet. The rest is data of isochronous packet.
A [class@FwIsoIrMultiple].
the index of packet available in this interrupt.
The array with data frame for payload of
IR context.
The number of bytes in the above @payload.
Map an intermediate buffer to share payload of IR context with 1394 OHCI hardware.
A [class@FwIsoIrMultiple].
The maximum number of bytes for payload of isochronous packet (not payload for
isochronous context).
The number of chunks in buffer.
Start IR context.
A [class@FwIsoIrMultiple].
The isochronous cycle
to start packet processing. The first element should be the second part of
isochronous cycle, up to 3. The second element should be the cycle part of
isochronous cycle, up to 7999.
The value of sy field in isochronous packet header for packet processing, up to 15.
The value of tag field in isochronous header for packet processing.
The number of chunks per interval of interrupt. When 0 is given, application
should call [method@FwIsoCtx.flush_completions] voluntarily to generate
[signal@FwIsoIrMultiple::interrupted] event.
The array with elements to express isochronous channels to be listened to.
Emitted when Linux FireWire subsystem generates interrupt event. There are two cases
for Linux FireWire subsystem to generate the event:
- When 1394 OHCI hardware generates hardware interrupt as a result to process the
isochronous packet for the buffer chunk marked to generate hardware interrupt.
- When application calls [method@FwIsoCtx.flush_completions] explicitly.
The handler of signal can retrieve the content of packet by call of
[method@FwIsoIrMultiple.get_payload].
The number of packets available in this interrupt.
A [class@FwIsoIrMultiple].
The number of packets available in this interrupt.
An object to receive isochronous packet for single channel.
[class@FwIsoIrSingle] receives isochronous packets for single channel by packet-per-buffer
mode of IR context in 1394 OHCI. The content of packet is split to two parts; context header and
context payload in a manner of Linux FireWire subsystem.
Instantiate [class@FwIsoIrSingle] object and return the instance.
an instance of [class@FwIsoIrSingle].
Class closure for the [signal@FwIsoIrSingle::interrupted] signal.
A [class@FwIsoIrSingle].
The sec part of isochronous cycle when interrupt occurs, up to 7.
The cycle part of of isochronous cycle when interrupt occurs, up to 7999.
The headers of IR context
for packets handled in the event of interrupt. The content is different
depending on header_size parameter of [method@FwIsoIrSingle.allocate].
the number of bytes for header.
the number of packets to handle.
Allocate an IR context to 1394 OHCI hardware for packet-per-buffer mode. A local node of the
node corresponding to the given path is used as the hardware, thus any path is accepted as
long as process has enough permission for the path.
The header_size parameter has an effect for the content of header parameter in
[signal@FwIsoIrSingle::interrupted]. When it's greater than 8, header includes the series of two
quadlets for isochronous packet header and timestamp per isochronous packet. When it's greater
than 12, header includes the part of isochronous packet data per packet.
TRUE if the overall operation finishes successfully, otherwise FALSE.
A [class@FwIsoIrSingle].
A path to any Linux FireWire character device.
An isochronous channel to listen, up to 63.
The number of bytes for header of IR context, greater than 4 at least to include
isochronous packet header in header parameter of [signal@FwIsoIrSingle::interrupted].
Retrieve payload of IR context for a handled packet corresponding to index at the event of
interrupt.
A [class@FwIsoIrSingle].
the index inner available packets at the event of interrupt.
The array with data
frame for payload of IR context.
The number of bytes in the above payload.
Map intermediate buffer to share payload of IR context with 1394 OHCI hardware.
TRUE if the overall operation finishes successfully, otherwise FALSE.
A [class@FwIsoIrSingle].
The maximum number of bytes per payload of IR context.
The number of payload in buffer.
Register chunk of buffer to process packet for future isochronous cycle. The caller can schedule
hardware interrupt to generate interrupt event. In detail, please refer to documentation about
[signal@FwIsoIrSingle::interrupted] signal.
TRUE if the overall operation finishes successfully, otherwise FALSE.
A [class@FwIsoIrSingle].
Whether to schedule hardware interrupt at isochronous cycle for the packet.
Start IR context.
TRUE if the overall operation finishes successfully, otherwise FALSE.
A [class@FwIsoIrSingle].
The isochronous cycle
to start packet processing. The first element should be the second part of
isochronous cycle, up to 3. The second element should be the cycle part of
isochronous cycle, up to 7999.
The value of sy field in isochronous packet header for packet processing, up to 15.
The value of tag field in isochronous header for packet processing.
Emitted when Linux FireWire subsystem generates interrupt event. There are three cases
for Linux FireWire subsystem to generate the event:
- When 1394 OHCI hardware generates hardware interrupt as a result to process the
isochronous packet for the buffer chunk marked to generate hardware interrupt.
- When the size of accumulated context header for packets since the last event reaches
the size of memory page (usually 4,096 bytes).
- When application calls [method@FwIsoCtx.flush_completions] explicitly.
The handler of signal can retrieve context payload of received packet by call of
[method@FwIsoIrSingle.get_payload].
sec part of isochronous cycle when interrupt occurs, up to 7.
cycle part of of isochronous cycle when interrupt occurs, up to 7999.
The headers of IR context
for packets handled in the event of interrupt. The content is different
depending on header_size parameter of [method@FwIsoIrSingle.allocate].
the number of bytes for @header.
the number of packets to handle.
A [class@FwIsoIrSingle].
The sec part of isochronous cycle when interrupt occurs, up to 7.
The cycle part of of isochronous cycle when interrupt occurs, up to 7999.
The headers of IR context
for packets handled in the event of interrupt. The content is different
depending on header_size parameter of [method@FwIsoIrSingle.allocate].
the number of bytes for header.
the number of packets to handle.
An object to transmit isochronous packet for single channel.
[class@FwIsoIt] transmits isochronous packets for single channel by IT context in 1394 OHCI.
The content of packet is split to two parts; context header and context payload in a manner of
Linux FireWire subsystem.
Instantiate [class@FwIsoIt] object and return the instance.
an instance of [class@FwIsoIt].
Class closure for the [signal@FwIsoIt::interrupted] signal.
A [class@FwIsoIt].
The sec part of isochronous cycle when interrupt occurs, up to 7.
The cycle part of of isochronous cycle when interrupt occurs, up to 7999.
A series of timestamps for
packets already handled.
the number of bytes for @tstamp.
the number of handled packets.
Allocate an IT context to 1394 OHCI hardware. A local node of the node corresponding to the
given path is used as the hardware, thus any path is accepted as long as process has enough
permission for the path.
TRUE if the overall operation finishes successful, otherwise FALSE.
A [class@FwIsoIt].
A path to any Linux FireWire character device.
A [enum@FwScode] to indicate speed of isochronous communication.
An isochronous channel to transfer, up to 63.
The number of bytes for header of IT context.
Map intermediate buffer to share payload of IT context with 1394 OHCI hardware.
TRUE if the overall operation finishes successful, otherwise FALSE.
A [class@FwIsoIt].
The number of bytes for payload of IT context.
The number of payloads of IT context in buffer.
Register packet data with header and payload for IT context. The content of given header and
payload is appended into data field of isochronous packet to be sent. The caller can schedule
hardware interrupt to generate interrupt event. In detail, please refer to documentation about
[signal@FwIsoIt::interrupted].
TRUE if the overall operation finishes successful, otherwise FALSE.
A [class@FwIsoIt].
The value of tag field for isochronous packet to register.
The value of sync field in isochronous packet header for packet processing, up to 15.
The header of IT context for isochronous
packet. The length of header should be the same as the size of header indicated in
allocation if it's not null.
The number of bytes for the @header.
The payload of IT context for isochronous
packet.
The number of bytes for the @payload.
Whether to schedule hardware interrupt at isochronous cycle for the packet.
Start IT context.
TRUE if the overall operation finishes successful, otherwise FALSE.
A [class@FwIsoIt].
The isochronous cycle
to start packet processing. The first element should be the second part of
isochronous cycle, up to 3. The second element should be the cycle part of
isochronous cycle, up to 7999.
Emitted when Linux FireWire subsystem generates interrupt event. There are three cases
for Linux FireWire subsystem to generate the event:
- When 1394 OHCI hardware generates hardware interrupt as a result of processing the
isochronous packet for the buffer chunk marked to generate hardware interrupt.
- When the number of isochronous packets sent since the last interrupt event reaches
one quarter of memory page size (usually 4,096 / 4 = 1,024 packets).
- When application calls [method@FwIsoCtx.flush_completions] explicitly.
sec part of isochronous cycle when interrupt occurs, up to 7.
cycle part of of isochronous cycle when interrupt occurs, up to 7999.
A series of timestamps for
packets already handled.
the number of bytes for @tstamp.
the number of handled packets.
A [class@FwIsoIt].
The sec part of isochronous cycle when interrupt occurs, up to 7.
The cycle part of of isochronous cycle when interrupt occurs, up to 7999.
A series of timestamps for
packets already handled.
the number of bytes for @tstamp.
the number of handled packets.
A set of basic interfaces to listen to events about isochronous resource.
[iface@FwIsoResource] includes interfaces to listen to events about allocation and
deallocation of isochronous resource.
Calculate the amount of bandwidth expected to be consumed in allocation unit
by given parameters.
The amount of bandwidth expected to be consumed.
The number of bytes in payload of isochronous packet.
The speed of transmission.
Initiate allocation of isochronous resource without any wait. One of the candidates is actually
allocated for channel. When the allocation finishes, [signal@FwIsoResource::allocated] signal is
emitted to notify the result, channel, and bandwidth.
TRUE if the overall operation finishes successfully, otherwise FALSE.
A [iface@FwIsoResource].
The array with elements for
numeric number of isochronous channel to be allocated.
The number of channel candidates.
The amount of bandwidth to be allocated.
Closure for the [signal@FwIsoResource::allocated] signal.
A [iface@FwIsoResource].
The deallocated channel number.
The deallocated amount of bandwidth.
A [struct@GLib.Error]. Error can be generated
with domain of [error@FwIsoResourceError] and its EVENT code.
Create [struct@GLib.Source] for [struct@GLib.MainContext] to dispatch events for isochronous
resource.
TRUE if the overall operation finished successfully, otherwise FALSE.
A [iface@FwIsoResource].
A [struct@GLib.Source]
Closure for the [signal@FwIsoResource::deallocated] signal.
A [iface@FwIsoResource].
The deallocated channel number.
The deallocated amount of bandwidth.
A [struct@GLib.Error]. Error can be generated
with domain of [error@FwIsoResourceError] and its EVENT code.
Open Linux FireWire character device to delegate any request for isochronous
resource management to Linux FireWire subsystem.
TRUE if the overall operation finished successfully, otherwise FALSE.
A [iface@FwIsoResource].
A path of any Linux FireWire character device.
The flag of open(2) system call. O_RDONLY is forced to fulfil
internally.
Initiate allocation of isochronous resource without any wait. One of the candidates is actually
allocated for channel. When the allocation finishes, [signal@FwIsoResource::allocated] signal is
emitted to notify the result, channel, and bandwidth.
TRUE if the overall operation finishes successfully, otherwise FALSE.
A [iface@FwIsoResource].
The array with elements for
numeric number of isochronous channel to be allocated.
The number of channel candidates.
The amount of bandwidth to be allocated.
Initiate allocation of isochronous resource and wait for [signal@FwIsoResource::allocated]
signal. One of the candidates is actually allocated for channel.
TRUE if the overall operation finishes successfully, otherwise FALSE.
A [iface@FwIsoResource].
The array with elements for
numeric number for isochronous channel to be allocated.
The number of channel candidates.
The amount of bandwidth to be allocated.
The timeout to wait for allocated event.
Create [struct@GLib.Source] for [struct@GLib.MainContext] to dispatch events for isochronous
resource.
TRUE if the overall operation finished successfully, otherwise FALSE.
A [iface@FwIsoResource].
A [struct@GLib.Source]
Open Linux FireWire character device to delegate any request for isochronous
resource management to Linux FireWire subsystem.
TRUE if the overall operation finished successfully, otherwise FALSE.
A [iface@FwIsoResource].
A path of any Linux FireWire character device.
The flag of open(2) system call. O_RDONLY is forced to fulfil
internally.
Emitted when allocation of isochronous resource finishes.
The deallocated channel number.
The deallocated amount of bandwidth.
A [struct@GLib.Error]. Error can be generated
with domain of [error@FwIsoResourceError] and its EVENT code.
Emitted when deallocation of isochronous resource finishes.
The deallocated channel number.
The deallocated amount of bandwidth.
A [struct@GLib.Error]. Error can be generated
with domain of [error@FwIsoResourceError] and its EVENT code.
An object to maintain allocated isochronous resource.
[class@FwIsoResourceAuto]is an object to maintain isochronous resource during the lifetime of
the object. The allocated isochronous resource is kept even if the generation of the bus
updates. The maintenance of allocated isochronous resource is done by Linux FireWire subsystem.
Allocate and return an instance of [class@FwIsoResourceAuto]object.
A [class@FwIsoResourceAuto]
Initiate deallocation of isochronous resource. When the deallocation is done,
[signal@FwIsoResource::deallocated] signal is emit to notify the result, channel, and bandwidth.
TRUE if the overall operation finished successfully, otherwise FALSE.
A [class@FwIsoResourceAuto]
Initiate deallocation of isochronous resource. When the deallocation is done,
[signal@FwIsoResource::deallocated] signal is emit to notify the result, channel, and bandwidth.
TRUE if the overall operation finished successfully, otherwise FALSE.
A [class@FwIsoResourceAuto]
The timeout to wait for allocated event by milli second unit.
The allocated amount of bandwidth.
The allocated channel number.
Whether to be allocate isochronous resource or not.
A set of error code for operations in [class@FwIsoResourceAuto].
The system call fails.
The instance is already associated to
allocated isochronous resources.
The instance is not associated to allocated
isochronous resources.
Return the [alias@GLib.Quark] for error domain of [struct@GLib.Error] which has code in
[error@FwIsoResourceAutoError].
A [alias@GLib.Quark].
A set of error code for operations in [iface@FwIsoResource].
The system call fails.
The instance is already associated to any firewire
character device.
The instance is not associated to any firewire
character device.
No event to the request arrives within timeout.
Event for the request arrives but includes error code.
Return the [alias@GLib.Quark] for [struct@GLib.Error] with which has code in
[error@FwIsoResourceError].
A [alias@GLib.Quark].
TRUE if the overall operation finished successfully, otherwise FALSE.
A [iface@FwIsoResource].
A path of any Linux FireWire character device.
The flag of open(2) system call. O_RDONLY is forced to fulfil
internally.
TRUE if the overall operation finishes successfully, otherwise FALSE.
A [iface@FwIsoResource].
The array with elements for
numeric number of isochronous channel to be allocated.
The number of channel candidates.
The amount of bandwidth to be allocated.
TRUE if the overall operation finished successfully, otherwise FALSE.
A [iface@FwIsoResource].
A [struct@GLib.Source]
A [iface@FwIsoResource].
The deallocated channel number.
The deallocated amount of bandwidth.
A [struct@GLib.Error]. Error can be generated
with domain of [error@FwIsoResourceError] and its EVENT code.
A [iface@FwIsoResource].
The deallocated channel number.
The deallocated amount of bandwidth.
A [struct@GLib.Error]. Error can be generated
with domain of [error@FwIsoResourceError] and its EVENT code.
An object to initiate requests and listen events of isochronous resource allocation/deallocation
by one shot.
The [class@FwIsoResourceOnce] is an object to initiate requests and listen events of isochronous
resource allocation/deallocation by file descriptor owned internally. The allocated resource
is left even if this object is destroyed, thus application is responsible for deallocation.
Allocate and return an instance of [class@FwIsoResourceOnce].
A [class@FwIsoResourceOnce].
Initiate deallocation of isochronous resource without any wait. When the
deallocation finishes, [signal@FwIsoResource::deallocated] signal is emit to notify the result,
channel, and bandwidth.
TRUE if the overall operation finishes successfully, otherwise FALSE.
A [class@FwIsoResourceOnce].
The channel number to be deallocated.
The amount of bandwidth to be deallocated.
Initiate deallocation of isochronous resource and wait for [signal@FwIsoResource::deallocated]
signal.
TRUE if the overall operation finishes successfully, otherwise FALSE.
A [class@FwIsoResourceOnce].
The channel number to be deallocated.
The amount of bandwidth to be deallocated.
The timeout to wait for deallocated event.
A set of speed for isochronous context on IEEE 1394 bus.
100 Mbps.
200 Mbps.
400 Mbps.
800 Mbps.
1600 Mbps.
3200 Mbps.
Return the [alias@GLib.Quark] for [struct@GLib.Error] which has code in [error@FwIsoCtxError].
A [alias@GLib.Quark].
Return the [alias@GLib.Quark] for error domain of [struct@GLib.Error] which has code in
[error@FwIsoResourceAutoError].
A [alias@GLib.Quark].
Calculate the amount of bandwidth expected to be consumed in allocation unit
by given parameters.
The amount of bandwidth expected to be consumed.
The number of bytes in payload of isochronous packet.
The speed of transmission.
Return the [alias@GLib.Quark] for [struct@GLib.Error] with which has code in
[error@FwIsoResourceError].
A [alias@GLib.Quark].