static void skel_write_bulk_callback(struct urb *urb)
{
struct usb_skel *dev;
dev = urb->context; **completion 函数 上下文
/* sync/async unlink faults aren't errors */ 去除链路故障 不是错误
if (urb->status) { **int statues URB 的当前状态
if(!(urb->status == -ENOENT ||
urb->status == -ECONNRESET ||
urb->status == -ESHUTDOWN))
err("%s - nonzero write bulk status received: %d",
__func__, urb->status);
spin_lock(&dev->err_lock);
dev->errors = urb->status;
spin_unlock(&dev->err_lock);
}
/* free up our allocated buffer */ 释放 分配的 内存
usb_buffer_free(urb->dev, urb->transfer_buffer_length,
urb->transfer_buffer, urb->transfer_dma);
up(&dev->limit_sem);
}
usb-skeleton.c 之 12---skel_write_bulk_callback
最新推荐文章于 2021-09-30 14:01:43 发布