Diff for /qemu/hw/virtio-console.c between versions 1.1.1.4 and 1.1.1.5

version 1.1.1.4, 2018/04/24 18:30:11 version 1.1.1.5, 2018/04/24 18:39:37
Line 20  typedef struct VirtConsole { Line 20  typedef struct VirtConsole {
   
   
 /* Callback function that's called when the guest sends us data */  /* Callback function that's called when the guest sends us data */
 static void flush_buf(VirtIOSerialPort *port, const uint8_t *buf, size_t len)  static ssize_t flush_buf(VirtIOSerialPort *port, const uint8_t *buf, size_t len)
 {  {
     VirtConsole *vcon = DO_UPCAST(VirtConsole, port, port);      VirtConsole *vcon = DO_UPCAST(VirtConsole, port, port);
   
     qemu_chr_write(vcon->chr, buf, len);      return qemu_chr_write(vcon->chr, buf, len);
 }  }
   
 /* Readiness of the guest to accept data on a port */  /* Readiness of the guest to accept data on a port */
Line 48  static void chr_event(void *opaque, int  Line 48  static void chr_event(void *opaque, int 
     VirtConsole *vcon = opaque;      VirtConsole *vcon = opaque;
   
     switch (event) {      switch (event) {
     case CHR_EVENT_OPENED: {      case CHR_EVENT_OPENED:
         virtio_serial_open(&vcon->port);          virtio_serial_open(&vcon->port);
         break;          break;
     }  
     case CHR_EVENT_CLOSED:      case CHR_EVENT_CLOSED:
         virtio_serial_close(&vcon->port);          virtio_serial_close(&vcon->port);
         break;          break;
     }      }
 }  }
   
 /* Virtio Console Ports */  static int generic_port_init(VirtConsole *vcon, VirtIOSerialDevice *dev)
 static int virtconsole_initfn(VirtIOSerialDevice *dev)  
 {  {
     VirtIOSerialPort *port = DO_UPCAST(VirtIOSerialPort, dev, &dev->qdev);      vcon->port.info = dev->info;
     VirtConsole *vcon = DO_UPCAST(VirtConsole, port, port);  
   
     port->info = dev->info;  
   
     port->is_console = true;  
   
     if (vcon->chr) {      if (vcon->chr) {
         qemu_chr_add_handlers(vcon->chr, chr_can_read, chr_read, chr_event,          qemu_chr_add_handlers(vcon->chr, chr_can_read, chr_read, chr_event,
                               vcon);                                vcon);
         port->info->have_data = flush_buf;          vcon->port.info->have_data = flush_buf;
     }      }
     return 0;      return 0;
 }  }
   
   /* Virtio Console Ports */
   static int virtconsole_initfn(VirtIOSerialDevice *dev)
   {
       VirtIOSerialPort *port = DO_UPCAST(VirtIOSerialPort, dev, &dev->qdev);
       VirtConsole *vcon = DO_UPCAST(VirtConsole, port, port);
   
       port->is_console = true;
       return generic_port_init(vcon, dev);
   }
   
 static int virtconsole_exitfn(VirtIOSerialDevice *dev)  static int virtconsole_exitfn(VirtIOSerialDevice *dev)
 {  {
     VirtIOSerialPort *port = DO_UPCAST(VirtIOSerialPort, dev, &dev->qdev);      VirtIOSerialPort *port = DO_UPCAST(VirtIOSerialPort, dev, &dev->qdev);
Line 115  static int virtserialport_initfn(VirtIOS Line 118  static int virtserialport_initfn(VirtIOS
     VirtIOSerialPort *port = DO_UPCAST(VirtIOSerialPort, dev, &dev->qdev);      VirtIOSerialPort *port = DO_UPCAST(VirtIOSerialPort, dev, &dev->qdev);
     VirtConsole *vcon = DO_UPCAST(VirtConsole, port, port);      VirtConsole *vcon = DO_UPCAST(VirtConsole, port, port);
   
     port->info = dev->info;      return generic_port_init(vcon, dev);
   
     if (vcon->chr) {  
         qemu_chr_add_handlers(vcon->chr, chr_can_read, chr_read, chr_event,  
                               vcon);  
         port->info->have_data = flush_buf;  
     }  
     return 0;  
 }  }
   
 static VirtIOSerialPortInfo virtserialport_info = {  static VirtIOSerialPortInfo virtserialport_info = {

Removed from v.1.1.1.4  
changed lines
  Added in v.1.1.1.5


unix.superglobalmegacorp.com