• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ pr_vdebug函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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

示例1: gs_chars_in_buffer

static int gs_chars_in_buffer(struct tty_struct *tty)
{
    struct gs_port	*port = tty->driver_data;
    unsigned long	flags;
    int		chars = 0;

    if (!port)
        return 0;
    spin_lock_irqsave(&port->port_lock, flags);
    chars = gs_buf_data_avail(&port->port_write_buf);
    spin_unlock_irqrestore(&port->port_lock, flags);

    pr_vdebug("gs_chars_in_buffer: (%d,%p) chars=%d\n",
              port->port_num, tty, chars);

    return chars;
}
开发者ID:Runner85sx,项目名称:android_kernel_huawei_msm8909,代码行数:17,代码来源:u_serial.c


示例2: gs_put_char

static int gs_put_char(struct tty_struct *tty, unsigned char ch)
{
    struct gs_port	*port = tty->driver_data;
    unsigned long	flags;
    int		status;

    if (!port)
        return 0;
    pr_vdebug("gs_put_char: (%d,%p) char=0x%x, called from %pf\n",
              port->port_num, tty, ch, __builtin_return_address(0));

    spin_lock_irqsave(&port->port_lock, flags);
    status = gs_buf_put(&port->port_write_buf, &ch, 1);
    spin_unlock_irqrestore(&port->port_lock, flags);

    return status;
}
开发者ID:Runner85sx,项目名称:android_kernel_huawei_msm8909,代码行数:17,代码来源:u_serial.c


示例3: gs_write_room

static int gs_write_room(struct tty_struct *tty)
{
	struct gs_port	*port = tty->driver_data;
	unsigned long	flags;
	int		room = 0;
	if(port == NULL)
		return room;
	spin_lock_irqsave(&port->port_lock, flags);
	if (port->port_usb)
		room = gs_buf_space_avail(&port->port_write_buf);
	spin_unlock_irqrestore(&port->port_lock, flags);

	pr_vdebug("gs_write_room: (%d,%p) room=%d\n",
		port->port_num, tty, room);

	return room;
}
开发者ID:NhlalukoG,项目名称:android_kernel_samsung_goyave3g,代码行数:17,代码来源:u_serial.c


示例4: gs_flush_chars

static void gs_flush_chars(struct tty_struct *tty)
{
	struct gs_port	*port = tty->driver_data;
	unsigned long	flags;

#ifdef CONFIG_USB_G_LGE_ANDROID
	if (!port)
		return;
#endif

	pr_vdebug("gs_flush_chars: (%d,%p)\n", port->port_num, tty);

	spin_lock_irqsave(&port->port_lock, flags);
	if (port->port_usb)
		gs_start_tx(port);
	spin_unlock_irqrestore(&port->port_lock, flags);
}
开发者ID:bju2000,项目名称:kernel_lge_msm8994,代码行数:17,代码来源:u_serial.c


示例5: gs_break_ctl

static int gs_break_ctl(struct tty_struct *tty, int duration)
{
	struct gs_port	*port = tty->driver_data;
	int		status = 0;
	struct gserial	*gser;

	pr_vdebug("gs_break_ctl: ttyGS%d, send break (%d) \n",
			port->port_num, duration);

	spin_lock_irq(&port->port_lock);
	gser = port->port_usb;
	if (gser && gser->send_break)
		status = gser->send_break(gser, duration);
	spin_unlock_irq(&port->port_lock);

	return status;
}
开发者ID:AlexShiLucky,项目名称:linux,代码行数:17,代码来源:u_serial.c


示例6: __gs_poll_get_char

/**
 * Gets a character from the usb endpoint under the
 * interrupt context
 *
 * Returns 0 or a negative error number
 */
