Crate magma

source ·

Structs

Constants

Functions

\brief Cleans, and optionally invalidates, the cache for the region of memory specified by the given buffer, offset, and size, and write the contents to ram. \param buffer A valid buffer. \param offset An offset into the buffer. Must be less than or equal to the buffer’s size. \param size Size of region to be cleaned. Offset + size must be less than or equal to the buffer’s size. \param operation One of MAGMA_CACHE_OPERATION_CLEAN or MAGMA_CACHE_OPERATION_CLEAN_INVALIDATE.
\brief Queries the cache policy for a buffer. \param buffer A valid buffer. \param cache_policy_out The returned cache policy.
\brief Gets a platform handle for the given buffer. This can be used to perform a CPU mapping of the buffer using the standard syscall. The handle may be released without invalidating such CPU mappings. \param buffer A valid buffer. \param handle_out Pointer to the returned handle.
\brief Returns a unique id for the given buffer. For performance reasons it’s recommended to cache the id rather than call this repeatedly. \param buffer A valid buffer.
\brief Get information on a magma buffer \param connection An open connection. \param buffer A valid buffer. \param info_out Pointer to struct that receives the buffer info.
\brief Returns the actual size of the given buffer. \param buffer A valid buffer.
\brief Configures the cache for the given buffer. \param buffer A valid buffer. \param policy One of MAGMA_CACHE_POLICY_[CACHED|WRITE_COMBINING|UNCACHED].
\brief Sets a name for the buffer for use in debugging tools. \param connection An open connection. \param buffer A valid buffer. \param name The 0-terminated name of the buffer. May be truncated.
\brief Adds a an array of buffers + offset to the pool. |offsets[n].buffer_id| is the koid of a buffer that was previously imported using ImportBuffer(). The same buffer may be added to multiple pools. The pool will hold on to a reference to the buffer even after ReleaseBuffer is called. When dumped into this entry, counters will be written starting at |offsets[n].offset| bytes into the buffer, and up to |offsets[n].offset| + |offsets[n].size|. |offsets[n].size| must be large enough to fit all enabled counters. Performance counter access must have been enabled using magma_connection_enable_performance_counter_access before calling this method. \param connection An open connection to a device. \param pool_id An existing pool. \param offsets An array of offsets to add. \param offsets_count The number of elements in offsets.
\brief Perform an operation on a range of a buffer \param connection An open connection. \param buffer A valid buffer. \param options Options for the operation. \param start_offset Byte offset into the buffer. \param length Length (in bytes) of the region to operate on.
\brief Sets the values of all listed performance counters to 0. May not be supported by some hardware. Performance counter access must have been enabled using magma_connection_enable_performance_counter_access before calling this method. \param connection An open connection to a device. \param counters An implementation-defined list of counters. \param counters_count The number of entries in |counters|.
\brief Creates a memory buffer of at least the given size. \param connection An open connection. \param size Requested buffer size. \param size_out The returned buffer’s actual size. \param buffer_out The returned buffer.
\brief Creates a context on the given connection. \param connection An open connection. \param context_id_out The returned context id.
\brief Create a pool of buffers that performance counters can be dumped into. Performance counter access must have been enabled using magma_connection_enable_performance_counter_access before calling this method. \param connection An open connection to a device. \param pool_id_out A new pool id. Must not currently be in use. \param notification_handle_out A handle that should be waited on.
\brief Creates a semaphore. \param connection An open connection. \param semaphore_out The returned semaphore.
\brief Triggers dumping of the performance counters into a buffer pool. May fail silently if there are no buffers in the pool. |trigger_id| is an arbitrary ID assigned by the client that can be returned in OnPerformanceCounterReadCompleted. Performance counter access must have been enabled using magma_connection_enable_performance_counter_access before calling this method. \param connection An open connection to a device. \param pool_id An existing pool \param trigger_id An arbitrary ID assigned by the client that will be returned in OnPerformanceCounterReadCompleted.
\brief Tries to enable access to performance counters. Returns MAGMA_STATUS_OK if counters were successfully enabled or MAGMA_STATUS_ACCESS_DENIED if channel is for the wrong device and counters were not successfully enabled previously. \param connection An open connection to a device. \param channel A handle to a channel to a gpu-performance-counter device.
\brief Enables a set of performance counters (the precise definition depends on the driver). Disables enabled performance counters that are not in the new set. Performance counters will also be automatically disabled on connection close. Performance counter access must have been enabled using magma_connection_enable_performance_counter_access before calling this method. \param connection An open connection to a device. \param counters An implementation-defined list of counters. \param counters_count The number of entries in |counters|.
\brief Submits command buffers for execution on the hardware. \param connection An open connection. \param context_id A valid context id. \param descriptor A pointer to the command descriptor.
\brief Submits a series of commands for execution on the hardware without using a command buffer. \param connection An open connection. \param context_id A valid context ID. \param command_count The number of commands in the provided buffer. \param command_buffers An array of command_count magma_inline_command_buffer structs.
\brief Exports the given buffer, returning a handle that may be imported into another connection. \param connection An open connection. \param buffer A valid buffer. \param buffer_handle_out The returned handle.
\brief Exports the given semaphore, returning a handle that may be imported into another connection \param connection An open connection. \param semaphore A valid semaphore. \param semaphore_handle_out The returned handle.
\brief Incurs a round-trip to the system driver, used to ensure all previous messages have been observed, but not necessarily completed. \param connection An open connection.
\brief When a system driver error occurs, the connection will be closed, and interfaces can return MAGMA_STATUS_CONNECTION_LOST. In that case, this returns the system driver error. This may incur a round-trip sync. \param connection An open connection.
\brief Returns a handle that can be waited on to determine when the connection has data in the notification channel. This channel has the same lifetime as the connection and must not be closed by the client. \param connection An open connection.
\brief Imports and takes ownership of the buffer referred to by the given handle. \param connection An open connection. \param buffer_handle A valid handle. \param buffer_out The returned buffer.
\brief Imports and takes ownership of the semaphore referred to by the given handle. \param connection An open connection. \param semaphore_handle A valid semaphore handle. \param semaphore_out The returned semaphore.
\brief Maps a buffer range onto the hardware in the connection’s address space at the given address. Depending on the MSD this may automatically commit and populate that range. \param connection An open connection. \param hw_va Destination virtual address for the mapping. \param buffer A valid buffer. \param offset Offset into the buffer. \param length Length in bytes of the range to map. \param map_flags A valid MAGMA_MAP_FLAGS value.
\brief Reads a notification from the channel into the given buffer. Message sizes may vary depending on the MSD. If the buffer provided is too small for the message, MAGMA_STATUS_INVALID_ARGS will be returned and the size of message will be returned in the buffer_size_out parameter. \param connection An open connection. \param buffer Buffer into which to read notification data. \param buffer_size Size of the given buffer. \param buffer_size_out Returned size of the notification data written to the buffer, or 0 if there are no messages pending. \param more_data_out True if there is more notification data waiting.
\brief Reads one performance counter completion event, if available. \param connection An open connection to a device. \param pool_id An existing pool. \param trigger_id_out The trigger ID for this event. \param buffer_id_out The buffer ID for this event. \param buffer_offset_out The buffer offset for this event. \param time_out The monotonic time this event happened. \param result_flags_out A set of flags giving more information about this event.
\brief Releases the given connection. \param connection An open connection.
\brief Releases the given memory buffer. \param connection An open connection. \param buffer A valid buffer.
\brief Releases the context associated with the given id. \param connection An open connection. \param context_id A valid context id.
\brief Releases a pool of performance counter buffers. Performance counter access must have been enabled using magma_connection_enable_performance_counter_access before calling this method. \param connection An open connection to a device. \param pool_id An existing pool id.
\brief Releases the given semaphore. \param connection An open connection. \param semaphore A valid semaphore.
\brief Removes every offset of a buffer from the pool. Performance counter access must have been enabled using magma_connection_enable_performance_counter_access before calling this method. \param connection An open connection to a device. \param pool_id An existing pool. \param buffer A magma_buffer
\brief Releases the mapping at the given hardware address. \param connection An open connection. \param hw_va A hardware virtual address associated with an existing mapping of the given buffer. \param buffer A valid buffer.
\brief Opens a connection to a device. \param device An open device \param connection_out Returned connection.
\brief Imports and takes ownership of a channel to a device. \param device_channel A channel connecting to a gpu class device. \param device_out Returned device.
\brief Performs a query synchronously. On MAGMA_STATUS_OK, a given query |id| will return either a buffer in |result_buffer_out|, or a value in |result_out|. A NULL pointer may be provided for whichever result parameter is not needed. \param device An open device. \param id A vendor-specific ID. \param result_buffer_out Handle to the returned buffer. \param result_out Pointer to a uint64 result.
\brief Releases a handle to a device \param device An open device.
\brief Initializes logging; used for debug and some exceptional error reporting. \param channel An open connection to the syslog service.
\brief Initializes tracing \param channel An open connection to a tracing provider.
\brief Waits for at least one of the given items to meet a condition. Does not reset any semaphores. Results are returned in the items array. \param items Array of poll items. Type should be either MAGMA_POLL_TYPE_SEMAPHORE or MAGMA_POLL_TYPE_HANDLE. Condition may be set to MAGMA_POLL_CONDITION_SIGNALED OR MAGMA_POLL_CONDITION_READABLE. If condition is 0 the item is ignored. Item results are set to the condition that was satisfied, otherwise 0. If the same item is given twice the behavior is undefined. \param count Number of poll items in the array. \param timeout_ns Time in ns to wait before returning MAGMA_STATUS_TIMED_OUT.
\brief Returns a unique id for the given semaphore. \param semaphore A valid semaphore.
\brief Resets the given semaphore. \param semaphore A valid semaphore.
\brief Signals the given semaphore. \param semaphore A valid semaphore.
\brief Creates an image buffer backed by a buffer collection given a DRM format and optional modifier, as specified in the create info. \param connection An open connection. \param create_info Input parameters describing the image. \param image_out The image buffer.
\brief Returns parameters for an image created with virtmagma_create_image. \param connection An open connection. \param image The image buffer. \param image_info_out Output parameters describing the image.

Type Definitions

Unions