Revision 81174dae vl.c

b/vl.c
2721 2721
                tcsendbreak(s->fd_in, 1);
2722 2722
        }
2723 2723
        break;
2724
    case CHR_IOCTL_SERIAL_GET_TIOCM:
2725
        {
2726
            int sarg = 0;
2727
            int *targ = (int *)arg;
2728
            ioctl(s->fd_in, TIOCMGET, &sarg);
2729
            *targ = 0;
2730
            if (sarg | TIOCM_CTS)
2731
                *targ |= CHR_TIOCM_CTS;
2732
            if (sarg | TIOCM_CAR)
2733
                *targ |= CHR_TIOCM_CAR;
2734
            if (sarg | TIOCM_DSR)
2735
                *targ |= CHR_TIOCM_DSR;
2736
            if (sarg | TIOCM_RI)
2737
                *targ |= CHR_TIOCM_RI;
2738
            if (sarg | TIOCM_DTR)
2739
                *targ |= CHR_TIOCM_DTR;
2740
            if (sarg | TIOCM_RTS)
2741
                *targ |= CHR_TIOCM_RTS;
2742
        }
2743
        break;
2744
    case CHR_IOCTL_SERIAL_SET_TIOCM:
2745
        {
2746
            int sarg = *(int *)arg;
2747
            int targ = 0;
2748
            if (sarg | CHR_TIOCM_DTR)
2749
                targ |= TIOCM_DTR;
2750
            if (sarg | CHR_TIOCM_RTS)
2751
                targ |= TIOCM_RTS;
2752
            ioctl(s->fd_in, TIOCMSET, &targ);
2753
        }
2754
        break;
2724 2755
    default:
2725 2756
        return -ENOTSUP;
2726 2757
    }

Also available in: Unified diff