/* * Copyright (C) 2026 Apple Inc. All rights reserved. * This document is the property of Apple Inc. * It is considered confidential and proprietary. * This document may not be reproduced or transmitted in any form, * in whole or in part, without the express written permission of * Apple Inc. */ /* * Generated from native-scheduler/xrt_hosted_types/messages.json5 in project native-scheduler */ #pragma once #if defined(KERNEL) || defined(XRT_HOSTED_INCLUDE) #include #include #include #include #define XrtHosted_AttrConst \ __attribute__((const)) #define XrtHosted_AttrPacked \ __attribute__((packed)) #define XrtHosted_AttrAligned \ __attribute__((aligned(sizeof(XrtHosted_Word_t)))) #define XrtHosted_AttrUnsafePerformanceGenerated \ __attribute__((swift_attr("@_semantics(\"no_performance_analysis\")"))) #define XrtHosted_AttrStruct \ XrtHosted_AttrPacked \ XrtHosted_AttrAligned typedef uint64_t XrtHosted_Word_t; typedef size_t XrtHosted_Version_t; #define XrtHosted_Version_current ((size_t)15) #define XrtHosted_Version_invalid ((size_t)0) typedef struct { /** Sequence number of ping packet */ XrtHosted_Word_t sequence; /** Arbitrary data word */ XrtHosted_Word_t data; } XrtHosted_AttrStruct XrtHosted_Ping_t; typedef struct { /** Subequent sequence value from ping */ XrtHosted_Word_t sequence; /** Data value from ping */ XrtHosted_Word_t data; } XrtHosted_AttrStruct XrtHosted_Pong_t; typedef struct { /** Scheduling ID of thread to be resumed */ XrtHosted_Word_t thread; } XrtHosted_AttrStruct XrtHosted_Resume_t; typedef struct { /** Error code */ XrtHosted_Word_t code; /** Error data value */ XrtHosted_Word_t value; } XrtHosted_AttrStruct XrtHosted_Failure_t; typedef struct { /** Scheduling ID of running thread */ XrtHosted_Word_t waiter; /** Scheduling ID of thread to which priority should be donated */ XrtHosted_Word_t owner; /** Identifier of the wait queue */ XrtHosted_Word_t queueId; /** Epoch value for queue */ XrtHosted_Word_t epoch; /** Most recent host identifier assigned to `waiter` */ XrtHosted_Word_t waiterHostId; /** Most recent host identifier assigned to `owner` */ XrtHosted_Word_t ownerHostId; /** Whether the wait can be forcefully interrupted */ XrtHosted_Word_t interruptible; } XrtHosted_AttrStruct XrtHosted_Wait_t; typedef struct { /** Scheduling ID of running thread */ XrtHosted_Word_t waker; /** Queue from which threads were woken */ XrtHosted_Word_t queueId; /** Epoch value for queue */ XrtHosted_Word_t epoch; /** Whether to wake all waiters rather than highest priority */ XrtHosted_Word_t all; /** Most recent host identifier assigned to `waker` */ XrtHosted_Word_t wakerHostId; } XrtHosted_AttrStruct XrtHosted_Wake_t; typedef struct { /** Scheduling ID of running thread */ XrtHosted_Word_t thread; /** Scheduling ID of thread to resume next or 0 */ XrtHosted_Word_t yieldTo; /** Most recent host identifier assigned to `thread` */ XrtHosted_Word_t threadHostId; /** Most recent host identifier assigned to `yieldTo` */ XrtHosted_Word_t yieldToHostId; } XrtHosted_AttrStruct XrtHosted_Yield_t; typedef struct { /** Scheduling ID of running thread */ XrtHosted_Word_t thread; /** Scheduling ID of thread to put to sleep */ XrtHosted_Word_t slept; /** Timestamp at which to wake thread */ XrtHosted_Word_t wakeTime; /** Leeway on wakeup */ XrtHosted_Word_t leeway; /** Timebase used for tick resolution and timestamp */ XrtHosted_Word_t timebase; /** Most recent host identifier assigned to `thread` */ XrtHosted_Word_t threadHostId; /** Most recent host identifier assigned to `slept` */ XrtHosted_Word_t sleptHostId; } XrtHosted_AttrStruct XrtHosted_SleepUntil_t; typedef struct { /** Scheduling ID of running thread */ XrtHosted_Word_t thread; /** Scheduling ID of thread to wake */ XrtHosted_Word_t awoken; /** Most recent host identifier assigned to `thread` */ XrtHosted_Word_t threadHostId; /** Most recent host identifier assigned to `awoken` */ XrtHosted_Word_t awokenHostId; } XrtHosted_AttrStruct XrtHosted_Awaken_t; typedef struct { /** Scheduling ID of running thread */ XrtHosted_Word_t thread; /** Scheduling ID of spawned thread */ XrtHosted_Word_t spawned; /** Most recent host identifier assigned to `thread` */ XrtHosted_Word_t threadHostId; } XrtHosted_AttrStruct XrtHosted_Spawned_t; typedef struct { /** Scheduling ID of running thread */ XrtHosted_Word_t thread; /** Scheduling ID of terminated thread */ XrtHosted_Word_t terminated; /** Most recent host identifier assigned to `thread` */ XrtHosted_Word_t threadHostId; /** Most recent host identifier assigned to `terminated` */ XrtHosted_Word_t terminatedHostId; } XrtHosted_AttrStruct XrtHosted_Terminated_t; typedef struct { /** Scheduling ID of thread to be resumed */ XrtHosted_Word_t thread; /** Host identifer to assign to `thread` */ XrtHosted_Word_t hostId; } XrtHosted_AttrStruct XrtHosted_ResumeWithHostId_t; typedef struct { /** Scheduling ID of running thread */ XrtHosted_Word_t waker; /** Scheduling ID of thread to make owner or 0 */ XrtHosted_Word_t owner; /** Queue from which threads were woken */ XrtHosted_Word_t queueId; /** Epoch value for queue */ XrtHosted_Word_t epoch; /** Most recent host identifier assigned to `waker` */ XrtHosted_Word_t wakerHostId; /** Most recent host identifier assigned to `owner` */ XrtHosted_Word_t ownerHostId; } XrtHosted_AttrStruct XrtHosted_WakeWithOwner_t; typedef struct { /** Scheduling ID of running thread */ XrtHosted_Word_t thread; /** Scheduling ID of thread waiting for panic */ XrtHosted_Word_t handler; } XrtHosted_AttrStruct XrtHosted_PanicWait_t; typedef struct { /** Scheduling ID of thread to be resumed */ XrtHosted_Word_t thread; /** Host identifer to assign to `thread` */ XrtHosted_Word_t hostId; } XrtHosted_AttrStruct XrtHosted_InterruptWithHostId_t; typedef struct { /** Scheduling ID of suspended thread */ XrtHosted_Word_t suspended; /** Most recent host identifier assigned to `suspended` */ XrtHosted_Word_t suspendedHostId; /** Epoch value of counter derived from suspended ID */ XrtHosted_Word_t epoch; } XrtHosted_AttrStruct XrtHosted_Suspended_t; typedef struct { /** Scheduling ID of running thread performing resume */ XrtHosted_Word_t thread; /** Scheduling ID of resumed thread */ XrtHosted_Word_t resumed; /** Most recent host identifier assigned to `thread` */ XrtHosted_Word_t threadHostId; /** Most recent host identifier assigned to `resumed` */ XrtHosted_Word_t resumedHostId; /** Epoch value of counter derived from resumed ID (should be assigned) */ XrtHosted_Word_t epoch; } XrtHosted_AttrStruct XrtHosted_Resumed_t; typedef struct { /** Field to ensure we don't use an empty struct */ XrtHosted_Word_t _unused; } XrtHosted_AttrStruct XrtHosted_NothingScheduled_t; typedef struct { /** Timer for which to add offset */ XrtHosted_Word_t timer; /** Offset value use */ XrtHosted_Word_t offset; } XrtHosted_AttrStruct XrtHosted_UpdateTimerOffset_t; typedef struct { /** Timer against which the woken queue is waiting */ XrtHosted_Word_t timer; } XrtHosted_AttrStruct XrtHosted_WakeSleepQueue_t; typedef struct { /** Scheduling ID of running thread performing the interrupt */ XrtHosted_Word_t thread; /** Scheduling ID of interrupted thread */ XrtHosted_Word_t interrupted; /** Queue from which thread was interrupted */ XrtHosted_Word_t queueId; /** Epoch value for queue */ XrtHosted_Word_t epoch; /** Most recent host identifier assigned to `thread` */ XrtHosted_Word_t threadHostId; /** Most recent host identifier assigned to `interrupted` */ XrtHosted_Word_t interruptedHostId; } XrtHosted_AttrStruct XrtHosted_Interrupted_t; typedef struct { /** Placeholder for argument */ XrtHosted_Word_t _unused; } XrtHosted_AttrStruct XrtHosted_BootExclaves_t; typedef struct { /** Placeholder for argument */ XrtHosted_Word_t _unused; } XrtHosted_AttrStruct XrtHosted_AllExclavesBooted_t; typedef struct { /** Argument A */ XrtHosted_Word_t a; /** Argument B */ XrtHosted_Word_t b; } XrtHosted_AttrStruct XrtHosted_PmmEarlyAlloc_t; typedef struct { /** Argument A */ XrtHosted_Word_t a; } XrtHosted_AttrStruct XrtHosted_PmmEarlyAllocResponse_t; typedef struct { /** Physical address of exclaves panic buffer frame */ XrtHosted_Word_t physical; } XrtHosted_AttrStruct XrtHosted_PanicBufferAddress_t; typedef struct { /** Field to ensure we don't use an empty struct */ XrtHosted_Word_t _unused; } XrtHosted_AttrStruct XrtHosted_WatchdogPanic_t; typedef struct { /** Field to ensure we don't use an empty struct */ XrtHosted_Word_t _unused; } XrtHosted_AttrStruct XrtHosted_Panicking_t; typedef struct { /** Field to ensure we don't use an empty struct */ XrtHosted_Word_t _unused; } XrtHosted_AttrStruct XrtHosted_WatchdogPanicComplete_t; typedef struct { /** Scheduling ID of thread to trap */ XrtHosted_Word_t thread; } XrtHosted_AttrStruct XrtHosted_RequestSchedulerTrap_t; typedef struct { /** Scheduling ID of thread to be resumed */ XrtHosted_Word_t thread; /** Host identifer to assign to `thread` */ XrtHosted_Word_t hostId; /** If zero, clear AST request. If one, set AST request for this thread. */ XrtHosted_Word_t ast; } XrtHosted_AttrStruct XrtHosted_ResumeWithHostIdWithAst_t; typedef struct { /** Scheduling ID of running thread */ XrtHosted_Word_t thread; /** Scheduling ID of thread to resume next or 0 */ XrtHosted_Word_t yieldTo; /** Most recent host identifier assigned to `thread` */ XrtHosted_Word_t threadHostId; /** Most recent host identifier assigned to `yieldTo` */ XrtHosted_Word_t yieldToHostId; } XrtHosted_AttrStruct XrtHosted_AstYield_t; typedef enum { /** Invalid element of Message */ XrtHosted_Message_Invalid = 0, /** Simple ping request to scheduler */ XrtHosted_Message_Ping = 1, /** Response to a ping from XNU */ XrtHosted_Message_Pong = 2, /** Resume a thread on the given core */ XrtHosted_Message_Resume = 3, /** Error response to XNU */ XrtHosted_Message_Failure = 4, /** Running thread entered a wait queue */ XrtHosted_Message_Wait = 5, /** Running thread released one or all waiters on a wait queue, woken thread inherits queue */ XrtHosted_Message_Wake = 6, /** General yield of processor time */ XrtHosted_Message_Yield = 7, /** Sleep a given thread until a given time */ XrtHosted_Message_SleepUntil = 8, /** Wake a currently sleeping thread */ XrtHosted_Message_Awaken = 9, /** Introduce a new thread to the scheduler */ XrtHosted_Message_Spawned = 10, /** Terminate a running thread permanently */ XrtHosted_Message_Terminated = 11, /** Resume a thread with new host-assigned identifier */ XrtHosted_Message_ResumeWithHostId = 12, /** Running thread released one waiter on a wait queue, specified thread is new owner */ XrtHosted_Message_WakeWithOwner = 13, /** Thread suspended as panic handler */ XrtHosted_Message_PanicWait = 14, /** Interrupt a waiting thread with new host-assigned identifier */ XrtHosted_Message_InterruptWithHostId = 15, /** Thread trapped after suspend from another thread */ XrtHosted_Message_Suspended = 16, /** Thread resumed a suspended thread */ XrtHosted_Message_Resumed = 17, /** Response where a change in scheduling did not occur */ XrtHosted_Message_NothingScheduled = 18, /** Update the offset of added to a hardware clock for a given timer value */ XrtHosted_Message_UpdateTimerOffset = 19, /** Wake the next thread in a sleep queue */ XrtHosted_Message_WakeSleepQueue = 20, /** A thread was interrupted from a wait */ XrtHosted_Message_Interrupted = 21, /** Boot all exclaves components in the right order */ XrtHosted_Message_BootExclaves = 22, /** Response when all exclaves have been booted */ XrtHosted_Message_AllExclavesBooted = 23, /** Request an early allocation (used by PMM during early boot) */ XrtHosted_Message_PmmEarlyAlloc = 24, /** Response to PmmEarlyAlloc request */ XrtHosted_Message_PmmEarlyAllocResponse = 25, /** Advertise the address of the exclaves panic buffer during boot */ XrtHosted_Message_PanicBufferAddress = 26, /** Stop exclaves, take stackshot, and return to XNU with WatchdogPanicComplete */ XrtHosted_Message_WatchdogPanic = 27, /** Returned when exclaves is panicking by the cores that did not initiate the panic. Re-entering exclaves on any core that has returned this will cause the scheduler to block until panic is completed and then crash. */ XrtHosted_Message_Panicking = 28, /** Returned when a stackshot initiated by `WatchdogPanic` is finished (only on the core that initiated the panic). Re-entering exclaves on a core that has returned this will cause a normal SK panic. */ XrtHosted_Message_WatchdogPanicComplete = 29, /** Request that indicates the given SCID should yield when it next transitions from ExclaveCore to ExclaveKit. */ XrtHosted_Message_RequestSchedulerTrap = 30, /** Resume a thread with new host-assigned identifier */ XrtHosted_Message_ResumeWithHostIdWithAst = 31, /** Returned when a thread yields due to a previously-set AST */ XrtHosted_Message_AstYield = 32, /** Number of elements in Message */ XrtHosted_Message_Limit = 33, } XrtHosted_Message_Tag_t; typedef XrtHosted_Version_t XrtHosted_Message_introduced_f( XrtHosted_Message_Tag_t tag ); #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern XrtHosted_Version_t XrtHosted_Message_introduced( XrtHosted_Message_Tag_t tag ); #endif /* defined(XRT_HOSTED_EXTERN) */ typedef enum { /** Invalid element of Request */ XrtHosted_Request_Invalid = 0, XrtHosted_Request_Ping = 1, XrtHosted_Request_Resume = 2, XrtHosted_Request_ResumeWithHostId = 3, XrtHosted_Request_InterruptWithHostId = 4, XrtHosted_Request_UpdateTimerOffset = 5, XrtHosted_Request_WakeSleepQueue = 6, XrtHosted_Request_BootExclaves = 7, XrtHosted_Request_PmmEarlyAllocResponse = 8, XrtHosted_Request_WatchdogPanic = 9, XrtHosted_Request_RequestSchedulerTrap = 10, XrtHosted_Request_ResumeWithHostIdWithAst = 11, /** Number of elements in Request */ XrtHosted_Request_Limit = 12, } XrtHosted_Request_Tag_t; typedef XrtHosted_Message_Tag_t XrtHosted_Request_toMessageTag_f( XrtHosted_Request_Tag_t tag ); #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern XrtHosted_Message_Tag_t XrtHosted_Request_toMessageTag( XrtHosted_Request_Tag_t tag ); #endif /* defined(XRT_HOSTED_EXTERN) */ typedef struct { XrtHosted_Request_Tag_t tag; union { /** Ping */ XrtHosted_Ping_t Ping; /** Resume */ XrtHosted_Resume_t Resume; /** ResumeWithHostId */ XrtHosted_ResumeWithHostId_t ResumeWithHostId; /** InterruptWithHostId */ XrtHosted_InterruptWithHostId_t InterruptWithHostId; /** UpdateTimerOffset */ XrtHosted_UpdateTimerOffset_t UpdateTimerOffset; /** WakeSleepQueue */ XrtHosted_WakeSleepQueue_t WakeSleepQueue; /** BootExclaves */ XrtHosted_BootExclaves_t BootExclaves; /** PmmEarlyAllocResponse */ XrtHosted_PmmEarlyAllocResponse_t PmmEarlyAllocResponse; /** WatchdogPanic */ XrtHosted_WatchdogPanic_t WatchdogPanic; /** RequestSchedulerTrap */ XrtHosted_RequestSchedulerTrap_t RequestSchedulerTrap; /** ResumeWithHostIdWithAst */ XrtHosted_ResumeWithHostIdWithAst_t ResumeWithHostIdWithAst; }; } XrtHosted_Request_t; /** * @brief Ping * * Usage example: * * @code{c} * XrtHosted_Request_t message = XrtHosted_Request_PingMsg( * .sequence = sequenceValue, * .data = dataValue, * ); * @endcode */ #define XrtHosted_Request_PingMsg(...) \ (XrtHosted_Request_t) { \ .tag = XrtHosted_Request_Ping, \ .Ping = { __VA_ARGS__ }, \ } \ /** * @brief Resume * * Usage example: * * @code{c} * XrtHosted_Request_t message = XrtHosted_Request_ResumeMsg( * .thread = threadValue, * ); * @endcode */ #define XrtHosted_Request_ResumeMsg(...) \ (XrtHosted_Request_t) { \ .tag = XrtHosted_Request_Resume, \ .Resume = { __VA_ARGS__ }, \ } \ /** * @brief ResumeWithHostId * * Usage example: * * @code{c} * XrtHosted_Request_t message = XrtHosted_Request_ResumeWithHostIdMsg( * .thread = threadValue, * .hostId = hostIdValue, * ); * @endcode */ #define XrtHosted_Request_ResumeWithHostIdMsg(...) \ (XrtHosted_Request_t) { \ .tag = XrtHosted_Request_ResumeWithHostId, \ .ResumeWithHostId = { __VA_ARGS__ }, \ } \ /** * @brief InterruptWithHostId * * Usage example: * * @code{c} * XrtHosted_Request_t message = XrtHosted_Request_InterruptWithHostIdMsg( * .thread = threadValue, * .hostId = hostIdValue, * ); * @endcode */ #define XrtHosted_Request_InterruptWithHostIdMsg(...) \ (XrtHosted_Request_t) { \ .tag = XrtHosted_Request_InterruptWithHostId, \ .InterruptWithHostId = { __VA_ARGS__ }, \ } \ /** * @brief UpdateTimerOffset * * Usage example: * * @code{c} * XrtHosted_Request_t message = XrtHosted_Request_UpdateTimerOffsetMsg( * .timer = timerValue, * .offset = offsetValue, * ); * @endcode */ #define XrtHosted_Request_UpdateTimerOffsetMsg(...) \ (XrtHosted_Request_t) { \ .tag = XrtHosted_Request_UpdateTimerOffset, \ .UpdateTimerOffset = { __VA_ARGS__ }, \ } \ /** * @brief WakeSleepQueue * * Usage example: * * @code{c} * XrtHosted_Request_t message = XrtHosted_Request_WakeSleepQueueMsg( * .timer = timerValue, * ); * @endcode */ #define XrtHosted_Request_WakeSleepQueueMsg(...) \ (XrtHosted_Request_t) { \ .tag = XrtHosted_Request_WakeSleepQueue, \ .WakeSleepQueue = { __VA_ARGS__ }, \ } \ /** * @brief BootExclaves * * Usage example: * * @code{c} * XrtHosted_Request_t message = XrtHosted_Request_BootExclavesMsg( * ._unused = _unusedValue, * ); * @endcode */ #define XrtHosted_Request_BootExclavesMsg(...) \ (XrtHosted_Request_t) { \ .tag = XrtHosted_Request_BootExclaves, \ .BootExclaves = { __VA_ARGS__ }, \ } \ /** * @brief PmmEarlyAllocResponse * * Usage example: * * @code{c} * XrtHosted_Request_t message = XrtHosted_Request_PmmEarlyAllocResponseMsg( * .a = aValue, * ); * @endcode */ #define XrtHosted_Request_PmmEarlyAllocResponseMsg(...) \ (XrtHosted_Request_t) { \ .tag = XrtHosted_Request_PmmEarlyAllocResponse, \ .PmmEarlyAllocResponse = { __VA_ARGS__ }, \ } \ /** * @brief WatchdogPanic * * Usage example: * * @code{c} * XrtHosted_Request_t message = XrtHosted_Request_WatchdogPanicMsg( * ._unused = _unusedValue, * ); * @endcode */ #define XrtHosted_Request_WatchdogPanicMsg(...) \ (XrtHosted_Request_t) { \ .tag = XrtHosted_Request_WatchdogPanic, \ .WatchdogPanic = { __VA_ARGS__ }, \ } \ /** * @brief RequestSchedulerTrap * * Usage example: * * @code{c} * XrtHosted_Request_t message = XrtHosted_Request_RequestSchedulerTrapMsg( * .thread = threadValue, * ); * @endcode */ #define XrtHosted_Request_RequestSchedulerTrapMsg(...) \ (XrtHosted_Request_t) { \ .tag = XrtHosted_Request_RequestSchedulerTrap, \ .RequestSchedulerTrap = { __VA_ARGS__ }, \ } \ /** * @brief ResumeWithHostIdWithAst * * Usage example: * * @code{c} * XrtHosted_Request_t message = XrtHosted_Request_ResumeWithHostIdWithAstMsg( * .thread = threadValue, * .hostId = hostIdValue, * .ast = astValue, * ); * @endcode */ #define XrtHosted_Request_ResumeWithHostIdWithAstMsg(...) \ (XrtHosted_Request_t) { \ .tag = XrtHosted_Request_ResumeWithHostIdWithAst, \ .ResumeWithHostIdWithAst = { __VA_ARGS__ }, \ } \ typedef enum { /** Invalid element of Response */ XrtHosted_Response_Invalid = 0, XrtHosted_Response_Failure = 1, XrtHosted_Response_Pong = 2, XrtHosted_Response_Wait = 3, XrtHosted_Response_Wake = 4, XrtHosted_Response_Yield = 5, XrtHosted_Response_SleepUntil = 6, XrtHosted_Response_Awaken = 7, XrtHosted_Response_Spawned = 8, XrtHosted_Response_Terminated = 9, XrtHosted_Response_WakeWithOwner = 10, XrtHosted_Response_PanicWait = 11, XrtHosted_Response_Suspended = 12, XrtHosted_Response_Resumed = 13, XrtHosted_Response_NothingScheduled = 14, XrtHosted_Response_Interrupted = 15, XrtHosted_Response_AllExclavesBooted = 16, XrtHosted_Response_PmmEarlyAlloc = 17, XrtHosted_Response_PanicBufferAddress = 18, XrtHosted_Response_WatchdogPanicComplete = 19, XrtHosted_Response_Panicking = 20, XrtHosted_Response_AstYield = 21, /** Number of elements in Response */ XrtHosted_Response_Limit = 22, } XrtHosted_Response_Tag_t; typedef XrtHosted_Message_Tag_t XrtHosted_Response_toMessageTag_f( XrtHosted_Response_Tag_t tag ); #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern XrtHosted_Message_Tag_t XrtHosted_Response_toMessageTag( XrtHosted_Response_Tag_t tag ); #endif /* defined(XRT_HOSTED_EXTERN) */ typedef struct { XrtHosted_Response_Tag_t tag; union { /** Failure */ XrtHosted_Failure_t Failure; /** Pong */ XrtHosted_Pong_t Pong; /** Wait */ XrtHosted_Wait_t Wait; /** Wake */ XrtHosted_Wake_t Wake; /** Yield */ XrtHosted_Yield_t Yield; /** SleepUntil */ XrtHosted_SleepUntil_t SleepUntil; /** Awaken */ XrtHosted_Awaken_t Awaken; /** Spawned */ XrtHosted_Spawned_t Spawned; /** Terminated */ XrtHosted_Terminated_t Terminated; /** WakeWithOwner */ XrtHosted_WakeWithOwner_t WakeWithOwner; /** PanicWait */ XrtHosted_PanicWait_t PanicWait; /** Suspended */ XrtHosted_Suspended_t Suspended; /** Resumed */ XrtHosted_Resumed_t Resumed; /** NothingScheduled */ XrtHosted_NothingScheduled_t NothingScheduled; /** Interrupted */ XrtHosted_Interrupted_t Interrupted; /** AllExclavesBooted */ XrtHosted_AllExclavesBooted_t AllExclavesBooted; /** PmmEarlyAlloc */ XrtHosted_PmmEarlyAlloc_t PmmEarlyAlloc; /** PanicBufferAddress */ XrtHosted_PanicBufferAddress_t PanicBufferAddress; /** WatchdogPanicComplete */ XrtHosted_WatchdogPanicComplete_t WatchdogPanicComplete; /** Panicking */ XrtHosted_Panicking_t Panicking; /** AstYield */ XrtHosted_AstYield_t AstYield; }; } XrtHosted_Response_t; /** * @brief Failure * * Usage example: * * @code{c} * XrtHosted_Response_t message = XrtHosted_Response_FailureMsg( * .code = codeValue, * .value = valueValue, * ); * @endcode */ #define XrtHosted_Response_FailureMsg(...) \ (XrtHosted_Response_t) { \ .tag = XrtHosted_Response_Failure, \ .Failure = { __VA_ARGS__ }, \ } \ /** * @brief Pong * * Usage example: * * @code{c} * XrtHosted_Response_t message = XrtHosted_Response_PongMsg( * .sequence = sequenceValue, * .data = dataValue, * ); * @endcode */ #define XrtHosted_Response_PongMsg(...) \ (XrtHosted_Response_t) { \ .tag = XrtHosted_Response_Pong, \ .Pong = { __VA_ARGS__ }, \ } \ /** * @brief Wait * * Usage example: * * @code{c} * XrtHosted_Response_t message = XrtHosted_Response_WaitMsg( * .waiter = waiterValue, * .owner = ownerValue, * .queueId = queueIdValue, * .epoch = epochValue, * .waiterHostId = waiterHostIdValue, * .ownerHostId = ownerHostIdValue, * .interruptible = interruptibleValue, * ); * @endcode */ #define XrtHosted_Response_WaitMsg(...) \ (XrtHosted_Response_t) { \ .tag = XrtHosted_Response_Wait, \ .Wait = { __VA_ARGS__ }, \ } \ /** * @brief Wake * * Usage example: * * @code{c} * XrtHosted_Response_t message = XrtHosted_Response_WakeMsg( * .waker = wakerValue, * .queueId = queueIdValue, * .epoch = epochValue, * .all = allValue, * .wakerHostId = wakerHostIdValue, * ); * @endcode */ #define XrtHosted_Response_WakeMsg(...) \ (XrtHosted_Response_t) { \ .tag = XrtHosted_Response_Wake, \ .Wake = { __VA_ARGS__ }, \ } \ /** * @brief Yield * * Usage example: * * @code{c} * XrtHosted_Response_t message = XrtHosted_Response_YieldMsg( * .thread = threadValue, * .yieldTo = yieldToValue, * .threadHostId = threadHostIdValue, * .yieldToHostId = yieldToHostIdValue, * ); * @endcode */ #define XrtHosted_Response_YieldMsg(...) \ (XrtHosted_Response_t) { \ .tag = XrtHosted_Response_Yield, \ .Yield = { __VA_ARGS__ }, \ } \ /** * @brief SleepUntil * * Usage example: * * @code{c} * XrtHosted_Response_t message = XrtHosted_Response_SleepUntilMsg( * .thread = threadValue, * .slept = sleptValue, * .wakeTime = wakeTimeValue, * .leeway = leewayValue, * .timebase = timebaseValue, * .threadHostId = threadHostIdValue, * .sleptHostId = sleptHostIdValue, * ); * @endcode */ #define XrtHosted_Response_SleepUntilMsg(...) \ (XrtHosted_Response_t) { \ .tag = XrtHosted_Response_SleepUntil, \ .SleepUntil = { __VA_ARGS__ }, \ } \ /** * @brief Awaken * * Usage example: * * @code{c} * XrtHosted_Response_t message = XrtHosted_Response_AwakenMsg( * .thread = threadValue, * .awoken = awokenValue, * .threadHostId = threadHostIdValue, * .awokenHostId = awokenHostIdValue, * ); * @endcode */ #define XrtHosted_Response_AwakenMsg(...) \ (XrtHosted_Response_t) { \ .tag = XrtHosted_Response_Awaken, \ .Awaken = { __VA_ARGS__ }, \ } \ /** * @brief Spawned * * Usage example: * * @code{c} * XrtHosted_Response_t message = XrtHosted_Response_SpawnedMsg( * .thread = threadValue, * .spawned = spawnedValue, * .threadHostId = threadHostIdValue, * ); * @endcode */ #define XrtHosted_Response_SpawnedMsg(...) \ (XrtHosted_Response_t) { \ .tag = XrtHosted_Response_Spawned, \ .Spawned = { __VA_ARGS__ }, \ } \ /** * @brief Terminated * * Usage example: * * @code{c} * XrtHosted_Response_t message = XrtHosted_Response_TerminatedMsg( * .thread = threadValue, * .terminated = terminatedValue, * .threadHostId = threadHostIdValue, * .terminatedHostId = terminatedHostIdValue, * ); * @endcode */ #define XrtHosted_Response_TerminatedMsg(...) \ (XrtHosted_Response_t) { \ .tag = XrtHosted_Response_Terminated, \ .Terminated = { __VA_ARGS__ }, \ } \ /** * @brief WakeWithOwner * * Usage example: * * @code{c} * XrtHosted_Response_t message = XrtHosted_Response_WakeWithOwnerMsg( * .waker = wakerValue, * .owner = ownerValue, * .queueId = queueIdValue, * .epoch = epochValue, * .wakerHostId = wakerHostIdValue, * .ownerHostId = ownerHostIdValue, * ); * @endcode */ #define XrtHosted_Response_WakeWithOwnerMsg(...) \ (XrtHosted_Response_t) { \ .tag = XrtHosted_Response_WakeWithOwner, \ .WakeWithOwner = { __VA_ARGS__ }, \ } \ /** * @brief PanicWait * * Usage example: * * @code{c} * XrtHosted_Response_t message = XrtHosted_Response_PanicWaitMsg( * .thread = threadValue, * .handler = handlerValue, * ); * @endcode */ #define XrtHosted_Response_PanicWaitMsg(...) \ (XrtHosted_Response_t) { \ .tag = XrtHosted_Response_PanicWait, \ .PanicWait = { __VA_ARGS__ }, \ } \ /** * @brief Suspended * * Usage example: * * @code{c} * XrtHosted_Response_t message = XrtHosted_Response_SuspendedMsg( * .suspended = suspendedValue, * .suspendedHostId = suspendedHostIdValue, * .epoch = epochValue, * ); * @endcode */ #define XrtHosted_Response_SuspendedMsg(...) \ (XrtHosted_Response_t) { \ .tag = XrtHosted_Response_Suspended, \ .Suspended = { __VA_ARGS__ }, \ } \ /** * @brief Resumed * * Usage example: * * @code{c} * XrtHosted_Response_t message = XrtHosted_Response_ResumedMsg( * .thread = threadValue, * .resumed = resumedValue, * .threadHostId = threadHostIdValue, * .resumedHostId = resumedHostIdValue, * .epoch = epochValue, * ); * @endcode */ #define XrtHosted_Response_ResumedMsg(...) \ (XrtHosted_Response_t) { \ .tag = XrtHosted_Response_Resumed, \ .Resumed = { __VA_ARGS__ }, \ } \ /** * @brief NothingScheduled * * Usage example: * * @code{c} * XrtHosted_Response_t message = XrtHosted_Response_NothingScheduledMsg( * ._unused = _unusedValue, * ); * @endcode */ #define XrtHosted_Response_NothingScheduledMsg(...) \ (XrtHosted_Response_t) { \ .tag = XrtHosted_Response_NothingScheduled, \ .NothingScheduled = { __VA_ARGS__ }, \ } \ /** * @brief Interrupted * * Usage example: * * @code{c} * XrtHosted_Response_t message = XrtHosted_Response_InterruptedMsg( * .thread = threadValue, * .interrupted = interruptedValue, * .queueId = queueIdValue, * .epoch = epochValue, * .threadHostId = threadHostIdValue, * .interruptedHostId = interruptedHostIdValue, * ); * @endcode */ #define XrtHosted_Response_InterruptedMsg(...) \ (XrtHosted_Response_t) { \ .tag = XrtHosted_Response_Interrupted, \ .Interrupted = { __VA_ARGS__ }, \ } \ /** * @brief AllExclavesBooted * * Usage example: * * @code{c} * XrtHosted_Response_t message = XrtHosted_Response_AllExclavesBootedMsg( * ._unused = _unusedValue, * ); * @endcode */ #define XrtHosted_Response_AllExclavesBootedMsg(...) \ (XrtHosted_Response_t) { \ .tag = XrtHosted_Response_AllExclavesBooted, \ .AllExclavesBooted = { __VA_ARGS__ }, \ } \ /** * @brief PmmEarlyAlloc * * Usage example: * * @code{c} * XrtHosted_Response_t message = XrtHosted_Response_PmmEarlyAllocMsg( * .a = aValue, * .b = bValue, * ); * @endcode */ #define XrtHosted_Response_PmmEarlyAllocMsg(...) \ (XrtHosted_Response_t) { \ .tag = XrtHosted_Response_PmmEarlyAlloc, \ .PmmEarlyAlloc = { __VA_ARGS__ }, \ } \ /** * @brief PanicBufferAddress * * Usage example: * * @code{c} * XrtHosted_Response_t message = XrtHosted_Response_PanicBufferAddressMsg( * .physical = physicalValue, * ); * @endcode */ #define XrtHosted_Response_PanicBufferAddressMsg(...) \ (XrtHosted_Response_t) { \ .tag = XrtHosted_Response_PanicBufferAddress, \ .PanicBufferAddress = { __VA_ARGS__ }, \ } \ /** * @brief WatchdogPanicComplete * * Usage example: * * @code{c} * XrtHosted_Response_t message = XrtHosted_Response_WatchdogPanicCompleteMsg( * ._unused = _unusedValue, * ); * @endcode */ #define XrtHosted_Response_WatchdogPanicCompleteMsg(...) \ (XrtHosted_Response_t) { \ .tag = XrtHosted_Response_WatchdogPanicComplete, \ .WatchdogPanicComplete = { __VA_ARGS__ }, \ } \ /** * @brief Panicking * * Usage example: * * @code{c} * XrtHosted_Response_t message = XrtHosted_Response_PanickingMsg( * ._unused = _unusedValue, * ); * @endcode */ #define XrtHosted_Response_PanickingMsg(...) \ (XrtHosted_Response_t) { \ .tag = XrtHosted_Response_Panicking, \ .Panicking = { __VA_ARGS__ }, \ } \ /** * @brief AstYield * * Usage example: * * @code{c} * XrtHosted_Response_t message = XrtHosted_Response_AstYieldMsg( * .thread = threadValue, * .yieldTo = yieldToValue, * .threadHostId = threadHostIdValue, * .yieldToHostId = yieldToHostIdValue, * ); * @endcode */ #define XrtHosted_Response_AstYieldMsg(...) \ (XrtHosted_Response_t) { \ .tag = XrtHosted_Response_AstYield, \ .AstYield = { __VA_ARGS__ }, \ } \ #define XrtHosted_Buffer_args ((size_t)7) typedef struct { /** Message identifier tag */ XrtHosted_Word_t tag; /** Message arguments */ XrtHosted_Word_t arguments[XrtHosted_Buffer_args]; } XrtHosted_AttrStruct XrtHosted_Buffer_t; #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern void XrtHosted_Ping_encode( XrtHosted_Buffer_t *buffer, const XrtHosted_Ping_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern bool XrtHosted_Ping_decode( const XrtHosted_Buffer_t *buffer, XrtHosted_Ping_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern void XrtHosted_Pong_encode( XrtHosted_Buffer_t *buffer, const XrtHosted_Pong_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern bool XrtHosted_Pong_decode( const XrtHosted_Buffer_t *buffer, XrtHosted_Pong_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern void XrtHosted_Resume_encode( XrtHosted_Buffer_t *buffer, const XrtHosted_Resume_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern bool XrtHosted_Resume_decode( const XrtHosted_Buffer_t *buffer, XrtHosted_Resume_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern void XrtHosted_Failure_encode( XrtHosted_Buffer_t *buffer, const XrtHosted_Failure_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern bool XrtHosted_Failure_decode( const XrtHosted_Buffer_t *buffer, XrtHosted_Failure_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern void XrtHosted_Wait_encode( XrtHosted_Buffer_t *buffer, const XrtHosted_Wait_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern bool XrtHosted_Wait_decode( const XrtHosted_Buffer_t *buffer, XrtHosted_Wait_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern void XrtHosted_Wake_encode( XrtHosted_Buffer_t *buffer, const XrtHosted_Wake_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern bool XrtHosted_Wake_decode( const XrtHosted_Buffer_t *buffer, XrtHosted_Wake_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern void XrtHosted_Yield_encode( XrtHosted_Buffer_t *buffer, const XrtHosted_Yield_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern bool XrtHosted_Yield_decode( const XrtHosted_Buffer_t *buffer, XrtHosted_Yield_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern void XrtHosted_SleepUntil_encode( XrtHosted_Buffer_t *buffer, const XrtHosted_SleepUntil_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern bool XrtHosted_SleepUntil_decode( const XrtHosted_Buffer_t *buffer, XrtHosted_SleepUntil_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern void XrtHosted_Awaken_encode( XrtHosted_Buffer_t *buffer, const XrtHosted_Awaken_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern bool XrtHosted_Awaken_decode( const XrtHosted_Buffer_t *buffer, XrtHosted_Awaken_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern void XrtHosted_Spawned_encode( XrtHosted_Buffer_t *buffer, const XrtHosted_Spawned_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern bool XrtHosted_Spawned_decode( const XrtHosted_Buffer_t *buffer, XrtHosted_Spawned_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern void XrtHosted_Terminated_encode( XrtHosted_Buffer_t *buffer, const XrtHosted_Terminated_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern bool XrtHosted_Terminated_decode( const XrtHosted_Buffer_t *buffer, XrtHosted_Terminated_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern void XrtHosted_ResumeWithHostId_encode( XrtHosted_Buffer_t *buffer, const XrtHosted_ResumeWithHostId_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern bool XrtHosted_ResumeWithHostId_decode( const XrtHosted_Buffer_t *buffer, XrtHosted_ResumeWithHostId_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern void XrtHosted_WakeWithOwner_encode( XrtHosted_Buffer_t *buffer, const XrtHosted_WakeWithOwner_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern bool XrtHosted_WakeWithOwner_decode( const XrtHosted_Buffer_t *buffer, XrtHosted_WakeWithOwner_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern void XrtHosted_PanicWait_encode( XrtHosted_Buffer_t *buffer, const XrtHosted_PanicWait_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern bool XrtHosted_PanicWait_decode( const XrtHosted_Buffer_t *buffer, XrtHosted_PanicWait_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern void XrtHosted_InterruptWithHostId_encode( XrtHosted_Buffer_t *buffer, const XrtHosted_InterruptWithHostId_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern bool XrtHosted_InterruptWithHostId_decode( const XrtHosted_Buffer_t *buffer, XrtHosted_InterruptWithHostId_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern void XrtHosted_Suspended_encode( XrtHosted_Buffer_t *buffer, const XrtHosted_Suspended_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern bool XrtHosted_Suspended_decode( const XrtHosted_Buffer_t *buffer, XrtHosted_Suspended_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern void XrtHosted_Resumed_encode( XrtHosted_Buffer_t *buffer, const XrtHosted_Resumed_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern bool XrtHosted_Resumed_decode( const XrtHosted_Buffer_t *buffer, XrtHosted_Resumed_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern void XrtHosted_NothingScheduled_encode( XrtHosted_Buffer_t *buffer, const XrtHosted_NothingScheduled_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern bool XrtHosted_NothingScheduled_decode( const XrtHosted_Buffer_t *buffer, XrtHosted_NothingScheduled_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern void XrtHosted_UpdateTimerOffset_encode( XrtHosted_Buffer_t *buffer, const XrtHosted_UpdateTimerOffset_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern bool XrtHosted_UpdateTimerOffset_decode( const XrtHosted_Buffer_t *buffer, XrtHosted_UpdateTimerOffset_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern void XrtHosted_WakeSleepQueue_encode( XrtHosted_Buffer_t *buffer, const XrtHosted_WakeSleepQueue_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern bool XrtHosted_WakeSleepQueue_decode( const XrtHosted_Buffer_t *buffer, XrtHosted_WakeSleepQueue_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern void XrtHosted_Interrupted_encode( XrtHosted_Buffer_t *buffer, const XrtHosted_Interrupted_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern bool XrtHosted_Interrupted_decode( const XrtHosted_Buffer_t *buffer, XrtHosted_Interrupted_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern void XrtHosted_BootExclaves_encode( XrtHosted_Buffer_t *buffer, const XrtHosted_BootExclaves_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern bool XrtHosted_BootExclaves_decode( const XrtHosted_Buffer_t *buffer, XrtHosted_BootExclaves_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern void XrtHosted_AllExclavesBooted_encode( XrtHosted_Buffer_t *buffer, const XrtHosted_AllExclavesBooted_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern bool XrtHosted_AllExclavesBooted_decode( const XrtHosted_Buffer_t *buffer, XrtHosted_AllExclavesBooted_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern void XrtHosted_PmmEarlyAlloc_encode( XrtHosted_Buffer_t *buffer, const XrtHosted_PmmEarlyAlloc_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern bool XrtHosted_PmmEarlyAlloc_decode( const XrtHosted_Buffer_t *buffer, XrtHosted_PmmEarlyAlloc_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern void XrtHosted_PmmEarlyAllocResponse_encode( XrtHosted_Buffer_t *buffer, const XrtHosted_PmmEarlyAllocResponse_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern bool XrtHosted_PmmEarlyAllocResponse_decode( const XrtHosted_Buffer_t *buffer, XrtHosted_PmmEarlyAllocResponse_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern void XrtHosted_PanicBufferAddress_encode( XrtHosted_Buffer_t *buffer, const XrtHosted_PanicBufferAddress_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern bool XrtHosted_PanicBufferAddress_decode( const XrtHosted_Buffer_t *buffer, XrtHosted_PanicBufferAddress_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern void XrtHosted_WatchdogPanic_encode( XrtHosted_Buffer_t *buffer, const XrtHosted_WatchdogPanic_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern bool XrtHosted_WatchdogPanic_decode( const XrtHosted_Buffer_t *buffer, XrtHosted_WatchdogPanic_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern void XrtHosted_Panicking_encode( XrtHosted_Buffer_t *buffer, const XrtHosted_Panicking_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern bool XrtHosted_Panicking_decode( const XrtHosted_Buffer_t *buffer, XrtHosted_Panicking_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern void XrtHosted_WatchdogPanicComplete_encode( XrtHosted_Buffer_t *buffer, const XrtHosted_WatchdogPanicComplete_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern bool XrtHosted_WatchdogPanicComplete_decode( const XrtHosted_Buffer_t *buffer, XrtHosted_WatchdogPanicComplete_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern void XrtHosted_RequestSchedulerTrap_encode( XrtHosted_Buffer_t *buffer, const XrtHosted_RequestSchedulerTrap_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern bool XrtHosted_RequestSchedulerTrap_decode( const XrtHosted_Buffer_t *buffer, XrtHosted_RequestSchedulerTrap_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern void XrtHosted_ResumeWithHostIdWithAst_encode( XrtHosted_Buffer_t *buffer, const XrtHosted_ResumeWithHostIdWithAst_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern bool XrtHosted_ResumeWithHostIdWithAst_decode( const XrtHosted_Buffer_t *buffer, XrtHosted_ResumeWithHostIdWithAst_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern void XrtHosted_AstYield_encode( XrtHosted_Buffer_t *buffer, const XrtHosted_AstYield_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern bool XrtHosted_AstYield_decode( const XrtHosted_Buffer_t *buffer, XrtHosted_AstYield_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ typedef void XrtHosted_Request_encode_f( XrtHosted_Buffer_t *buffer, const XrtHosted_Request_t *message ); #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern void XrtHosted_Request_encode( XrtHosted_Buffer_t *buffer, const XrtHosted_Request_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ typedef bool XrtHosted_Request_decode_f( XrtHosted_Buffer_t *buffer, XrtHosted_Request_t *message ); #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern bool XrtHosted_Request_decode( XrtHosted_Buffer_t *buffer, XrtHosted_Request_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ typedef void XrtHosted_Response_encode_f( XrtHosted_Buffer_t *buffer, const XrtHosted_Response_t *message ); #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern void XrtHosted_Response_encode( XrtHosted_Buffer_t *buffer, const XrtHosted_Response_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ typedef bool XrtHosted_Response_decode_f( XrtHosted_Buffer_t *buffer, XrtHosted_Response_t *message ); #if defined(XRT_HOSTED_EXTERN) XrtHosted_AttrUnsafePerformanceGenerated extern bool XrtHosted_Response_decode( XrtHosted_Buffer_t *buffer, XrtHosted_Response_t *message ); #endif /* defined(XRT_HOSTED_EXTERN) */ #endif /* defined(KERNEL) || defined(XRT_HOSTED_INCLUDE) */