18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * Copyright (C) 2010 - 2015 UNISYS CORPORATION
48c2ecf20Sopenharmony_ci * All rights reserved.
58c2ecf20Sopenharmony_ci */
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ci#ifndef __VISORBUS_PRIVATE_H__
88c2ecf20Sopenharmony_ci#define __VISORBUS_PRIVATE_H__
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ci#include <linux/uuid.h>
118c2ecf20Sopenharmony_ci#include <linux/utsname.h>
128c2ecf20Sopenharmony_ci#include <linux/visorbus.h>
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_ci#include "controlvmchannel.h"
158c2ecf20Sopenharmony_ci#include "vbuschannel.h"
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_cistruct visor_device *visorbus_get_device_by_id(u32 bus_no, u32 dev_no,
188c2ecf20Sopenharmony_ci					       struct visor_device *from);
198c2ecf20Sopenharmony_ciint visorbus_create_instance(struct visor_device *dev);
208c2ecf20Sopenharmony_civoid visorbus_remove_instance(struct visor_device *bus_info);
218c2ecf20Sopenharmony_ciint create_visor_device(struct visor_device *dev_info);
228c2ecf20Sopenharmony_civoid remove_visor_device(struct visor_device *dev_info);
238c2ecf20Sopenharmony_ciint visorchipset_device_pause(struct visor_device *dev_info);
248c2ecf20Sopenharmony_ciint visorchipset_device_resume(struct visor_device *dev_info);
258c2ecf20Sopenharmony_civoid visorbus_response(struct visor_device *p, int response, int controlvm_id);
268c2ecf20Sopenharmony_civoid visorbus_device_changestate_response(struct visor_device *p, int response,
278c2ecf20Sopenharmony_ci					  struct visor_segment_state state);
288c2ecf20Sopenharmony_ciint visorbus_init(void);
298c2ecf20Sopenharmony_civoid visorbus_exit(void);
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci/* visorchannel access functions */
328c2ecf20Sopenharmony_cistruct visorchannel *visorchannel_create(u64 physaddr, gfp_t gfp,
338c2ecf20Sopenharmony_ci					 const guid_t *guid, bool needs_lock);
348c2ecf20Sopenharmony_civoid visorchannel_destroy(struct visorchannel *channel);
358c2ecf20Sopenharmony_ciint visorchannel_read(struct visorchannel *channel, ulong offset,
368c2ecf20Sopenharmony_ci		      void *dest, ulong nbytes);
378c2ecf20Sopenharmony_ciint visorchannel_write(struct visorchannel *channel, ulong offset,
388c2ecf20Sopenharmony_ci		       void *dest, ulong nbytes);
398c2ecf20Sopenharmony_ciu64 visorchannel_get_physaddr(struct visorchannel *channel);
408c2ecf20Sopenharmony_ciulong visorchannel_get_nbytes(struct visorchannel *channel);
418c2ecf20Sopenharmony_cichar *visorchannel_id(struct visorchannel *channel, char *s);
428c2ecf20Sopenharmony_cichar *visorchannel_zoneid(struct visorchannel *channel, char *s);
438c2ecf20Sopenharmony_ciu64 visorchannel_get_clientpartition(struct visorchannel *channel);
448c2ecf20Sopenharmony_ciint visorchannel_set_clientpartition(struct visorchannel *channel,
458c2ecf20Sopenharmony_ci				     u64 partition_handle);
468c2ecf20Sopenharmony_cichar *visorchannel_guid_id(const guid_t *guid, char *s);
478c2ecf20Sopenharmony_civoid *visorchannel_get_header(struct visorchannel *channel);
488c2ecf20Sopenharmony_ci#endif
49