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

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

51自学网 2021-06-01 19:32:23
  C++
这篇教程C++ ACM_READY函数代码示例写得很实用,希望能帮到您。

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

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

示例1: acm_softint

static void acm_softint(struct work_struct *work){	struct acm *acm = container_of(work, struct acm, work);	struct tty_struct *tty;	dev_vdbg(&acm->data->dev, "%s/n", __func__);	if (!ACM_READY(acm))		return;	tty = tty_port_tty_get(&acm->port);	if (!tty)		return;	tty_wakeup(tty);	tty_kref_put(tty);}
开发者ID:schidler,项目名称:flyzjhz-rt-n56u,代码行数:15,


示例2: acm_ctrl_irq

static void acm_ctrl_irq(struct urb *urb){	struct acm *acm = urb->context;	devrequest *dr = urb->transfer_buffer;	unsigned char *data = (unsigned char *)(dr + 1);	int newctrl;	if (!ACM_READY(acm)) return;	if (urb->status < 0) {		dbg("nonzero ctrl irq status received: %d", urb->status);		return;	}	switch (dr->request) {		case ACM_IRQ_NETWORK:			dbg("%s network", data[0] ? "connected to" : "disconnected from");			return;		case ACM_IRQ_LINE_STATE:			newctrl = le16_to_cpup((__u16 *) data);			if (acm->tty && !acm->clocal && (acm->ctrlin & ~newctrl & ACM_CTRL_DCD)) {				dbg("calling hangup");				tty_hangup(acm->tty);			}			acm->ctrlin = newctrl;			dbg("input control lines: dcd%c dsr%c break%c ring%c framing%c parity%c overrun%c",				acm->ctrlin & ACM_CTRL_DCD ? '+' : '-',	acm->ctrlin & ACM_CTRL_DSR ? '+' : '-',				acm->ctrlin & ACM_CTRL_BRK ? '+' : '-',	acm->ctrlin & ACM_CTRL_RI  ? '+' : '-',				acm->ctrlin & ACM_CTRL_FRAMING ? '+' : '-',	acm->ctrlin & ACM_CTRL_PARITY ? '+' : '-',				acm->ctrlin & ACM_CTRL_OVERRUN ? '+' : '-');			return;		default:			dbg("unknown control event received: request %d index %d len %d data0 %d data1 %d",				dr->request, dr->index, dr->length, data[0], data[1]);			return;	}}
开发者ID:liexusong,项目名称:Linux-2.4.16,代码行数:46,


示例3: acm_tty_tiocmset

static int acm_tty_tiocmset(struct tty_struct *tty, struct file *file,			    unsigned int set, unsigned int clear){	struct acm *acm = tty->driver_data;	unsigned int newctrl;	if (!ACM_READY(acm))		return -EINVAL;	newctrl = acm->ctrlout;	set = (set & TIOCM_DTR ? ACM_CTRL_DTR : 0) | (set & TIOCM_RTS ? ACM_CTRL_RTS : 0);	clear = (clear & TIOCM_DTR ? ACM_CTRL_DTR : 0) | (clear & TIOCM_RTS ? ACM_CTRL_RTS : 0);	newctrl = (newctrl & ~clear) | set;	if (acm->ctrlout == newctrl)		return 0;	return acm_set_control(acm, acm->ctrlout = newctrl);}
开发者ID:IgnasD,项目名称:Tomato-RAF,代码行数:19,


示例4: acm_read_bulk

/* data interface returns incoming bytes, or we got unthrottled */static void acm_read_bulk(struct urb *urb){	struct acm_rb *buf;	struct acm_ru *rcv = urb->context;	struct acm *acm = rcv->instance;	int status = urb->status;	dbg("Entering acm_read_bulk with status %d", status);	if (!ACM_READY(acm)) {		dev_dbg(&acm->data->dev, "Aborting, acm not ready");		return;	}	usb_mark_last_busy(acm->dev);	if (status)		dev_dbg(&acm->data->dev, "bulk rx status %d/n", status);	buf = rcv->buffer;	buf->size = urb->actual_length;	if (likely(status == 0)) {		spin_lock(&acm->read_lock);		acm->processing++;		list_add_tail(&rcv->list, &acm->spare_read_urbs);		list_add_tail(&buf->list, &acm->filled_read_bufs);		spin_unlock(&acm->read_lock);	} else {		/* we drop the buffer due to an error */		spin_lock(&acm->read_lock);		list_add_tail(&rcv->list, &acm->spare_read_urbs);		list_add(&buf->list, &acm->spare_read_bufs);		spin_unlock(&acm->read_lock);		/* nevertheless the tasklet must be kicked unconditionally		so the queue cannot dry up */	}	if (likely(!acm->susp_count))		tasklet_schedule(&acm->urb_task);}
开发者ID:IgnasD,项目名称:Tomato-RAF,代码行数:40,


