Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


added more ATAPI commands and debugging to ide layer
[palacios.git] / palacios / src / devices / atapi.h
index 78e0751..27bed29 100644 (file)
@@ -436,6 +436,19 @@ static int atapi_inquiry(struct vm_device * dev, struct ide_channel * channel) {
 }
 
 
+static int atapi_cmd_is_data_op(uint8_t cmd) {
+    switch (cmd) {
+       case 0x28: // read (10)
+       case 0xa8: // read (12)
+       case 0x2a: // write (10)
+       case 0xaa: // write (12)
+           return 1;
+       default:
+           return 0;
+    } 
+}
+
+
 static int atapi_handle_packet(struct vm_device * dev, struct ide_channel * channel) {
    struct ide_drive * drive = get_selected_drive(channel);
    uint8_t cmd = drive->data_buf[0];
@@ -456,6 +469,10 @@ static int atapi_handle_packet(struct vm_device * dev, struct ide_channel * chan
           atapi_req_sense(dev, channel);
           break;
 
+       case 0x1e: // lock door
+          atapi_cmd_nop(dev, channel);
+          break;
+
        case 0x28: // read(10)
           if (atapi_read10(dev, channel) == -1) {
               PrintError("IDE: Error in ATAPI read (%x)\n", cmd);
@@ -518,7 +535,7 @@ static int atapi_handle_packet(struct vm_device * dev, struct ide_channel * chan
 
 
        case 0x2b: // seek
-       case 0x1e: // lock door
+
        case 0x42: // read sub-channel