您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ uart_handle_dcd_change函数代码示例

51自学网 2021-06-03 09:04:07
  C++
这篇教程C++ uart_handle_dcd_change函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中uart_handle_dcd_change函数的典型用法代码示例。如果您正苦于以下问题:C++ uart_handle_dcd_change函数的具体用法?C++ uart_handle_dcd_change怎么用?C++ uart_handle_dcd_change使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了uart_handle_dcd_change函数的18个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: receive_chars_getchar

static int receive_chars_getchar(struct uart_port *port, struct tty_struct *tty){    int saw_console_brk = 0;    int limit = 10000;    while (limit-- > 0) {        long status;        long c = sun4v_con_getchar(&status);        if (status == HV_EWOULDBLOCK)            break;        if (c == CON_BREAK) {            if (uart_handle_break(port))                continue;            saw_console_brk = 1;            c = 0;        }        if (c == CON_HUP) {            hung_up = 1;            uart_handle_dcd_change(port, 0);        } else if (hung_up) {            hung_up = 0;            uart_handle_dcd_change(port, 1);        }        if (tty == NULL) {            uart_handle_sysrq_char(port, c);            continue;        }        port->icount.rx++;        if (uart_handle_sysrq_char(port, c))            continue;        tty_insert_flip_char(tty, c, TTY_NORMAL);    }    return saw_console_brk;}
开发者ID:274914765,项目名称:C,代码行数:42,


示例2: neo_parse_modem

static void neo_parse_modem(struct jsm_channel *ch, u8 signals){	u8 msignals = signals;	jsm_dbg(MSIGS, &ch->ch_bd->pci_dev,		"neo_parse_modem: port: %d msignals: %x/n",		ch->ch_portnum, msignals);	/* Scrub off lower bits. They signify delta's, which I don't care about */	/* Keep DDCD and DDSR though */	msignals &= 0xf8;	if (msignals & UART_MSR_DDCD)		uart_handle_dcd_change(&ch->uart_port, msignals & UART_MSR_DCD);	if (msignals & UART_MSR_DDSR)		uart_handle_cts_change(&ch->uart_port, msignals & UART_MSR_CTS);	if (msignals & UART_MSR_DCD)		ch->ch_mistat |= UART_MSR_DCD;	else		ch->ch_mistat &= ~UART_MSR_DCD;	if (msignals & UART_MSR_DSR)		ch->ch_mistat |= UART_MSR_DSR;	else		ch->ch_mistat &= ~UART_MSR_DSR;	if (msignals & UART_MSR_RI)		ch->ch_mistat |= UART_MSR_RI;	else		ch->ch_mistat &= ~UART_MSR_RI;	if (msignals & UART_MSR_CTS)		ch->ch_mistat |= UART_MSR_CTS;	else		ch->ch_mistat &= ~UART_MSR_CTS;	jsm_dbg(MSIGS, &ch->ch_bd->pci_dev,		"Port: %d DTR: %d RTS: %d CTS: %d DSR: %d " "RI: %d CD: %d/n",		ch->ch_portnum,		!!((ch->ch_mistat | ch->ch_mostat) & UART_MCR_DTR),		!!((ch->ch_mistat | ch->ch_mostat) & UART_MCR_RTS),		!!((ch->ch_mistat | ch->ch_mostat) & UART_MSR_CTS),		!!((ch->ch_mistat | ch->ch_mostat) & UART_MSR_DSR),		!!((ch->ch_mistat | ch->ch_mostat) & UART_MSR_RI),		!!((ch->ch_mistat | ch->ch_mostat) & UART_MSR_DCD));}
开发者ID:3null,项目名称:linux,代码行数:46,


示例3: atmel_interrupt