static int __gs_poll_get_char(struct gs_port *port, char *ch) {
	struct gserial *gs = port->port_usb;
	struct usb_ep *ept = gs->out;
	struct usb_request *usb_req;
	int rv;

	int read_ch = -EINVAL;

	BUG_ON(!ept);

	for (;;) {
		read_ch = gs_poll_pop_buffer();
		if (read_ch >= 0) {
			break; /* got a character, done */
		}

		/**
		 * There is nothing in buffer, start the USB endpoint to
		 * receive something
		 */

		/* Replace complete function to intercept usb read */
		usb_req = gs_alloc_req(ept, ept->maxpacket, GFP_ATOMIC);
		if (!usb_req) {
			pr_err("%s: OOM for read req\n", __func__);
			return -ENOMEM;
		}

		/* Queue request */
		usb_req->length = ept->maxpacket;
		usb_req->complete = gs_poll_read_complete;
		if ((rv = usb_ep_queue(ept, usb_req, GFP_ATOMIC))) {
			pr_err("%s: usb_ep_queue err %d\n", __func__, rv);
			return rv;
		}

		/* Read and free request */
		pr_vdebug("%s: polling for read\n", __func__);
		while ( usb_loop_poll_hw(ept, 1 /*rx*/) );
		gs_free_req(ept, usb_req);
	}

	*ch = read_ch;
	return 0;
}
开发者ID:AndyLavr,项目名称:kgdb-android,代码行数:51,代码来源:u_serial.c


示例7: gs_write

static int gs_write(struct tty_struct *tty, const unsigned char *buf, int count)
{
	struct gs_port	*port = tty->driver_data;
	unsigned long	flags;

	pr_vdebug("gs_write: ttyGS%d (%p) writing %d bytes\n",
			port->port_num, tty, count);

	spin_lock_irqsave(&port->port_lock, flags);
	if (count)
		count = kfifo_in(&port->port_write_buf, buf, count);
	/* treat count == 0 as flush_chars() */
	if (port->port_usb)
		gs_start_tx(port);
	spin_unlock_irqrestore(&port->port_lock, flags);

	return count;
}
开发者ID:AlexShiLucky,项目名称:linux,代码行数:18,代码来源:u_serial.c


示例8: gs_unthrottle

/* undo side effects of setting TTY_THROTTLED */
static void gs_unthrottle(struct tty_struct *tty)
{
	struct gs_port		*port = tty->driver_data;
	unsigned long		flags;

	if(port == NULL)
		return;
	spin_lock_irqsave(&port->port_lock, flags);
	if (port->port_usb) {
		/* Kickstart read queue processing.  We don't do xon/xoff,
		 * rts/cts, or other handshaking with the host, but if the
		 * read queue backs up enough we'll be NAKing OUT packets.
		 */
		tasklet_schedule(&port->push);
		pr_vdebug(PREFIX "%d: unthrottle\n", port->port_num);
	}
	spin_unlock_irqrestore(&port->port_lock, flags);
}
开发者ID:NhlalukoG,项目名称:android_kernel_samsung_goyave3g,代码行数:19,代码来源:u_serial.c


示例9: gs_poll_read_complete

/**
 * gs_poll_read_complete
 */
static void gs_poll_read_complete(struct usb_ep *ep,
		struct usb_request *req) {
	switch (req->status) {
	case 0:
		/* get data */
		console_buf_len = req->actual;
		console_buf_read = 0;
		memcpy(console_buf, req->buf, req->actual);
		console_buf[req->actual] = '\0';
		pr_vdebug("[%s] len = %d\n", console_buf, console_buf_len);
		break;

	default:
		pr_err("%s: unexpected status error, status=%d\n",
				__func__, req->status);
		break;
	}
}
开发者ID:AndyLavr,项目名称:kgdb-android,代码行数:21,代码来源:u_serial.c


示例10: gs_write_room

static int gs_write_room(struct tty_struct *tty)
{
	struct gs_port	*port = tty->driver_data;
	unsigned long	flags;
	/* if usb not connect, return room available;
	   to avoid thread in sleep */
	int		room = WRITE_BUF_SIZE - 1;

	spin_lock_irqsave(&port->port_lock, flags);
	if (port->port_usb)
		room = gs_buf_space_avail(&port->port_write_buf);
	spin_unlock_irqrestore(&port->port_lock, flags);

	pr_vdebug("gs_write_room: (%d,%p) room=%d\n",
		port->port_num, tty, room);

	return room;
}
开发者ID:magnusjjj,项目名称:android_kernel_huawei_rle,代码行数:18,代码来源:u_serial.c


示例11: gserial_disconnect

