Lines Matching +full:memory +full:- +full:controller

1 /* SPDX-License-Identifier: BSD-3-Clause */
3 * Copyright (C) 2019 - 2023 Intel Corporation
10 * struct um_timetravel_msg - UM time travel message
14 * This is the message passed between the host (user-mode Linux instance)
30 * @seq: sequence number for the message - shall be reflected in
46 * enum um_timetravel_shared_mem_fds - fds sent in ACK message for START message
50 * @UM_TIMETRAVEL_SHARED_MEMFD: Index of the shared memory file
63 * enum um_timetravel_start_ack - ack-time mask for start message
67 * @UM_TIMETRAVEL_START_ACK_ID: client ID that controller allocated.
73 * enum um_timetravel_ops - Operation codes
80 * memory no ACK for WAIT and RUN messages, for more info see
94 * (host -> calendar)
104 * (host -> calendar)
111 * (host -> calendar)
118 * (host -> calendar)
125 * (calendar -> host)
130 * @UM_TIMETRAVEL_FREE_UNTIL: Enable free-running until the given time,
137 * (calendar -> host)
155 * (calendar <-> host)
164 * enum um_timetravel_schedshm_cap - time travel capabilities of every client
167 * the START message, before sending any message to the controller.
172 * update internal time request to shared memory and read
180 * enum um_timetravel_schedshm_flags - time travel flags of every client
187 * shared memory, i.e. has %UM_TIMETRAVEL_SCHEDSHM_CAP_TIME_SHARE
195 * DOC: Time travel shared memory overview
197 * The main purpose of the shared memory is to avoid all time travel message
199 * memory without the need of any client to send a message UM_TIMETRAVEL_GET
202 * Since this is shared memory with all clients and controller and controller
203 * creates the shared memory space, all time values are absolute to controller
204 * time. So first time client connects to shared memory mode it should take the
205 * current_time value in shared memory and keep it internally as a diff to
206 * shared memory times, and once shared memory is initialized, any interaction
207 * with the controller must happen in the controller time domain, including any
208 * messages (for clients that are not using shared memory, the controller will
211 * Along with the shared memory file descriptor is sent to the client a logging
212 * file descriptor, to have all logs related to shared memory,
216 * To avoid memory corruption, we define below for each field who can write to
224 * union um_timetravel_schedshm_client - UM time travel client struct
226 * Every entity using the shared memory including the controller has a place in
228 * using the shared memory, and can be set only by the client after it gets the
229 * fd memory.
233 * shared memory file descriptor.
236 * @name: unique id sent to the controller by client with START message.
249 * struct um_timetravel_schedshm - UM time travel shared memory struct
253 * set by controller once at init, clients must check this after mapping
254 * and work without shared memory if they cannot handle the indicated
256 * @len: Length of all the memory including header (@hdr), clients should once
259 * clients be dynamic based on controller support.
263 * client, since the controller will update this field when a new request
265 * insert/update an own request into the shared memory while not running
272 * @max_clients: size of @clients array, set once at init by the controller.