/* * Interrupt handler */static irqreturn_t atmel_interrupt(int irq, void *dev_id){	struct uart_port *port = dev_id;	struct atmel_uart_port *atmel_port = (struct atmel_uart_port *) port;	unsigned int status, pending, pass_counter = 0;	status = UART_GET_CSR(port);	pending = status & UART_GET_IMR(port);	while (pending) {		/* Interrupt receive */		if (pending & ATMEL_US_RXRDY)			atmel_rx_chars(port);		else if (pending & ATMEL_US_RXBRK) {			/*			 * End of break detected. If it came along			 * with a character, atmel_rx_chars will			 * handle it.			 */			UART_PUT_CR(port, ATMEL_US_RSTSTA);			UART_PUT_IDR(port, ATMEL_US_RXBRK);			atmel_port->break_active = 0;		}		// TODO: All reads to CSR will clear these interrupts!		if (pending & ATMEL_US_RIIC) port->icount.rng++;		if (pending & ATMEL_US_DSRIC) port->icount.dsr++;		if (pending & ATMEL_US_DCDIC)			uart_handle_dcd_change(port, !(status & ATMEL_US_DCD));		if (pending & ATMEL_US_CTSIC)			uart_handle_cts_change(port, !(status & ATMEL_US_CTS));		if (pending & (ATMEL_US_RIIC | ATMEL_US_DSRIC | ATMEL_US_DCDIC | ATMEL_US_CTSIC))			wake_up_interruptible(&port->info->delta_msr_wait);		/* Interrupt transmit */		if (pending & ATMEL_US_TXRDY)			atmel_tx_chars(port);		if (pass_counter++ > ATMEL_ISR_PASS_LIMIT)			break;		status = UART_GET_CSR(port);		pending = status & UART_GET_IMR(port);	}	return IRQ_HANDLED;}
开发者ID:cilynx,项目名称:dd-wrt,代码行数:48,


示例4: check_modem_status

static inline void check_modem_status(struct uart_port *port){	uint8_t msr;	msr = siu_read(port, UART_MSR);	if ((msr & UART_MSR_ANY_DELTA) == 0)		return;	if (msr & UART_MSR_DDCD)		uart_handle_dcd_change(port, msr & UART_MSR_DCD);	if (msr & UART_MSR_TERI)		port->icount.rng++;	if (msr & UART_MSR_DDSR)		port->icount.dsr++;	if (msr & UART_MSR_DCTS)		uart_handle_cts_change(port, msr & UART_MSR_CTS);	wake_up_interruptible(&port->state->port.delta_msr_wait);}
开发者ID:119-org,项目名称:hi3518-osdrv,代码行数:18,


示例5: serial98_modem_status

static void serial98_modem_status(struct uart_port *port){	int status;	status = serial98_msr_in(port);	if ((status & UART_MSR_ANY_DELTA) == 0)		return;	if (status & UART_MSR_TERI)		PORT.icount.rng++;	if (status & UART_MSR_DDSR)		PORT.icount.dsr++;	if (status & UART_MSR_DDCD)		uart_handle_dcd_change(&PORT, status & UART_MSR_DCD);	if (status & UART_MSR_DCTS)		uart_handle_cts_change(&PORT, status & UART_MSR_CTS);	wake_up_interruptible(&PORT.info->delta_msr_wait);}
开发者ID:iPodLinux,项目名称:linux-2.6.7-ipod,代码行数:20,


示例6: tegra_uart_handle_modem_signal_change

static void tegra_uart_handle_modem_signal_change(struct uart_port *u){	struct tegra_uart_port *tup = to_tegra_uport(u);	unsigned long msr;	msr = tegra_uart_read(tup, UART_MSR);	if (!(msr & UART_MSR_ANY_DELTA))		return;	if (msr & UART_MSR_TERI)		tup->uport.icount.rng++;	if (msr & UART_MSR_DDSR)		tup->uport.icount.dsr++;	/* We may only get DDCD when HW init and reset */	if (msr & UART_MSR_DDCD)		uart_handle_dcd_change(&tup->uport, msr & UART_MSR_DCD);	/* Will start/stop_tx accordingly */	if (msr & UART_MSR_DCTS)		uart_handle_cts_change(&tup->uport, msr & UART_MSR_CTS);}
开发者ID:Lyude,项目名称:linux,代码行数:20,


示例7: check_modem_status

static _INLINE_ void check_modem_status(struct uart_8250_port *up){	int status;	status = serial_in(up, UART_MSR);	if ((status & UART_MSR_ANY_DELTA) == 0)		return;	if (status & UART_MSR_TERI)		up->port.icount.rng++;	if (status & UART_MSR_DDSR)		up->port.icount.dsr++;	if (status & UART_MSR_DDCD)		uart_handle_dcd_change(&up->port, status & UART_MSR_DCD);	if (status & UART_MSR_DCTS)		uart_handle_cts_change(&up->port, status & UART_MSR_CTS);	wake_up_interruptible(&up->port.info->delta_msr_wait);}
开发者ID:gnensis,项目名称:linux-2.6.15,代码行数:20,


示例8: ip22zilog_status_handle

static void ip22zilog_status_handle(struct uart_ip22zilog_port *up,				   struct zilog_channel *channel){	unsigned char status;	status = readb(&channel->control);	ZSDELAY();	writeb(RES_EXT_INT, &channel->control);	ZSDELAY();	ZS_WSYNC(channel);	if (up->curregs[R15] & BRKIE) {		if ((status & BRK_ABRT) && !(up->prev_status & BRK_ABRT)) {			if (uart_handle_break(&up->port))				up->tty_break = Rx_SYS;			else				up->tty_break = Rx_BRK;		}	}	if (ZS_WANTS_MODEM_STATUS(up)) {		if (status & SYNC)			up->port.icount.dsr++;		/* The Zilog just gives us an interrupt when DCD/CTS/etc. change.		 * But it does not tell us which bit has changed, we have to keep		 * track of this ourselves.		 */		if ((status ^ up->prev_status) ^ DCD)			uart_handle_dcd_change(&up->port,					       (status & DCD));		if ((status ^ up->prev_status) ^ CTS)			uart_handle_cts_change(&up->port,					       (status & CTS));		wake_up_interruptible(&up->port.state->port.delta_msr_wait);	}	up->prev_status = status;}
开发者ID:LuweiLight,项目名称:linux-3.14.35-vbal,代码行数:41,


示例9: uart00_modem_status

static void uart00_modem_status(struct uart_port *port){	unsigned int status;	status = UART_GET_MSR(port);	if (!(status & (UART_MSR_DCTS_MSK | UART_MSR_DDSR_MSK | 			UART_MSR_TERI_MSK | UART_MSR_DDCD_MSK)))		return;	if (status & UART_MSR_DDCD_MSK)		uart_handle_dcd_change(port, status & UART_MSR_DCD_MSK);	if (status & UART_MSR_DDSR_MSK)		port->icount.dsr++;	if (status & UART_MSR_DCTS_MSK)		uart_handle_cts_change(port, status & UART_MSR_CTS_MSK);	wake_up_interruptible(&port->info->delta_msr_wait);}
开发者ID:gnensis,项目名称:linux-2.6.15,代码行数:21,


示例10: at91_interrupt

/* * Interrupt handler */static irqreturn_t at91_interrupt(int irq, void *dev_id, struct pt_regs *regs){	struct uart_port *port = dev_id;	unsigned int status, pending, pass_counter = 0;	status = UART_GET_CSR(port);	pending = status & port->read_status_mask;	if (pending) {		do {			if (pending & AT91_US_RXRDY)				at91_rx_chars(port, regs);			/* Clear the relevent break bits */			if (pending & AT91_US_RXBRK) {				UART_PUT_CR(port, AT91_US_RSTSTA);				port->icount.brk++;				uart_handle_break(port);			}			// TODO: All reads to CSR will clear these interrupts!			if (pending & AT91_US_RIIC) port->icount.rng++;			if (pending & AT91_US_DSRIC) port->icount.dsr++;			if (pending & AT91_US_DCDIC)				uart_handle_dcd_change(port, !(status & AT91_US_DCD));			if (pending & AT91_US_CTSIC)				uart_handle_cts_change(port, !(status & AT91_US_CTS));			if (pending & (AT91_US_RIIC | AT91_US_DSRIC | AT91_US_DCDIC | AT91_US_CTSIC))				wake_up_interruptible(&port->info->delta_msr_wait);			if (pending & AT91_US_TXRDY)				at91_tx_chars(port);			if (pass_counter++ > AT91_ISR_PASS_LIMIT)				break;			status = UART_GET_CSR(port);			pending = status & port->read_status_mask;		} while (pending);	}	return IRQ_HANDLED;}
开发者ID:ena30,项目名称:snake-os,代码行数:43,


示例11: check_modem_status

static inline void check_modem_status(struct uart_hsu_port *up){	int status;	status = serial_in(up, UART_MSR);	if ((status & UART_MSR_ANY_DELTA) == 0)		return;	if (status & UART_MSR_TERI)		up->port.icount.rng++;	if (status & UART_MSR_DDSR)		up->port.icount.dsr++;	/* We may only get DDCD when HW init and reset */	if (status & UART_MSR_DDCD)		uart_handle_dcd_change(&up->port, status & UART_MSR_DCD);	/* Will start/stop_tx accordingly */	if (status & UART_MSR_DCTS)		uart_handle_cts_change(&up->port, status & UART_MSR_CTS);	wake_up_interruptible(&up->port.state->port.delta_msr_wait);}
开发者ID:ANFS,项目名称:ANFS-kernel,代码行数:22,


示例12: serial_ambarella_check_modem_status

static inline void serial_ambarella_check_modem_status(struct uart_port *port){	struct ambarella_uart_port_info		*port_info;	u32					ms;	port_info = (struct ambarella_uart_port_info *)(port->private_data);	if (port_info->get_ms) {		ms = port_info->get_ms(port->membase);		if (ms & UART_MS_RI)			port->icount.rng++;		if (ms & UART_MS_DSR)			port->icount.dsr++;		if (ms & UART_MS_DCTS)			uart_handle_cts_change(port, (ms & UART_MS_CTS));		if (ms & UART_MS_DDCD)			uart_handle_dcd_change(port, (ms & UART_MS_DCD));		wake_up_interruptible(&port->state->port.delta_msr_wait);	}}
开发者ID:WayWingsDev,项目名称:gopro-linux,代码行数:22,


示例13: sa1100_mctrl_check

/* * Handle any change of modem status signal since we were last called. */static void sa1100_mctrl_check(struct sa1100_port *sport){	unsigned int status, changed;	status = sport->port.ops->get_mctrl(&sport->port);	changed = status ^ sport->old_status;	if (changed == 0)		return;	sport->old_status = status;	if (changed & TIOCM_RI)		sport->port.icount.rng++;	if (changed & TIOCM_DSR)		sport->port.icount.dsr++;	if (changed & TIOCM_CAR)		uart_handle_dcd_change(&sport->port, status & TIOCM_CAR);	if (changed & TIOCM_CTS)		uart_handle_cts_change(&sport->port, status & TIOCM_CTS);	wake_up_interruptible(&sport->port.state->port.delta_msr_wait);}
开发者ID:openube,项目名称:android_kernel_sony_c2305,代码行数:26,


示例14: pl011_modem_status

static void pl011_modem_status(struct uart_amba_port *uap){	unsigned int status, delta;	status = readw(uap->port.membase + UART01x_FR) & UART01x_FR_MODEM_ANY;	delta = status ^ uap->old_status;	uap->old_status = status;	if (!delta)		return;	if (delta & UART01x_FR_DCD)		uart_handle_dcd_change(&uap->port, status & UART01x_FR_DCD);	if (delta & UART01x_FR_DSR)		uap->port.icount.dsr++;	if (delta & UART01x_FR_CTS)		uart_handle_cts_change(&uap->port, status & UART01x_FR_CTS);	wake_up_interruptible(&uap->port.info->delta_msr_wait);}
开发者ID:smx-smx,项目名称:dsl-n55u,代码行数:23,


示例15: sw_uart_modem_status

static unsigned int sw_uart_modem_status(struct sw_uart_port *sw_uport){	unsigned int status = serial_in(&sw_uport->port, SW_UART_MSR);	status |= sw_uport->msr_saved_flags;	sw_uport->msr_saved_flags = 0;	if (status & SW_UART_MSR_ANY_DELTA && sw_uport->ier & SW_UART_IER_MSI &&	    sw_uport->port.state != NULL) {		if (status & SW_UART_MSR_TERI)			sw_uport->port.icount.rng++;		if (status & SW_UART_MSR_DDSR)			sw_uport->port.icount.dsr++;		if (status & SW_UART_MSR_DDCD)			uart_handle_dcd_change(&sw_uport->port, status & SW_UART_MSR_DCD);		if (!(sw_uport->mcr & SW_UART_MCR_AFE) && status & SW_UART_MSR_DCTS)			uart_handle_cts_change(&sw_uport->port, status & SW_UART_MSR_CTS);		wake_up_interruptible(&sw_uport->port.state->port.delta_msr_wait);	}	SERIAL_DBG("modem status: %x/n", status);	return status;}
开发者ID:GREYFOXRGR,项目名称:BPI-M3-bsp,代码行数:24,


示例16: lh7a40xuart_modem_status

static void lh7a40xuart_modem_status (struct uart_port* port){	unsigned int status = UR (port, UART_R_STATUS);	unsigned int delta		= status ^ ((struct uart_port_lh7a40x*) port)->statusPrev;	BIT_SET (port, UART_R_RAWISR, MSEOI); /* Clear modem status intr */	if (!delta)		/* Only happens if we missed 2 transitions */		return;	((struct uart_port_lh7a40x*) port)->statusPrev = status;	if (delta & DCD)		uart_handle_dcd_change (port, status & DCD);	if (delta & DSR)		++port->icount.dsr;	if (delta & CTS)		uart_handle_cts_change (port, status & CTS);	wake_up_interruptible (&port->info->delta_msr_wait);}
开发者ID:OpenHMR,项目名称:Open-HMR600,代码行数:24,


示例17: receive_chars_read

static int receive_chars_read(struct uart_port *port, struct tty_struct *tty){	int saw_console_brk = 0;	int limit = 10000;	while (limit-- > 0) {		unsigned long ra = __pa(con_read_page);		unsigned long bytes_read, i;		unsigned long breaks_received = 0;		long stat = sun4v_con_read(ra, PAGE_SIZE, &bytes_read);		if (stat != HV_EOK) {			bytes_read = 0;			if (stat == CON_BREAK) {				if (uart_handle_break(port))					continue;				saw_console_brk = 1;				*con_read_page = 0;				bytes_read = 1;			} else if (stat == CON_HUP) {				hung_up = 1;				uart_handle_dcd_change(port, 0);				continue;			} else {				/* HV_EWOULDBLOCK, etc.  */				break;			}		}#ifdef CONFIG_CONSOLE_POLL                if (port->poll_rx_cb) {			for (i = 0; i < bytes_read; i++) {				if (port->poll_rx_cb(con_read_page[i] & 255)) {					if ((bytes_read - i - 1) != 0)						memcpy(&con_read_page[i], &con_read_page[i+1], bytes_read - i - 1);					breaks_received++;					continue;				} else					uart_handle_sysrq_char(port, con_read_page[i]);			}		}#endif		if (hung_up) {			hung_up = 0;			uart_handle_dcd_change(port, 1);		}#ifndef CONFIG_CONSOLE_POLL		for (i = 0; i < bytes_read; i++)			uart_handle_sysrq_char(port, con_read_page[i]);#endif		if (tty == NULL)			continue;		port->icount.rx += bytes_read - breaks_received;		tty_insert_flip_string(tty, con_read_page, bytes_read - breaks_received);	}	return saw_console_brk;}
开发者ID:kzlin129,项目名称:tt-gpl,代码行数:64,


示例18: h3600_dcd_intr

static void h3600_dcd_intr(int irq, void *dev_id, struct pt_regs *regs){    struct uart_info *info = dev_id;    /* Note: should only call this if something has changed */    uart_handle_dcd_change(info, !(GPLR & GPIO_H3600_COM_DCD));}
开发者ID:hugh712,项目名称:Jollen,代码行数:6,



注:本文中的uart_handle_dcd_change函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ uart_handle_sysrq_char函数代码示例
C++ uart_handle_cts_change函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。