OPAL_QUERY_CPU_STATUS

#define OPAL_QUERY_CPU_STATUS                        42

enum OpalThreadStatus {
     OPAL_THREAD_INACTIVE = 0x0,
     OPAL_THREAD_STARTED = 0x1,
     OPAL_THREAD_UNAVAILABLE = 0x2 /* opal-v3 */
};

int64_t opal_query_cpu_status(uint64_t server_no, uint8_t *thread_status);

Sets thread_status to be the state of the server_no CPU thread. CPU threads can be owned by OPAL or the OS. Ownership changes based on OPAL_START_CPU and OPAL_RETURN_CPU.

OPAL_THREAD_INACTIVE
Active in skiboot, not in OS. Skiboot owns the CPU thread.
OPAL_THREAD_STARTED
CPU has been started by OS, not owned by OPAL.
OPAL_THREAD_UNAVAILABLE
CPU is unavailable. e.g. is guarded out.

Returns

OPAL_PARAMETER
Invalid address for thread_status, invalid CPU, or CPU not in OPAL or OS.
OPAL_SUCCESS
Successfully retreived status.