/* visorbus_private.h * * Copyright (C) 2010 - 2015 UNISYS CORPORATION * All rights reserved. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or * NON INFRINGEMENT. See the GNU General Public License for more * details. */ #ifndef __VISORBUS_PRIVATE_H__ #define __VISORBUS_PRIVATE_H__ #include #include #include "controlvmchannel.h" #include "vbuschannel.h" /* TARGET_HOSTNAME specified as -DTARGET_HOSTNAME=\"thename\" on the * command line */ static inline void bus_device_info_init( struct ultra_vbus_deviceinfo *bus_device_info_ptr, const char *dev_type, const char *drv_name) { memset(bus_device_info_ptr, 0, sizeof(struct ultra_vbus_deviceinfo)); snprintf(bus_device_info_ptr->devtype, sizeof(bus_device_info_ptr->devtype), "%s", (dev_type) ? dev_type : "unknownType"); snprintf(bus_device_info_ptr->drvname, sizeof(bus_device_info_ptr->drvname), "%s", (drv_name) ? drv_name : "unknownDriver"); snprintf(bus_device_info_ptr->infostrs, sizeof(bus_device_info_ptr->infostrs), "kernel ver. %s", utsname()->release); } void chipset_bus_create(struct visor_device *bus_info); void chipset_bus_destroy(struct visor_device *bus_info); void chipset_device_create(struct visor_device *dev_info); void chipset_device_destroy(struct visor_device *dev_info); void chipset_device_pause(struct visor_device *dev_info); void chipset_device_resume(struct visor_device *dev_info); void bus_create_response(struct visor_device *p, int response); void bus_destroy_response(struct visor_device *p, int response); void device_create_response(struct visor_device *p, int response); void device_destroy_response(struct visor_device *p, int response); void device_resume_response(struct visor_device *p, int response); void device_pause_response(struct visor_device *p, int response); int visorbus_init(void); void visorbus_exit(void); /* visorchannel access functions */ struct visorchannel *visorchannel_create(u64 physaddr, unsigned long channel_bytes, gfp_t gfp, uuid_le guid); struct visorchannel *visorchannel_create_with_lock(u64 physaddr, unsigned long channel_bytes, gfp_t gfp, uuid_le guid); void visorchannel_destroy(struct visorchannel *channel); int visorchannel_read(struct visorchannel *channel, ulong offset, void *dest, ulong nbytes); int visorchannel_write(struct visorchannel *channel, ulong offset, void *dest, ulong nbytes); u64 visorchannel_get_physaddr(struct visorchannel *channel); ulong visorchannel_get_nbytes(struct visorchannel *channel); char *visorchannel_id(struct visorchannel *channel, char *s); char *visorchannel_zoneid(struct visorchannel *channel, char *s); u64 visorchannel_get_clientpartition(struct visorchannel *channel); int visorchannel_set_clientpartition(struct visorchannel *channel, u64 partition_handle); char *visorchannel_uuid_id(uuid_le *guid, char *s); void __iomem *visorchannel_get_header(struct visorchannel *channel); #endif