/**
 * gserial_disconnect - notify TTY I/O glue that USB link is inactive
 * @gser: the function, on which gserial_connect() was called
 * Context: any (usually from irq)
 *
 * This is called to deactivate endpoints and let the TTY layer know
 * that the connection went inactive ... not unlike "hangup".
 *
 * On return, the state is as if gserial_connect() had never been called;
 * there is no active USB I/O on these endpoints.
 */
void gserial_disconnect(struct gserial *gser)
{
	struct gs_port	*port = gser->ioport;
	unsigned long	flags;
	pr_vdebug("%s\n", __func__);

	if (!port)
		return;

	/* tell the TTY glue not to do I/O here any more */
	spin_lock_irqsave(&port->port_lock, flags);

	/* REVISIT as above: how best to track this? */
	port->port_line_coding = gser->port_line_coding;

	port->port_usb = NULL;
	gser->ioport = NULL;
#if 0
	if (port->open_count > 0 || port->openclose) {
		wake_up_interruptible(&port->drain_wait);
		if (port->port_tty)
			tty_hangup(port->port_tty);
	}
#endif
	spin_unlock_irqrestore(&port->port_lock, flags);

	/* disable endpoints, aborting down any active I/O */
	usb_ep_fifo_flush(gser->out);
	usb_ep_fifo_flush(gser->in);
	usb_ep_disable(gser->out);
	gser->out->driver_data = NULL;

	usb_ep_disable(gser->in);
	gser->in->driver_data = NULL;

	/* finally, free any unused/unusable I/O buffers */
	spin_lock_irqsave(&port->port_lock, flags);
	if (port->open_count == 0 && !port->openclose)
		gs_buf_free(&port->port_write_buf);
	gs_free_requests(gser->out, &port->read_pool);
	gs_free_requests(gser->out, &port->read_queue);
	gs_free_requests(gser->in, &port->write_pool);
	spin_unlock_irqrestore(&port->port_lock, flags);
}
开发者ID:morristech,项目名称:Dorimanx-HD2-2.6.32.X,代码行数:55,代码来源:u_serial.c


示例12: gs_write_complete

static void gs_write_complete(struct usb_ep *ep, struct usb_request *req)
{
	struct gs_port	*port = ep->driver_data;
	unsigned long flags;
	pr_vdebug("%s: %d bytes\n", __func__, req->actual);

	spin_lock_irqsave(&port->port_lock, flags);
	list_add(&req->list, &port->write_pool);

	switch (req->status) {
	default:
		/* presumably a transient fault */
		pr_warning("%s: unexpected %s status %d\n",
				__func__, ep->name, req->status);
		/* FALL THROUGH */
	case 0:
		/* normal completion */
		if (port->port_usb)
			gs_start_tx(port);
		break;

	case -ESHUTDOWN:
		/* disconnect */
		printk("%s: ESHUTDOWN\n", __func__);
		break;
	case -ENODEV:
		spin_lock(&port->port_lock);
		printk("%s: ENODEV\n", __func__);
		list_add_tail(&req->list, &port->read_pool);
		/* Implemented handling in future if needed */
		spin_unlock(&port->port_lock);
		break;

		spin_lock(&port->port_lock);
		list_add_tail(&req->list, &port->read_pool);
		printk(KERN_ERR
		"gs_read_complete: unexpected status error, status=%d\n",
			req->status);
		spin_unlock(&port->port_lock);
		/* goto requeue; */
		break;
	}
}
开发者ID:morristech,项目名称:Dorimanx-HD2-2.6.32.X,代码行数:43,代码来源:u_serial.c


示例13: gs_flush_chars

static void gs_flush_chars(struct tty_struct *tty)
{
	struct gs_port	*port = tty->driver_data;
	unsigned long	flags;

	//ALPS00423739
	if(!port)
	{
		printk("ERROR!!! port is closed!! %s, line %d: port = %p\n", __func__, __LINE__, port);
		/*abort immediately after disconnect */
		return;
	}
	//ALPS00423739

	pr_vdebug("gs_flush_chars: (%d,%p)\n", port->port_num, tty);

	spin_lock_irqsave(&port->port_lock, flags);
	if (port->port_usb)
		gs_start_tx(port);
	spin_unlock_irqrestore(&port->port_lock, flags);
}
开发者ID:AudioGod,项目名称:MediaTek-HelioX10-Kernel,代码行数:21,代码来源:u_serial.c


