mirror of
https://github.com/izzy2lost/xemu.git
synced 2026-07-06 00:20:22 -07:00
USB-to-serial device (Samuel Thibault).
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3914 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
@@ -57,7 +57,7 @@ OBJS+=i2c.o smbus.o smbus_eeprom.o max7310.o max111x.o wm8750.o
|
||||
OBJS+=ssd0303.o ssd0323.o ads7846.o stellaris_input.o
|
||||
OBJS+=scsi-disk.o cdrom.o
|
||||
OBJS+=scsi-generic.o
|
||||
OBJS+=usb.o usb-hub.o usb-linux.o usb-hid.o usb-msd.o usb-wacom.o
|
||||
OBJS+=usb.o usb-hub.o usb-linux.o usb-hid.o usb-msd.o usb-wacom.o usb-serial.o
|
||||
OBJS+=sd.o ssi-sd.o
|
||||
|
||||
ifdef CONFIG_WIN32
|
||||
|
||||
+549
File diff suppressed because it is too large
Load Diff
@@ -217,6 +217,9 @@ USBDevice *usb_msd_init(const char *filename);
|
||||
/* usb-wacom.c */
|
||||
USBDevice *usb_wacom_init(void);
|
||||
|
||||
/* usb-serial.c */
|
||||
USBDevice *usb_serial_init(const char *filename);
|
||||
|
||||
/* usb ports of the VM */
|
||||
|
||||
void qemu_register_usb_port(USBPort *port, void *opaque, int index,
|
||||
|
||||
@@ -2240,45 +2240,33 @@ static void tty_serial_init(int fd, int speed,
|
||||
#endif
|
||||
tcgetattr (fd, &tty);
|
||||
|
||||
switch(speed) {
|
||||
case 50:
|
||||
#define MARGIN 1.1
|
||||
if (speed <= 50 * MARGIN)
|
||||
spd = B50;
|
||||
break;
|
||||
case 75:
|
||||
else if (speed <= 75 * MARGIN)
|
||||
spd = B75;
|
||||
break;
|
||||
case 300:
|
||||
else if (speed <= 300 * MARGIN)
|
||||
spd = B300;
|
||||
break;
|
||||
case 600:
|
||||
else if (speed <= 600 * MARGIN)
|
||||
spd = B600;
|
||||
break;
|
||||
case 1200:
|
||||
else if (speed <= 1200 * MARGIN)
|
||||
spd = B1200;
|
||||
break;
|
||||
case 2400:
|
||||
else if (speed <= 2400 * MARGIN)
|
||||
spd = B2400;
|
||||
break;
|
||||
case 4800:
|
||||
else if (speed <= 4800 * MARGIN)
|
||||
spd = B4800;
|
||||
break;
|
||||
case 9600:
|
||||
else if (speed <= 9600 * MARGIN)
|
||||
spd = B9600;
|
||||
break;
|
||||
case 19200:
|
||||
else if (speed <= 19200 * MARGIN)
|
||||
spd = B19200;
|
||||
break;
|
||||
case 38400:
|
||||
else if (speed <= 38400 * MARGIN)
|
||||
spd = B38400;
|
||||
break;
|
||||
case 57600:
|
||||
else if (speed <= 57600 * MARGIN)
|
||||
spd = B57600;
|
||||
break;
|
||||
default:
|
||||
case 115200:
|
||||
else if (speed <= 115200 * MARGIN)
|
||||
spd = B115200;
|
||||
else
|
||||
spd = B115200;
|
||||
break;
|
||||
}
|
||||
|
||||
cfsetispeed(&tty, spd);
|
||||
cfsetospeed(&tty, spd);
|
||||
@@ -5223,6 +5211,8 @@ static int usb_device_add(const char *devname)
|
||||
dev = usb_msd_init(p);
|
||||
} else if (!strcmp(devname, "wacom-tablet")) {
|
||||
dev = usb_wacom_init();
|
||||
} else if (strstart(devname, "serial:", &p)) {
|
||||
dev = usb_serial_init(p);
|
||||
} else {
|
||||
return -1;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user