Patchwork add interface type IF_SATA

login
register
mail settings
Submitter Sebastian Herbszt
Date May 10, 2010, 9:55 p.m.
Message ID <080FFDF282C84044B8A8C8BA23EAE5AE@FSCPC>
Download mbox | patch
Permalink /patch/52240/
State New
Headers show

Comments

Sebastian Herbszt - May 10, 2010, 9:55 p.m.
Add interface type IF_SATA.

Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>

Patch

diff --git a/sysemu.h b/sysemu.h
index fa921df..b88bae9 100644
--- a/sysemu.h
+++ b/sysemu.h
@@ -151,7 +151,7 @@  extern unsigned int nb_prom_envs;
 typedef enum {
     IF_NONE,
     IF_IDE, IF_SCSI, IF_FLOPPY, IF_PFLASH, IF_MTD, IF_SD, IF_VIRTIO, IF_XEN,
-    IF_COUNT
+    IF_SATA, IF_COUNT
 } BlockInterfaceType;
 
 typedef enum {
@@ -177,6 +177,7 @@  typedef struct DriveInfo {
 
 #define MAX_IDE_DEVS 2
 #define MAX_SCSI_DEVS 7
+#define MAX_SATA_DEVS 1
 #define MAX_DRIVES 32
 
 extern QTAILQ_HEAD(drivelist, DriveInfo) drives;
diff --git a/vl.c b/vl.c
index 85bcc84..cd3a343 100644
--- a/vl.c
+++ b/vl.c
@@ -849,6 +849,9 @@  DriveInfo *drive_init(QemuOpts *opts, void *opaque,
  } else if (!strcmp(buf, "xen")) {
      type = IF_XEN;
             max_devs = 0;
+ } else if (!strcmp(buf, "sata")) {
+     type = IF_SATA;
+            max_devs = MAX_SATA_DEVS;
  } else if (!strcmp(buf, "none")) {
      type = IF_NONE;
             max_devs = 0;
@@ -1039,7 +1042,7 @@  DriveInfo *drive_init(QemuOpts *opts, void *opaque,
     } else {
         /* no id supplied -> create one */
         dinfo->id = qemu_mallocz(32);
-        if (type == IF_IDE || type == IF_SCSI)
+        if (type == IF_IDE || type == IF_SCSI || type == IF_SATA)
             mediastr = (media == MEDIA_CDROM) ? "-cd" : "-hd";
         if (max_devs)
             snprintf(dinfo->id, 32, "%s%i%s%i",
@@ -1064,6 +1067,7 @@  DriveInfo *drive_init(QemuOpts *opts, void *opaque,
     case IF_IDE:
     case IF_SCSI:
     case IF_XEN:
+    case IF_SATA:
     case IF_NONE:
         switch(media) {
  case MEDIA_DISK: