// SPDX-License-Identifier: GPL-2.0+ /* * (C) Copyright 2021 Mark Kettenis */ #define APPLE_RTKIT_PWR_STATE_SLEEP 0x01 #define APPLE_RTKIT_PWR_STATE_QUIESCED 0x10 #define APPLE_RTKIT_PWR_STATE_ON 0x20 struct apple_rtkit_buffer { void *buffer; u64 dva; size_t size; bool is_mapped; }; typedef int (*apple_rtkit_shmem_setup)(void *cookie, struct apple_rtkit_buffer *buf); typedef void (*apple_rtkit_shmem_destroy)(void *cookie, struct apple_rtkit_buffer *buf); struct apple_rtkit; struct apple_rtkit *apple_rtkit_init(struct mbox_chan *chan, void *cookie, apple_rtkit_shmem_setup shmem_setup, apple_rtkit_shmem_destroy shmem_destroy); void apple_rtkit_free(struct apple_rtkit *rtk); int apple_rtkit_boot(struct apple_rtkit *rtk); int apple_rtkit_shutdown(struct apple_rtkit *rtk, int pwrstate);