示例5: acm_read_bulk

/* data interface returns incoming bytes, or we got unthrottled */static void acm_read_bulk(struct urb *urb, struct pt_regs *regs){	struct acm_rb *buf;	struct acm_ru *rcv = urb->context;	struct acm *acm = rcv->instance;	dbg("Entering acm_read_bulk with status %d/n", urb->status);	if (!ACM_READY(acm))		return;	if (urb->status)		dev_dbg(&acm->data->dev, "bulk rx status %d/n", urb->status);	buf = rcv->buffer;	buf->size = urb->actual_length;	spin_lock(&acm->read_lock);	list_add_tail(&rcv->list, &acm->spare_read_urbs);	list_add_tail(&buf->list, &acm->filled_read_bufs);	spin_unlock(&acm->read_lock);	tasklet_schedule(&acm->urb_task);}
开发者ID:BackupTheBerlios,项目名称:arp2-svn,代码行数:24,


示例6: acm_read_bulk

static void acm_read_bulk(struct urb *urb){	struct acm *acm = urb->context;	struct tty_struct *tty = acm->tty;	unsigned char *data = urb->transfer_buffer;	int i = 0;	if (!ACM_READY(acm)) return;	if (urb->status)		dbg("nonzero read bulk status received: %d", urb->status);	if (!urb->status & !acm->throttle)  {		for (i = 0; i < urb->actual_length && !acm->throttle; i++) {			/* if we insert more than TTY_FLIPBUF_SIZE characters,			 * we drop them. */			if (tty->flip.count >= TTY_FLIPBUF_SIZE) {				tty_flip_buffer_push(tty);			}			tty_insert_flip_char(tty, data[i], 0);		}		tty_flip_buffer_push(tty);	}	if (acm->throttle) {		memmove(data, data + i, urb->actual_length - i);		urb->actual_length -= i;		return;	}	urb->actual_length = 0;	urb->dev = acm->dev;	if (usb_submit_urb(urb))		dbg("failed resubmitting read urb");}
开发者ID:liexusong,项目名称:Linux-2.4.16,代码行数:36,


示例7: acm_rx_tasklet

