struct visor_driver;
struct visor_device;
+extern struct bus_type visorbus_type;
typedef void (*visorbus_state_complete_func) (struct visor_device *dev,
int status);
+struct visorchipset_state {
+ u32 created:1;
+ u32 attached:1;
+ u32 configured:1;
+ u32 running:1;
+ /* Add new fields above. */
+ /* Remaining bits in this 32-bit word are unused. */
+};
/** This struct describes a specific Supervisor channel, by providing its
* GUID, name, and sizes.
bool resuming;
unsigned long chipset_bus_no;
unsigned long chipset_dev_no;
+ struct visorchipset_state state;
+ uuid_le type;
+ uuid_le inst;
+ u8 *name;
+ u8 *description;
+ struct controlvm_message_header *pending_msg_hdr;
+ void *vbus_hdr_info;
+ u32 switch_no;
+ u32 internal_port_no;
+ uuid_le partition_uuid;
};
#define to_visor_device(x) container_of(x, struct visor_device, device)
/** This describes the TYPE of bus.
* (Don't confuse this with an INSTANCE of the bus.)
*/
-static struct bus_type visorbus_type = {
+struct bus_type visorbus_type = {
.name = "visorbus",
.match = visorbus_match,
.uevent = visorbus_uevent,
struct visorchannel;
-struct visorchipset_state {
- u32 created:1;
- u32 attached:1;
- u32 configured:1;
- u32 running:1;
- /* Add new fields above. */
- /* Remaining bits in this 32-bit word are unused. */
-};
-
enum visorchipset_addresstype {
/** address is guest physical, but outside of the physical memory
* region that is controlled by the running OS (this is the normal
#include "version.h"
#include "visorbus.h"
#include <linux/uuid.h>
+#include "controlvmchannel.h"
#define MYDRVNAME "visorchannel"
struct signal_queue_header event_queue;
struct signal_queue_header ack_queue;
} safe_uis_queue;
+ struct irq_info intr;
+ uuid_le type;
+ uuid_le inst;
};
/* Creates the struct visorchannel abstraction for a data area in memory,