示例14: gserial_cleanup

/**
 * gserial_cleanup - remove TTY-over-USB driver and devices
 * Context: may sleep
 *
 * This is called to free all resources allocated by @gserial_setup().
 * Accordingly, it may need to wait until some open /dev/ files have
 * closed.
 *
 * The caller must have issued @gserial_disconnect() for any ports
 * that had previously been connected, so that there is never any
 * I/O pending when it's called.
 */
void gserial_cleanup(void)
{
	unsigned	i;
	struct gs_port	*port;

    /* don't need to free console tty - port0 */
	if (gs_console_tty_driver)
	    tty_unregister_device(gs_console_tty_driver, 0);

	if (!gs_tty_driver)
		return;

	/* start sysfs and /dev/ttyGS* node removal */
	for (i = 1; i < n_ports; i++)
		tty_unregister_device(gs_tty_driver, i-1);

	for (i = 1; i < n_ports; i++) {
		/* prevent new opens */
		mutex_lock(&ports[i].lock);
		port = ports[i].port;
		ports[i].port = NULL;
		mutex_unlock(&ports[i].lock);

		tasklet_kill(&port->push);

		/* wait for old opens to finish */
		wait_event(port->close_wait, gs_closed(port));

		WARN_ON(port->port_usb != NULL);

		kfree(port);
	}
	n_ports = 0;

	tty_unregister_driver(gs_tty_driver);
	put_tty_driver(gs_tty_driver);
	gs_tty_driver = NULL;

	pr_vdebug("%s: cleaned up ttyGS* support\n", __func__);
}
开发者ID:magnusjjj,项目名称:android_kernel_huawei_rle,代码行数:52,代码来源:u_serial.c


示例15: at_write

static int at_write(struct tty_struct *tty, const unsigned char *buf, int count)
{
    struct gdata_port *port = tty->driver_data;
    int avail;
    struct sk_buff *skb;
    int status;

    pr_vdebug("at_write: ttyGS%d (%p) writing %d bytes\n",
            port->port_num, tty, count);

    avail = test_bit(CH_OPENED, &port->bridge_sts);
    /* if no space, we'll have to setup a notification later to wake up the
     * tty framework when space becomes avaliable
     */
    if (!avail) {
        pr_debug("at_write: avail(0)\n");
        return 0;
    }

#ifdef VERBOSE_DEBUG
    print_hex_dump(KERN_DEBUG, "fromatd:", DUMP_PREFIX_OFFSET, 16, 1, buf, count, 1);
#endif

    skb = alloc_skb(count, GFP_ATOMIC);
    if (!skb) {
        pr_debug("at_write: ENOMEM\n");
        return -ENOMEM;
    }
    memcpy(skb->data, buf, count);
    skb->len = count;
    status = ghsic_data_receive(port, skb, count);
    if (status) {
        pr_debug("at_write: status(%d)\n", status);
        return status;
    }

    pr_debug("at_write: return(%d)\n", count);
    return count;
}
开发者ID:Loller79,项目名称:Solid_Kernel-STOCK-KK-CAF,代码行数:39,代码来源:u_atcmd.c


示例16: gs_write

static int gs_write(struct tty_struct *tty, const unsigned char *buf, int count)
{
	struct gs_port	*port = tty->driver_data;
	unsigned long	flags;
	int		status;

	pr_vdebug("gs_write: ttyGS%d (%p) writing %d bytes\n",
			port->port_num, tty, count);

	spin_lock_irqsave(&port->port_lock, flags);
	if (unlikely(!port->open_count)) {
	    spin_unlock_irqrestore(&port->port_lock, flags);
        return -EINVAL;
    }
	if (unlikely(!port->port_usb || port->is_suspend)) {
	    port->stat_write_not_conn++;
	    spin_unlock_irqrestore(&port->port_lock, flags);
        return -ESHUTDOWN;
    }
	/*
	 * we don't have enough room for some data
	 * may be the host don't start read, so drop the data.
	 * otherwise the printed thread may pending forever.
	 */
	if (!port->line_state_on && list_empty(&port->write_pool)) {
	    port->stat_write_no_mem++;
	    spin_unlock_irqrestore(&port->port_lock, flags);
	    return -ENOMEM;
	}
	if (count)
		count = gs_buf_put(&port->port_write_buf, buf, count);
	/* treat count == 0 as flush_chars() */
	if (port->port_usb)
		status = gs_start_tx(port);/* [false alarm]:fortify disable */
	spin_unlock_irqrestore(&port->port_lock, flags);

	return count;
}
开发者ID:magnusjjj,项目名称:android_kernel_huawei_rle,代码行数:38,代码来源:u_serial.c