static void acm_rx_tasklet(unsigned long _acm){	struct acm *acm = (void *)_acm;	struct acm_rb *buf;	struct tty_struct *tty = acm->tty;	struct acm_ru *rcv;	unsigned long flags;	unsigned char throttled;	dbg("Entering acm_rx_tasklet");	if (!ACM_READY(acm))	{		dbg("acm_rx_tasklet: ACM not ready");		return;	}	spin_lock_irqsave(&acm->throttle_lock, flags);	throttled = acm->throttle;	spin_unlock_irqrestore(&acm->throttle_lock, flags);	if (throttled)	{		dbg("acm_rx_tasklet: throttled");		return;	}next_buffer:	spin_lock_irqsave(&acm->read_lock, flags);	if (list_empty(&acm->filled_read_bufs)) {		spin_unlock_irqrestore(&acm->read_lock, flags);		goto urbs;	}	buf = list_entry(acm->filled_read_bufs.next,			 struct acm_rb, list);	list_del(&buf->list);	spin_unlock_irqrestore(&acm->read_lock, flags);	dbg("acm_rx_tasklet: procesing buf 0x%p, size = %d", buf, buf->size);	tty_buffer_request_room(tty, buf->size);	spin_lock_irqsave(&acm->throttle_lock, flags);	throttled = acm->throttle;	spin_unlock_irqrestore(&acm->throttle_lock, flags);	if (!throttled)		tty_insert_flip_string(tty, buf->base, buf->size);	tty_flip_buffer_push(tty);	if (throttled) {		dbg("Throttling noticed");		spin_lock_irqsave(&acm->read_lock, flags);		list_add(&buf->list, &acm->filled_read_bufs);		spin_unlock_irqrestore(&acm->read_lock, flags);		return;	}	spin_lock_irqsave(&acm->read_lock, flags);	list_add(&buf->list, &acm->spare_read_bufs);	spin_unlock_irqrestore(&acm->read_lock, flags);	goto next_buffer;urbs:	while (!list_empty(&acm->spare_read_bufs)) {		spin_lock_irqsave(&acm->read_lock, flags);		if (list_empty(&acm->spare_read_urbs)) {			acm->processing = 0;			spin_unlock_irqrestore(&acm->read_lock, flags);			return;		}		rcv = list_entry(acm->spare_read_urbs.next,				 struct acm_ru, list);		list_del(&rcv->list);		spin_unlock_irqrestore(&acm->read_lock, flags);		buf = list_entry(acm->spare_read_bufs.next,				 struct acm_rb, list);		list_del(&buf->list);		rcv->buffer = buf;		usb_fill_bulk_urb(rcv->urb, acm->dev,				  acm->rx_endpoint,				  buf->base,				  acm->readsize,				  acm_read_bulk, rcv);		rcv->urb->transfer_dma = buf->dma;		rcv->urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;		/* This shouldn't kill the driver as unsuccessful URBs are returned to the		   free-urbs-pool and resubmited ASAP */		spin_lock_irqsave(&acm->read_lock, flags);		if (acm->susp_count || usb_submit_urb(rcv->urb, GFP_ATOMIC) < 0) {			list_add(&buf->list, &acm->spare_read_bufs);			list_add(&rcv->list, &acm->spare_read_urbs);			acm->processing = 0;			spin_unlock_irqrestore(&acm->read_lock, flags);			return;		} else {			spin_unlock_irqrestore(&acm->read_lock, flags);			dbg("acm_rx_tasklet: sending urb 0x%p, rcv 0x%p, buf 0x%p", rcv->urb, rcv, buf);		}//.........这里部分代码省略.........
开发者ID:IgnasD,项目名称:Tomato-RAF,代码行数:101,


示例8: acm_ctrl_irq

/* control interface reports status changes with "interrupt" transfers */static void acm_ctrl_irq(struct urb *urb){	struct acm *acm = urb->context;	struct usb_cdc_notification *dr = urb->transfer_buffer;	unsigned char *data;	int newctrl;	int retval;	int status = urb->status;	switch (status) {	case 0:		/* success */		break;	case -ECONNRESET:	case -ENOENT:	case -ESHUTDOWN:		/* this urb is terminated, clean up */		dbg("%s - urb shutting down with status: %d", __FUNCTION__, status);		return;	default:		dbg("%s - nonzero urb status received: %d", __FUNCTION__, status);		goto exit;	}	if (!ACM_READY(acm))		goto exit;	data = (unsigned char *)(dr + 1);	switch (dr->bNotificationType) {		case USB_CDC_NOTIFY_NETWORK_CONNECTION:			dbg("%s network", dr->wValue ? "connected to" : "disconnected from");			break;		case USB_CDC_NOTIFY_SERIAL_STATE:			newctrl = le16_to_cpu(get_unaligned((__le16 *) data));			if (acm->tty && !acm->clocal && (acm->ctrlin & ~newctrl & ACM_CTRL_DCD)) {				dbg("calling hangup");				tty_hangup(acm->tty);			}			acm->ctrlin = newctrl;			dbg("input control lines: dcd%c dsr%c break%c ring%c framing%c parity%c overrun%c",				acm->ctrlin & ACM_CTRL_DCD ? '+' : '-',	acm->ctrlin & ACM_CTRL_DSR ? '+' : '-',				acm->ctrlin & ACM_CTRL_BRK ? '+' : '-',	acm->ctrlin & ACM_CTRL_RI  ? '+' : '-',				acm->ctrlin & ACM_CTRL_FRAMING ? '+' : '-',	acm->ctrlin & ACM_CTRL_PARITY ? '+' : '-',				acm->ctrlin & ACM_CTRL_OVERRUN ? '+' : '-');			break;		default:			dbg("unknown notification %d received: index %d len %d data0 %d data1 %d",				dr->bNotificationType, dr->wIndex,				dr->wLength, data[0], data[1]);			break;	}exit:	usb_mark_last_busy(acm->dev);	retval = usb_submit_urb (urb, GFP_ATOMIC);	if (retval)		err ("%s - usb_submit_urb failed with result %d",		     __FUNCTION__, retval);}
开发者ID:IgnasD,项目名称:Tomato-RAF,代码行数:68,


示例9: acm_rx_tasklet

static void acm_rx_tasklet(unsigned long _acm){	struct acm *acm = (void *)_acm;	struct acm_rb *buf;	struct tty_struct *tty = acm->tty;	struct acm_ru *rcv;	//unsigned long flags;	int i = 0;	dbg("Entering acm_rx_tasklet");	if (!ACM_READY(acm) || acm->throttle)		return;next_buffer:	spin_lock(&acm->read_lock);	if (list_empty(&acm->filled_read_bufs)) {		spin_unlock(&acm->read_lock);		goto urbs;	}	buf = list_entry(acm->filled_read_bufs.next,			 struct acm_rb, list);	list_del(&buf->list);	spin_unlock(&acm->read_lock);	dbg("acm_rx_tasklet: procesing buf 0x%p, size = %d/n", buf, buf->size);	tty_buffer_request_room(tty, buf->size);	if (!acm->throttle)		tty_insert_flip_string(tty, buf->base, buf->size);	tty_flip_buffer_push(tty);	spin_lock(&acm->throttle_lock);	if (acm->throttle) {		dbg("Throtteling noticed");		memmove(buf->base, buf->base + i, buf->size - i);		buf->size -= i;		spin_unlock(&acm->throttle_lock);		spin_lock(&acm->read_lock);		list_add(&buf->list, &acm->filled_read_bufs);		spin_unlock(&acm->read_lock);		return;	}	spin_unlock(&acm->throttle_lock);	spin_lock(&acm->read_lock);	list_add(&buf->list, &acm->spare_read_bufs);	spin_unlock(&acm->read_lock);	goto next_buffer;urbs:	while (!list_empty(&acm->spare_read_bufs)) {		spin_lock(&acm->read_lock);		if (list_empty(&acm->spare_read_urbs)) {			spin_unlock(&acm->read_lock);			return;		}		rcv = list_entry(acm->spare_read_urbs.next,				 struct acm_ru, list);		list_del(&rcv->list);		spin_unlock(&acm->read_lock);		buf = list_entry(acm->spare_read_bufs.next,				 struct acm_rb, list);		list_del(&buf->list);		rcv->buffer = buf;		usb_fill_bulk_urb(rcv->urb, acm->dev,				  acm->rx_endpoint,				  buf->base,				  acm->readsize,				  acm_read_bulk, rcv);		rcv->urb->transfer_dma = buf->dma;		rcv->urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;		dbg("acm_rx_tasklet: sending urb 0x%p, rcv 0x%p, buf 0x%p/n", rcv->urb, rcv, buf);		/* This shouldn't kill the driver as unsuccessful URBs are returned to the		   free-urbs-pool and resubmited ASAP */		if (usb_submit_urb(rcv->urb, GFP_ATOMIC) < 0) {			list_add(&buf->list, &acm->spare_read_bufs);			spin_lock(&acm->read_lock);			list_add(&rcv->list, &acm->spare_read_urbs);			spin_unlock(&acm->read_lock);			return;		}	}}
开发者ID:BackupTheBerlios,项目名称:arp2-svn,代码行数:88,


示例10: acm_ctrl_irq

/* control interface reports status changes with "interrupt" transfers */static void acm_ctrl_irq(struct urb *urb, struct pt_regs *regs){	struct acm *acm = urb->context;	struct usb_ctrlrequest *dr = urb->transfer_buffer;	unsigned char *data = (unsigned char *)(dr + 1);	int newctrl;	int status;	switch (urb->status) {	case 0:		/* success */		break;	case -ECONNRESET:	case -ENOENT:	case -ESHUTDOWN:		/* this urb is terminated, clean up */		dbg("%s - urb shutting down with status: %d", __FUNCTION__, urb->status);		return;	default:		dbg("%s - nonzero urb status received: %d", __FUNCTION__, urb->status);		goto exit;	}	if (!ACM_READY(acm))		goto exit;	switch (dr->bRequest) {		case ACM_IRQ_NETWORK:			dbg("%s network", dr->wValue ? "connected to" : "disconnected from");			break;		case ACM_IRQ_LINE_STATE:			newctrl = le16_to_cpup((__u16 *) data);			if (acm->tty && !acm->clocal && (acm->ctrlin & ~newctrl & ACM_CTRL_DCD)) {				dbg("calling hangup");				tty_hangup(acm->tty);			}			acm->ctrlin = newctrl;			dbg("input control lines: dcd%c dsr%c break%c ring%c framing%c parity%c overrun%c",				acm->ctrlin & ACM_CTRL_DCD ? '+' : '-',	acm->ctrlin & ACM_CTRL_DSR ? '+' : '-',				acm->ctrlin & ACM_CTRL_BRK ? '+' : '-',	acm->ctrlin & ACM_CTRL_RI  ? '+' : '-',				acm->ctrlin & ACM_CTRL_FRAMING ? '+' : '-',	acm->ctrlin & ACM_CTRL_PARITY ? '+' : '-',				acm->ctrlin & ACM_CTRL_OVERRUN ? '+' : '-');			break;		default:			dbg("unknown control event received: request %d index %d len %d data0 %d data1 %d",				dr->bRequest, dr->wIndex, dr->wLength, data[0], data[1]);			break;	}exit:	status = usb_submit_urb (urb, GFP_ATOMIC);	if (status)		err ("%s - usb_submit_urb failed with result %d",		     __FUNCTION__, status);}
开发者ID:iPodLinux,项目名称:linux-2.6.7-ipod,代码行数:64,



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


C++ ACPI_ADD_PTR函数代码示例
C++ ACL_VSTREAM_SOCK函数代码示例
51自学网自学EXCEL、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。
京ICP备13026421号-1