#ifndef VCHIQ_ARM_H
#define VCHIQ_ARM_H
#include <linux/mutex.h>
#include <linux/platform_device.h>
#include <linux/semaphore.h>
#include <linux/atomic.h>
#include "vchiq_core.h"
#include "vchiq_debugfs.h"
#define MAX_COMPLETIONS …
#define MAX_SERVICES …
#define MAX_ELEMENTS …
#define MSG_QUEUE_SIZE …
#define VCHIQ_DRV_MAX_CALLBACKS …
struct rpi_firmware;
struct vchiq_device;
enum USE_TYPE_E { … };
struct vchiq_platform_info { … };
struct vchiq_drv_mgmt { … };
struct user_service { … };
struct bulk_waiter_node { … };
struct vchiq_instance { … };
int
vchiq_use_service(struct vchiq_instance *instance, unsigned int handle);
extern int
vchiq_release_service(struct vchiq_instance *instance, unsigned int handle);
extern int
vchiq_check_service(struct vchiq_service *service);
extern void
vchiq_dump_service_use_state(struct vchiq_state *state);
extern int
vchiq_use_internal(struct vchiq_state *state, struct vchiq_service *service,
enum USE_TYPE_E use_type);
extern int
vchiq_release_internal(struct vchiq_state *state,
struct vchiq_service *service);
extern struct vchiq_debugfs_node *
vchiq_instance_get_debugfs_node(struct vchiq_instance *instance);
extern int
vchiq_instance_get_use_count(struct vchiq_instance *instance);
extern int
vchiq_instance_get_pid(struct vchiq_instance *instance);
extern int
vchiq_instance_get_trace(struct vchiq_instance *instance);
extern void
vchiq_instance_set_trace(struct vchiq_instance *instance, int trace);
extern void
vchiq_add_connected_callback(struct vchiq_device *device,
void (*callback)(void));
#if IS_ENABLED(CONFIG_VCHIQ_CDEV)
extern void
vchiq_deregister_chrdev(void);
extern int
vchiq_register_chrdev(struct device *parent);
#else
static inline void vchiq_deregister_chrdev(void) { }
static inline int vchiq_register_chrdev(struct device *parent) { return 0; }
#endif
extern int
service_callback(struct vchiq_instance *vchiq_instance, enum vchiq_reason reason,
struct vchiq_header *header, unsigned int handle, void *bulk_userdata);
extern void
free_bulk_waiter(struct vchiq_instance *instance);
#endif