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