示例17: gs_unthrottle

/* undo side effects of setting TTY_THROTTLED */
static void gs_unthrottle(struct tty_struct *tty)
{
	struct gs_port		*port = tty->driver_data;
	unsigned long		flags;

	/*
	 * tty's driver data is set to NULL during port close.  Nothing
	 * to do here.
	 */
	if (!port)
		return;

	spin_lock_irqsave(&port->port_lock, flags);
	if (port->port_usb) {
		/* Kickstart read queue processing.  We don't do xon/xoff,
		 * rts/cts, or other handshaking with the host, but if the
		 * read queue backs up enough we'll be NAKing OUT packets.
		 */
		queue_work(gserial_wq, &port->push);
		pr_vdebug(PREFIX "%d: unthrottle\n", port->port_num);
	}
	spin_unlock_irqrestore(&port->port_lock, flags);
}
开发者ID:laperry1,项目名称:cm_kernel_oneplus_msm8974,代码行数:24,代码来源:u_serial.c


示例18: gs_complete_out

static void gs_complete_out(struct usb_ep *ep, struct usb_request *req)
{
	struct gscons_info *info = &gscons_info;

	switch (req->status) {
	default:
		pr_warn("%s: unexpected %s status %d\n",
			__func__, ep->name, req->status);
		/* fall through */
	case 0:
		/* normal completion */
		spin_lock(&info->con_lock);
		info->req_busy = 0;
		spin_unlock(&info->con_lock);

		wake_up_process(info->console_thread);
		break;
	case -ESHUTDOWN:
		/* disconnect */
		pr_vdebug("%s: %s shutdown\n", __func__, ep->name);
		break;
	}
}
开发者ID:AlexShiLucky,项目名称:linux,代码行数:23,代码来源:u_serial.c


示例19: gs_write

static int gs_write(struct tty_struct *tty, const unsigned char *buf, int count)
{
	struct gs_port	*port = tty->driver_data;
	unsigned long	flags;
	int		status;

#ifdef CONFIG_USB_G_LGE_ANDROID
	if (!port)
		return 0;
#endif

	pr_vdebug("gs_write: ttyGS%d (%p) writing %d bytes\n",
			port->port_num, tty, count);

	spin_lock_irqsave(&port->port_lock, flags);
	if (count)
		count = gs_buf_put(&port->port_write_buf, buf, count);
	/* treat count == 0 as flush_chars() */
	if (port->port_usb)
		status = gs_start_tx(port);
	spin_unlock_irqrestore(&port->port_lock, flags);

	return count;
}
开发者ID:bju2000,项目名称:kernel_lge_msm8994,代码行数:24,代码来源:u_serial.c


示例20: gs_chars_in_buffer

static int gs_chars_in_buffer(struct tty_struct *tty)
{
	struct gs_port	*port = tty->driver_data;
	unsigned long	flags;
	int		chars = 0;

	//ALPS00423739
	if(!port)
	{
		printk("ERROR!!! port is closed!! %s, line %d: port = %p\n", __func__, __LINE__, port);
		/*abort immediately after disconnect */
		return -EINVAL;
	}
	//ALPS00423739

	spin_lock_irqsave(&port->port_lock, flags);
	chars = gs_buf_data_avail(&port->port_write_buf);
	spin_unlock_irqrestore(&port->port_lock, flags);

	pr_vdebug("gs_chars_in_buffer: (%d,%p) chars=%d\n",
		port->port_num, tty, chars);

	return chars;
}
开发者ID:AudioGod,项目名称:MediaTek-HelioX10-Kernel,代码行数:24,代码来源:u_serial.c



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ pr_warn函数代码示例发布时间:2022-05-30
下一篇:
C++ pr_signals_handle函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap