Headers in include/sysemu/ are not only related to system *emulation*, they are also used by virtualization. Rename as system/ which is clearer. Files renamed manually then mechanical change using sed tool. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Tested-by: Lei Yang <leiyang@redhat.com> Message-Id: <20241203172445.28576-1-philmd@linaro.org>
		
			
				
	
	
		
			90 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			90 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * Copyright (c) 2018  Citrix Systems Inc.
 | 
						|
 *
 | 
						|
 * This work is licensed under the terms of the GNU GPL, version 2 or later.
 | 
						|
 * See the COPYING file in the top-level directory.
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef HW_XEN_BLOCK_H
 | 
						|
#define HW_XEN_BLOCK_H
 | 
						|
 | 
						|
#include "hw/xen/xen-bus.h"
 | 
						|
#include "hw/block/block.h"
 | 
						|
#include "hw/block/dataplane/xen-block.h"
 | 
						|
#include "system/iothread.h"
 | 
						|
#include "qom/object.h"
 | 
						|
 | 
						|
typedef enum XenBlockVdevType {
 | 
						|
    XEN_BLOCK_VDEV_TYPE_INVALID,
 | 
						|
    XEN_BLOCK_VDEV_TYPE_DP,
 | 
						|
    XEN_BLOCK_VDEV_TYPE_XVD,
 | 
						|
    XEN_BLOCK_VDEV_TYPE_HD,
 | 
						|
    XEN_BLOCK_VDEV_TYPE_SD,
 | 
						|
    XEN_BLOCK_VDEV_TYPE__MAX
 | 
						|
} XenBlockVdevType;
 | 
						|
 | 
						|
typedef struct XenBlockVdev {
 | 
						|
    XenBlockVdevType type;
 | 
						|
    unsigned long disk;
 | 
						|
    unsigned long partition;
 | 
						|
    unsigned long number;
 | 
						|
} XenBlockVdev;
 | 
						|
 | 
						|
 | 
						|
typedef struct XenBlockProperties {
 | 
						|
    XenBlockVdev vdev;
 | 
						|
    BlockConf conf;
 | 
						|
    unsigned int max_ring_page_order;
 | 
						|
    IOThread *iothread;
 | 
						|
} XenBlockProperties;
 | 
						|
 | 
						|
typedef struct XenBlockDrive {
 | 
						|
    char *id;
 | 
						|
    char *node_name;
 | 
						|
} XenBlockDrive;
 | 
						|
 | 
						|
typedef struct XenBlockIOThread {
 | 
						|
    char *id;
 | 
						|
} XenBlockIOThread;
 | 
						|
 | 
						|
struct XenBlockDevice {
 | 
						|
    XenDevice xendev;
 | 
						|
    XenBlockProperties props;
 | 
						|
    const char *device_type;
 | 
						|
    unsigned int info;
 | 
						|
    XenBlockDataPlane *dataplane;
 | 
						|
    XenBlockDrive *drive;
 | 
						|
    XenBlockIOThread *iothread;
 | 
						|
};
 | 
						|
typedef struct XenBlockDevice XenBlockDevice;
 | 
						|
 | 
						|
typedef void (*XenBlockDeviceRealize)(XenBlockDevice *blockdev, Error **errp);
 | 
						|
typedef void (*XenBlockDeviceUnrealize)(XenBlockDevice *blockdev);
 | 
						|
 | 
						|
struct XenBlockDeviceClass {
 | 
						|
    /*< private >*/
 | 
						|
    XenDeviceClass parent_class;
 | 
						|
    /*< public >*/
 | 
						|
    XenBlockDeviceRealize realize;
 | 
						|
    XenBlockDeviceUnrealize unrealize;
 | 
						|
};
 | 
						|
 | 
						|
#define TYPE_XEN_BLOCK_DEVICE  "xen-block"
 | 
						|
OBJECT_DECLARE_TYPE(XenBlockDevice, XenBlockDeviceClass, XEN_BLOCK_DEVICE)
 | 
						|
 | 
						|
struct XenDiskDevice {
 | 
						|
    XenBlockDevice blockdev;
 | 
						|
};
 | 
						|
 | 
						|
#define TYPE_XEN_DISK_DEVICE  "xen-disk"
 | 
						|
OBJECT_DECLARE_SIMPLE_TYPE(XenDiskDevice, XEN_DISK_DEVICE)
 | 
						|
 | 
						|
struct XenCDRomDevice {
 | 
						|
    XenBlockDevice blockdev;
 | 
						|
};
 | 
						|
 | 
						|
#define TYPE_XEN_CDROM_DEVICE  "xen-cdrom"
 | 
						|
OBJECT_DECLARE_SIMPLE_TYPE(XenCDRomDevice, XEN_CDROM_DEVICE)
 | 
						|
 | 
						|
#endif /* HW_XEN_BLOCK_H */
 |