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