亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? setserial.c

?? setserialsetserial linux /serial programming
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* setserial.c - get/set Linux serial port info - rick sladkey *//* modified to do work again and added setting fast serial speeds,   Michael K. Johnson, johnsonm@stolaf.edu *//* * Very heavily modified --- almost rewritten from scratch --- to have * a more flexible command structure.  Now able to set any of the * serial-specific options using the TIOCSSERIAL ioctl(). * 			Theodore Ts'o, tytso@mit.edu, 1/1/93 * * Last modified: [tytso:19940520.0036EDT] */#include <stdio.h>#include <fcntl.h>#include <termios.h>#include <string.h>#include <errno.h>#ifdef HAVE_ASM_IOCTLS_H#include <asm/ioctls.h>#endif#ifdef HAVE_LINUX_HAYESESP_H#include <linux/hayesesp.h>#endif#include <linux/serial.h>#include "version.h"static char version_str[] = "setserial version " SETSERIAL_VERSION ", "	SETSERIAL_DATE;char *progname;int	verbosity = 1;		/* 1 = normal, 0=boot-time, 2=everything */				/* -1 == arguments to setserial */int	verbose_flag = 0;	/* print results after setting a port */int	quiet_flag = 0;int	zero_flag = 0;struct serial_type_struct {	int id;	char *name;} serial_type_tbl[] = {	PORT_UNKNOWN,	"unknown",	PORT_8250,	"8250",	PORT_16450,	"16450",	PORT_16550,	"16550",	PORT_16550A,	"16550A",	PORT_CIRRUS,	"Cirrus",	PORT_16650,	"16650",	PORT_16650V2, 	"16650V2",	PORT_16750,	"16750",	PORT_16C950,	"16950/954",	PORT_16C950,	"16950",	PORT_16C950,	"16954",	PORT_16654,	"16654",	PORT_16850,	"16850",	PORT_UNKNOWN,	"none",	-1,		NULL};#define CMD_FLAG	1#define CMD_PORT	2#define CMD_IRQ		3#define CMD_DIVISOR	4#define CMD_TYPE	5#define CMD_BASE	6#define CMD_DELAY	7#define CMD_WAIT	8#define CMD_WAIT2	9#define CMD_CONFIG	10#define CMD_GETMULTI	11#define CMD_SETMULTI	12#define CMD_RX_TRIG     13#define CMD_TX_TRIG     14#define CMD_FLOW_OFF    15#define CMD_FLOW_ON     16#define CMD_RX_TMOUT    17#define CMD_DMA_CHAN    18#define FLAG_CAN_INVERT	0x0001#define FLAG_NEED_ARG	0x0002struct flag_type_table {	int	cmd;	char	*name;	int	bits;	int	mask;	int	level;	int	flags;} flag_type_tbl[] = {	CMD_FLAG,	"spd_normal",	0,		ASYNC_SPD_MASK,	2, 0,	CMD_FLAG,	"spd_hi",	ASYNC_SPD_HI, 	ASYNC_SPD_MASK, 0, 0,	CMD_FLAG,	"spd_vhi",	ASYNC_SPD_VHI,	ASYNC_SPD_MASK,	0, 0,	CMD_FLAG,	"spd_shi",	ASYNC_SPD_SHI,	ASYNC_SPD_MASK,	0, 0,	CMD_FLAG,	"spd_warp",	ASYNC_SPD_WARP,	ASYNC_SPD_MASK,	0, 0,	CMD_FLAG,	"spd_cust",	ASYNC_SPD_CUST,	ASYNC_SPD_MASK,	0, 0,		CMD_FLAG, 	"SAK", 		ASYNC_SAK, 	ASYNC_SAK, 	0, FLAG_CAN_INVERT,	CMD_FLAG,	"Fourport",	ASYNC_FOURPORT, ASYNC_FOURPORT,	0, FLAG_CAN_INVERT,	CMD_FLAG,	"hup_notify",	ASYNC_HUP_NOTIFY, ASYNC_HUP_NOTIFY, 0, FLAG_CAN_INVERT,	CMD_FLAG,	"skip_test",	ASYNC_SKIP_TEST,ASYNC_SKIP_TEST,2, FLAG_CAN_INVERT,	CMD_FLAG,	"auto_irq",	ASYNC_AUTO_IRQ,	ASYNC_AUTO_IRQ,	2, FLAG_CAN_INVERT,	CMD_FLAG,	"split_termios", ASYNC_SPLIT_TERMIOS, ASYNC_SPLIT_TERMIOS, 2, FLAG_CAN_INVERT,	CMD_FLAG,	"session_lockout", ASYNC_SESSION_LOCKOUT, ASYNC_SESSION_LOCKOUT, 2, FLAG_CAN_INVERT,	CMD_FLAG,	"pgrp_lockout", ASYNC_PGRP_LOCKOUT, ASYNC_PGRP_LOCKOUT, 2, FLAG_CAN_INVERT,	CMD_FLAG,	"callout_nohup", ASYNC_CALLOUT_NOHUP, ASYNC_CALLOUT_NOHUP, 2, FLAG_CAN_INVERT,	CMD_FLAG,	"low_latency", ASYNC_LOW_LATENCY, ASYNC_LOW_LATENCY, 0, FLAG_CAN_INVERT,	CMD_PORT,	"port",		0,		0,		0, FLAG_NEED_ARG,	CMD_IRQ,	"irq",		0,		0,		0, FLAG_NEED_ARG,	CMD_DIVISOR,	"divisor",	0,		0,		0, FLAG_NEED_ARG,	CMD_TYPE,	"uart",		0,		0,		0, FLAG_NEED_ARG,	CMD_BASE,	"base",		0,		0,		0, FLAG_NEED_ARG,	CMD_BASE,	"baud_base",	0,		0,		0, FLAG_NEED_ARG,	CMD_DELAY,	"close_delay",	0,		0,		0, FLAG_NEED_ARG,	CMD_WAIT,	"closing_wait",	0,		0,		0, FLAG_NEED_ARG,	CMD_CONFIG,	"autoconfig",	0,		0,		0, 0,	CMD_CONFIG,	"autoconfigure",0,		0,		0, 0,	CMD_GETMULTI,	"get_multiport",0,		0,		0, 0,	CMD_SETMULTI,	"set_multiport",0,		0,		0, 0,#ifdef TIOCGHAYESESP	CMD_RX_TRIG,    "rx_trigger",   0,              0,              0, FLAG_NEED_ARG,	CMD_TX_TRIG,    "tx_trigger",   0,              0,              0, FLAG_NEED_ARG,	CMD_FLOW_OFF,   "flow_off",     0,              0,              0, FLAG_NEED_ARG,	CMD_FLOW_ON,    "flow_on",      0,              0,              0, FLAG_NEED_ARG,	CMD_RX_TMOUT,   "rx_timeout",   0,              0,              0, FLAG_NEED_ARG,	CMD_DMA_CHAN,   "dma_channel",  0,              0,              0, FLAG_NEED_ARG,#endif	0,		0,		0,		0,		0, 0,};	char *serial_type(int id){	int i;	for (i = 0; serial_type_tbl[i].id != -1; i++)		if (id == serial_type_tbl[i].id)			return serial_type_tbl[i].name;	return "undefined";}int uart_type(char *name){	int i;	for (i = 0; serial_type_tbl[i].id != -1; i++)		if (!strcasecmp(name, serial_type_tbl[i].name))			return serial_type_tbl[i].id;	return -1;}int atonum(char *s){	int n;	while (*s == ' ')		s++;	if (strncmp(s, "0x", 2) == 0 || strncmp(s, "0X", 2) == 0)		sscanf(s + 2, "%x", &n);	else if (s[0] == '0' && s[1])		sscanf(s + 1, "%o", &n);	else		sscanf(s, "%d", &n);	return n;}void print_flags(struct serial_struct *serinfo,		 char *prefix, char *postfix){	struct	flag_type_table	*p;	int	flags;	int	first = 1;	flags = serinfo->flags;		for (p = flag_type_tbl; p->name; p++) {		if (p->cmd != CMD_FLAG)			continue;		if (verbosity == -1) {			if ((flags & p->mask) == p->bits)				printf(" %s", p->name);			continue;		}		if (verbosity < p->level)			continue;		if ((flags & p->mask) == p->bits) {			if (first) {				printf("%s", prefix);				first = 0;			} else				printf(" ");			printf("%s", p->name);		}	}		if (!first)		printf("%s", postfix);}#ifdef TIOCSERGETMULTIvoid print_multiport(char *device, int fd){	struct serial_multiport_struct multi;	if (ioctl(fd, TIOCSERGETMULTI, &multi) < 0)		return;	if (!multi.port1 && !multi.port2 &&	    !multi.port3 && !multi.port4 && !multi.port_monitor)		return;		printf("%s", device);	if (multi.port_monitor)		printf(" port_monitor 0x%x", multi.port_monitor);	if (multi.port1)		printf(" port1 0x%x mask1 0x%x match1 0x%x", multi.port1,		       multi.mask1, multi.match1);	if (multi.port2)		printf(" port2 0x%x mask2 0x%x match2 0x%x", multi.port2,		       multi.mask2, multi.match2);	if (multi.port3)		printf(" port3 0x%x mask3 0x%x match3 0x%x", multi.port3,		       multi.mask3, multi.match3);	if (multi.port4)		printf(" port4 0x%x mask4 0x%x match4 0x%x", multi.port4,		       multi.mask4, multi.match4);	printf("\n");}void multiport_usage(){	fprintf(stderr, "\nValid keywords after set_multiport are:\n");	fprintf(stderr, "\tport_monitor, port[1-4], mask[1-4], "		"match[1-4]\n\n");	fprintf(stderr, "All arguments take an numeric argument following "		"the keyword.\n");	fprintf(stderr, "Use a leading '0x' for hex numbers.\n\n");}void get_multiport(char *device, int fd){	struct serial_multiport_struct multi;	if (ioctl(fd, TIOCSERGETMULTI, &multi) < 0) {		perror("Cannot get multiport config");		exit(1);	}	printf("Multiport config for irq %d:\n", multi.irq);	printf("\tPort monitor = 0x%x\n", multi.port_monitor);	printf("\tPort1 = 0x%x, mask=0x%x, match=0x%x\n", multi.port1,	       multi.mask1, multi.match1);	printf("\tPort2 = 0x%x, mask=0x%x, match=0x%x\n", multi.port2,	       multi.mask2, multi.match2);	printf("\tPort3 = 0x%x, mask=0x%x, match=0x%x\n", multi.port3,	       multi.mask3, multi.match3);	printf("\tPort4 = 0x%x, mask=0x%x, match=0x%x\n", multi.port4,	       multi.mask4, multi.match4);}void set_multiport(char *device, int fd, char ***in_arg){	char **arg = *in_arg;	char *word, *argument;	struct serial_multiport_struct multi;	if (ioctl(fd, TIOCSERGETMULTI, &multi) < 0) {		perror("Cannot get multiport config");		exit(1);	}	if (*arg == 0) {		multiport_usage();		return;	}	while (*arg) {		word = *arg++;		if (*arg == 0) {			multiport_usage();			exit(1);		}		argument = *arg++;		if (strcasecmp(word, "port_monitor") == 0) {			multi.port_monitor = atonum(argument);			continue;		}		if (strcasecmp(word, "port1") == 0) {			multi.port1 = atonum(argument);			continue;		}		if (strcasecmp(word, "mask1") == 0) {			multi.mask1 = atonum(argument);			continue;		}		if (strcasecmp(word, "match1") == 0) {			multi.match1 = atonum(argument);			continue;		}		if (strcasecmp(word, "port2") == 0) {			multi.port2 = atonum(argument);			continue;		}		if (strcasecmp(word, "mask2") == 0) {			multi.mask2 = atonum(argument);			continue;		}		if (strcasecmp(word, "match2") == 0) {			multi.match2 = atonum(argument);			continue;		}		if (strcasecmp(word, "port3") == 0) {			multi.port3 = atonum(argument);			continue;		}		if (strcasecmp(word, "mask3") == 0) {			multi.mask3 = atonum(argument);			continue;		}		if (strcasecmp(word, "match3") == 0) {			multi.match3 = atonum(argument);			continue;		}		if (strcasecmp(word, "port4") == 0) {			multi.port4 = atonum(argument);			continue;		}		if (strcasecmp(word, "mask4") == 0) {			multi.mask4 = atonum(argument);			continue;		}		if (strcasecmp(word, "match4") == 0) {			multi.match4 = atonum(argument);			continue;		}		fprintf(stderr, "Unknown keyword %s.\n", word);		multiport_usage();		exit(1);	}	if (ioctl(fd, TIOCSERSETMULTI, &multi) < 0) {		perror("Cannot set multiport config");		exit(1);	}	*in_arg = arg;}#elsevoid get_multiport(char *device, int fd){	printf("Setserial was compiled under a kernel which did not\n");	printf("support the special serial multiport configs.\n");}void set_multiport(char *device, int fd, char ***in_arg){	printf("Setserial was compiled under a kernel which did not\n");	printf("support the special serial multiport configs.\n");}#endif#ifdef TIOCGHAYESESPvoid print_hayesesp(int fd){	struct hayes_esp_config esp;	if (ioctl(fd, TIOCGHAYESESP, &esp) < 0)		return;	printf("\tHayes ESP enhanced mode configuration:\n");	printf("\t\tRX trigger level: %d, TX trigger level: %d\n",	       (int)esp.rx_trigger, (int)esp.tx_trigger);	printf("\t\tFlow off level: %d, Flow on level: %d\n",	       (int)esp.flow_off, (int)esp.flow_on);	printf("\t\tRX timeout: %u, DMA channel: %d\n\n",	       (unsigned int)esp.rx_timeout, (int)esp.dma_channel);}void set_hayesesp(int fd, int cmd, int arg){	struct hayes_esp_config esp;	if (ioctl(fd, TIOCGHAYESESP, &esp) < 0) {		printf("\nError: rx_trigger, tx_trigger, flow_off, "		       "flow_on, rx_timeout, and dma_channel\n"		       "are only valid for Hayes ESP ports.\n\n");		exit(1);	}	switch (cmd) {	case CMD_RX_TRIG:		esp.rx_trigger = arg;		break;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精彩视频在线观看| 国产精品久线在线观看| 琪琪久久久久日韩精品| 欧美人妖巨大在线| 视频在线观看一区| 日韩一二三四区| 国产成人在线视频网址| 国产精品麻豆欧美日韩ww| 91亚洲男人天堂| 午夜视频在线观看一区二区三区| 欧美一区欧美二区| 国产原创一区二区| 成人免费在线视频| 欧美午夜一区二区| 蜜桃视频在线观看一区| 国产欧美日韩麻豆91| 色素色在线综合| 日本亚洲免费观看| 国产精品亲子伦对白| 欧美网站大全在线观看| 精品一二三四区| 亚洲欧美日韩系列| 欧美一卡二卡在线观看| 成人免费视频caoporn| 亚洲综合网站在线观看| 精品处破学生在线二十三| 成人av网址在线观看| 亚洲成人av一区二区三区| 精品久久人人做人人爽| 99久久精品国产精品久久| 日韩av一区二区三区四区| 国产亚洲综合性久久久影院| 欧美午夜一区二区三区| 国产成人日日夜夜| 五月婷婷另类国产| 国产女人18毛片水真多成人如厕| 欧美三级在线视频| 福利一区二区在线| 男女激情视频一区| 国产精品久久久久久久久快鸭| 欧美精品v国产精品v日韩精品| 国产91对白在线观看九色| 偷拍亚洲欧洲综合| 亚洲色图第一区| 欧美精品一区二区三区在线| 色狠狠一区二区| 国产成人在线看| 美腿丝袜一区二区三区| 亚洲综合成人在线视频| 国产精品久久久一本精品| 日韩你懂的在线播放| 欧美色区777第一页| 懂色av一区二区夜夜嗨| 美洲天堂一区二卡三卡四卡视频| 亚洲一区二区三区四区五区黄| 国产精品免费人成网站| 精品sm在线观看| 日韩欧美国产三级电影视频| 欧美视频精品在线观看| 99视频精品在线| 成人激情黄色小说| 国产精品资源在线观看| 久久se这里有精品| 视频一区在线播放| 亚洲电影欧美电影有声小说| 亚洲精品日韩一| 亚洲欧洲一区二区三区| 中文字幕av一区二区三区高| 久久久综合视频| 久久久亚洲欧洲日产国码αv| 日韩欧美成人一区二区| 日韩欧美中文字幕精品| 欧美一区二区啪啪| 日韩欧美中文字幕公布| 欧美一区二区三级| 欧美不卡123| 久久网站最新地址| 久久精品人人做| 国产女人aaa级久久久级| 久久精品日产第一区二区三区高清版| 2021国产精品久久精品| 欧美精品一区二区在线观看| 337p粉嫩大胆色噜噜噜噜亚洲 | 国产91精品一区二区麻豆亚洲| 精彩视频一区二区三区| 国产在线精品免费av| 国产美女精品人人做人人爽| 丰满少妇在线播放bd日韩电影| 成人免费毛片片v| 色综合中文字幕国产 | 精品国产凹凸成av人网站| 精品少妇一区二区三区在线播放 | 国产**成人网毛片九色| 福利一区福利二区| 91麻豆国产福利精品| 欧美日韩一区三区四区| 日韩一级片网址| 久久精品网站免费观看| 亚洲欧美福利一区二区| 午夜精品福利视频网站| 极品美女销魂一区二区三区| 国产成人精品www牛牛影视| 成人动漫中文字幕| 欧美视频一区二区三区| 日韩欧美高清在线| 国产精品另类一区| 午夜久久久久久电影| 精品在线观看免费| 91免费版pro下载短视频| 欧美日韩成人一区| 久久久国产精品午夜一区ai换脸| 中文字幕一区二区三区在线播放| 亚洲图片欧美视频| 狠狠狠色丁香婷婷综合久久五月| www.亚洲激情.com| 7777精品伊人久久久大香线蕉超级流畅| 精品国产一区二区亚洲人成毛片| 综合欧美一区二区三区| 免费观看久久久4p| 91在线一区二区| 欧美zozozo| 亚洲黄色在线视频| 国产美女在线观看一区| 精品视频一区二区不卡| 久久久99久久| 日韩av电影免费观看高清完整版 | 中文字幕在线不卡| 日本午夜精品一区二区三区电影| 成人教育av在线| 日韩视频免费观看高清完整版在线观看| 中文子幕无线码一区tr| 麻豆精品精品国产自在97香蕉| 色综合天天综合网国产成人综合天| 日韩视频免费观看高清完整版在线观看 | 国产欧美日韩综合精品一区二区| 日韩专区一卡二卡| 91蜜桃网址入口| 久久久不卡网国产精品一区| 日韩黄色小视频| 91成人在线观看喷潮| 国产日本亚洲高清| 久久福利资源站| 欧美丰满少妇xxxbbb| 亚洲欧洲综合另类在线| 国产69精品久久久久毛片| 欧美一级日韩不卡播放免费| 夜夜精品浪潮av一区二区三区| 丰满亚洲少妇av| 国产色综合久久| 九九**精品视频免费播放| 91麻豆精品久久久久蜜臀| 夜色激情一区二区| 91看片淫黄大片一级| 国产精品成人网| 国产成人av一区二区三区在线观看| 欧美成人r级一区二区三区| 天天影视网天天综合色在线播放 | 欧美日韩国产免费一区二区| 亚洲精品久久久蜜桃| 91免费观看视频在线| 亚洲色欲色欲www| 99久久精品免费看国产免费软件| 欧美国产成人精品| 波多野洁衣一区| 国产精品福利一区| 99精品视频一区| 综合自拍亚洲综合图不卡区| 91色porny蝌蚪| 亚洲精品视频在线看| 日本韩国欧美三级| 亚洲午夜一区二区| 精品视频免费看| 日韩中文字幕1| 欧美一三区三区四区免费在线看 | 国产成人午夜视频| 欧美国产一区视频在线观看| 国产成人欧美日韩在线电影| 亚洲国产成人一区二区三区| 成人黄色a**站在线观看| 国产精品国产三级国产专播品爱网| 不卡av在线免费观看| 自拍偷自拍亚洲精品播放| 色激情天天射综合网| 午夜久久电影网| 日韩精品一区二区三区四区视频| 久久99久久99精品免视看婷婷| 久久青草国产手机看片福利盒子| 粉嫩在线一区二区三区视频| 中文字幕在线不卡一区| 在线免费不卡电影| 蜜桃av噜噜一区| 国产欧美日韩精品在线| 色综合久久久久综合体| 香蕉乱码成人久久天堂爱免费| 日韩欧美一区在线观看| 丁香婷婷综合色啪| 亚洲乱码日产精品bd| 日韩一区二区三区观看| 成人在线综合网站| 亚洲高清在线视频|