Ticket #3334: virtualbox-custom_baudrate.diff
| File virtualbox-custom_baudrate.diff, 1.5 KB (added by , 16 years ago) |
|---|
-
VirtualBox-2.1.0/src/VBox/Devices/Serial/DrvHostSerial.cpp
old new 40 40 #if defined(RT_OS_LINUX) || defined(RT_OS_DARWIN) 41 41 # include <errno.h> 42 42 # include <termios.h> 43 # include <linux/serial.h> 43 44 # include <sys/types.h> 44 45 # include <fcntl.h> 45 46 # include <string.h> … … 242 243 PDRVHOSTSERIAL pThis = PDMICHAR_2_DRVHOSTSERIAL(pInterface); 243 244 #if defined(RT_OS_LINUX) || defined(RT_OS_DARWIN) 244 245 struct termios *termiosSetup; 246 struct serial_struct *serialStruct; 245 247 int baud_rate; 246 248 #elif defined(RT_OS_WINDOWS) 247 249 LPDCB comSetup; … … 308 310 baud_rate = B115200; 309 311 break; 310 312 default: 311 baud_rate = B9600; 313 /* non-standard baud rate handling */ 314 serialStruct = (struct serial_struct *)RTMemTmpAllocZ(sizeof(struct serial_struct)); 315 ioctl(pThis->DeviceFile, TIOCGSERIAL, serialStruct); 316 serialStruct->custom_divisor = serialStruct->baud_base / Bps; 317 if (!(serialStruct->custom_divisor)) 318 serialStruct->custom_divisor = 1; 319 serialStruct->flags &= ~ASYNC_SPD_MASK; 320 serialStruct->flags |= ASYNC_SPD_CUST; 321 ioctl(pThis->DeviceFile, TIOCSSERIAL, serialStruct); 322 RTMemTmpFree(serialStruct); 323 baud_rate = B38400; 312 324 } 313 325 314 326 cfsetispeed(termiosSetup, baud_rate);

