1*5dd0baa8Skettenis /* Public domain. */ 2*5dd0baa8Skettenis 3*5dd0baa8Skettenis #ifndef _LINUX_SOC_APPLE_RTKIT_H 4*5dd0baa8Skettenis #define _LINUX_SOC_APPLE_RTKIT_H 5*5dd0baa8Skettenis 6*5dd0baa8Skettenis #include <linux/bitfield.h> 7*5dd0baa8Skettenis 8*5dd0baa8Skettenis struct apple_rtkit; 9*5dd0baa8Skettenis 10*5dd0baa8Skettenis struct apple_rtkit_shmem { 11*5dd0baa8Skettenis dma_addr_t iova; 12*5dd0baa8Skettenis void *buffer; 13*5dd0baa8Skettenis size_t size; 14*5dd0baa8Skettenis int is_mapped; 15*5dd0baa8Skettenis }; 16*5dd0baa8Skettenis 17*5dd0baa8Skettenis struct apple_rtkit_ops { 18*5dd0baa8Skettenis void (*crashed)(void *); 19*5dd0baa8Skettenis void (*recv_message)(void *, uint8_t, uint64_t); 20*5dd0baa8Skettenis int (*shmem_setup)(void *, struct apple_rtkit_shmem *); 21*5dd0baa8Skettenis void (*shmem_destroy)(void *, struct apple_rtkit_shmem *); 22*5dd0baa8Skettenis }; 23*5dd0baa8Skettenis 24*5dd0baa8Skettenis struct apple_rtkit *devm_apple_rtkit_init(struct device *, void *, 25*5dd0baa8Skettenis const char *, int, const struct apple_rtkit_ops *); 26*5dd0baa8Skettenis 27*5dd0baa8Skettenis int apple_rtkit_send_message(struct apple_rtkit *, uint8_t, uint64_t, 28*5dd0baa8Skettenis struct completion *, int); 29*5dd0baa8Skettenis int apple_rtkit_start_ep(struct apple_rtkit *, uint8_t); 30*5dd0baa8Skettenis int apple_rtkit_wake(struct apple_rtkit *); 31*5dd0baa8Skettenis 32*5dd0baa8Skettenis #endif 33