VirtualBox

Ticket #3334: virtualbox-custom_baudrate.diff

File virtualbox-custom_baudrate.diff, 1.5 KB (added by manio, 16 years ago)
  • VirtualBox-2.1.0/src/VBox/Devices/Serial/DrvHostSerial.cpp

    old new  
    4040#if defined(RT_OS_LINUX) || defined(RT_OS_DARWIN)
    4141# include <errno.h>
    4242# include <termios.h>
     43# include <linux/serial.h>
    4344# include <sys/types.h>
    4445# include <fcntl.h>
    4546# include <string.h>
     
    242243    PDRVHOSTSERIAL pThis = PDMICHAR_2_DRVHOSTSERIAL(pInterface);
    243244#if defined(RT_OS_LINUX) || defined(RT_OS_DARWIN)
    244245    struct termios *termiosSetup;
     246    struct serial_struct *serialStruct;
    245247    int baud_rate;
    246248#elif defined(RT_OS_WINDOWS)
    247249    LPDCB comSetup;
     
    308310            baud_rate = B115200;
    309311            break;
    310312        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;
    312324    }
    313325
    314326    cfsetispeed(termiosSetup, baud_rate);

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy