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

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

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

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

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

示例1: mga_dma_clear

static int mga_dma_clear(DRM_IOCTL_ARGS){	DRM_DEVICE;	drm_mga_private_t *dev_priv = dev->dev_private;	drm_mga_sarea_t *sarea_priv = dev_priv->sarea_priv;	drm_mga_clear_t clear;	LOCK_TEST_WITH_RETURN(dev, filp);	DRM_COPY_FROM_USER_IOCTL(clear, (drm_mga_clear_t __user *) data,				 sizeof(clear));	if (sarea_priv->nbox > MGA_NR_SAREA_CLIPRECTS)		sarea_priv->nbox = MGA_NR_SAREA_CLIPRECTS;	WRAP_TEST_WITH_RETURN(dev_priv);	mga_dma_dispatch_clear(dev, &clear);	/* Make sure we restore the 3D state next time.	 */	dev_priv->sarea_priv->dirty |= MGA_UPLOAD_CONTEXT;	return 0;}
开发者ID:cilynx,项目名称:dd-wrt,代码行数:25,


示例2: i915_mem_destroy_heap

int i915_mem_destroy_heap( DRM_IOCTL_ARGS ){	DRM_DEVICE;	drm_i915_private_t *dev_priv = dev->dev_private;	drm_i915_mem_destroy_heap_t destroyheap;	struct mem_block **heap;	if ( !dev_priv ) {		DRM_ERROR( "%s called with no initialization/n", __FUNCTION__ );		return DRM_ERR(EINVAL);	}	DRM_COPY_FROM_USER_IOCTL( destroyheap, (drm_i915_mem_destroy_heap_t *)data,				  sizeof(destroyheap) );	heap = get_heap( dev_priv, destroyheap.region );	if (!heap) {		DRM_ERROR("get_heap failed");		return DRM_ERR(EFAULT);	}		if (!*heap) {		DRM_ERROR("heap not initialized?");		return DRM_ERR(EFAULT);	}	i915_mem_takedown( heap );	return 0;}
开发者ID:3sOx,项目名称:asuswrt-merlin,代码行数:29,


示例3: i915_irq_emit

/* Needs the lock as it touches the ring. */int i915_irq_emit(DRM_IOCTL_ARGS){	DRM_DEVICE;	drm_i915_private_t *dev_priv = dev->dev_private;	drm_i915_irq_emit_t emit;	int result;	LOCK_TEST_WITH_RETURN(dev, filp);	if (!dev_priv) {		DRM_ERROR("%s called with no initialization/n", __FUNCTION__);		return DRM_ERR(EINVAL);	}	DRM_COPY_FROM_USER_IOCTL(emit, (drm_i915_irq_emit_t __user *) data,				 sizeof(emit));	result = i915_emit_irq(dev);	if (DRM_COPY_TO_USER(emit.irq_seq, &result, sizeof(int))) {		DRM_ERROR("copy_to_user/n");		return DRM_ERR(EFAULT);	}	return 0;}
开发者ID:FatSunHYS,项目名称:OSCourseDesign,代码行数:28,


示例4: sis_ioctl_agp_alloc

int sis_ioctl_agp_alloc( DRM_IOCTL_ARGS ){	DRM_DEVICE;	drm_sis_private_t *dev_priv = dev->dev_private;	drm_sis_mem_t agp;	PMemBlock block;	int retval = 0;   	if (dev_priv == NULL || dev_priv->AGPHeap == NULL)		return DRM_ERR(EINVAL);  	DRM_COPY_FROM_USER_IOCTL(agp, (drm_sis_mem_t *)data, sizeof(agp));  	block = mmAllocMem(dev_priv->AGPHeap, agp.size, 0, 0);	if (block) {		/* TODO */		agp.offset = block->ofs;		agp.free = (unsigned long)block;		if (!add_alloc_set(agp.context, AGP_TYPE, agp.free)) {			DRM_DEBUG("adding to allocation set fails/n");			mmFreeMem((PMemBlock)agp.free);			retval = -1;		}	} else {  		agp.offset = 0;		agp.size = 0;		agp.free = 0;	}	DRM_COPY_TO_USER_IOCTL((drm_sis_mem_t *)data, agp, sizeof(agp));	DRM_DEBUG("alloc agp, size = %d, offset = %d/n", agp.size, agp.offset);	return retval;}
开发者ID:iPodLinux,项目名称:linux-2.6.7-ipod,代码行数:35,


示例5: sis_ioctl_agp_init

int sis_ioctl_agp_init( DRM_IOCTL_ARGS ){	DRM_DEVICE;	drm_sis_private_t *dev_priv = dev->dev_private;	drm_sis_agp_t agp;	if (dev_priv == NULL) {		dev->dev_private = DRM(calloc)(1, sizeof(drm_sis_private_t),		    DRM_MEM_DRIVER);		dev_priv = dev->dev_private;		if (dev_priv == NULL)			return ENOMEM;	}	if (dev_priv->AGPHeap != NULL)		return DRM_ERR(EINVAL);	DRM_COPY_FROM_USER_IOCTL(agp, (drm_sis_agp_t *)data, sizeof(agp));	dev_priv->AGPHeap = mmInit(agp.offset, agp.size);	DRM_DEBUG("offset = %u, size = %u", agp.offset, agp.size);  	return 0;}
开发者ID:iPodLinux,项目名称:linux-2.6.7-ipod,代码行数:25,


示例6: sis_fb_alloc

int sis_fb_alloc( DRM_IOCTL_ARGS ){	drm_sis_mem_t fb;	struct sis_memreq req;	int retval = 0;	DRM_COPY_FROM_USER_IOCTL(fb, (drm_sis_mem_t *)data, sizeof(fb));	req.size = fb.size;	sis_malloc(&req);	if (req.offset) {		/* TODO */		fb.offset = req.offset;		fb.free = req.offset;		if (!add_alloc_set(fb.context, VIDEO_TYPE, fb.free)) {			DRM_DEBUG("adding to allocation set fails/n");			sis_free(req.offset);			retval = DRM_ERR(EINVAL);		}	} else {  		fb.offset = 0;		fb.size = 0;		fb.free = 0;	}	DRM_COPY_TO_USER_IOCTL((drm_sis_mem_t *)data, fb, sizeof(fb));	DRM_DEBUG("alloc fb, size = %d, offset = %ld/n", fb.size, req.offset);	return retval;}
开发者ID:iPodLinux,项目名称:linux-2.6.7-ipod,代码行数:31,


示例7: radeon_mem_free

int radeon_mem_free( DRM_IOCTL_ARGS ){	DRM_DEVICE;	drm_radeon_private_t *dev_priv = dev->dev_private;	drm_radeon_mem_free_t memfree;	struct mem_block *block, **heap;	if ( !dev_priv ) {		DRM_ERROR( "%s called with no initialization/n", __FUNCTION__ );		return DRM_ERR(EINVAL);	}	DRM_COPY_FROM_USER_IOCTL( memfree, (drm_radeon_mem_free_t *)data,				  sizeof(memfree) );	heap = get_heap( dev_priv, memfree.region );	if (!heap || !*heap)		return DRM_ERR(EFAULT);		block = find_block( *heap, memfree.region_offset );	if (!block)		return DRM_ERR(EFAULT);	if (block->pid != DRM_CURRENTPID)		return DRM_ERR(EPERM);	free_block( block );		return 0;}
开发者ID:gvsurenderreddy,项目名称:theqvd,代码行数:29,


示例8: via_decoder_futex

int via_decoder_futex(DRM_IOCTL_ARGS){	DRM_DEVICE;	drm_via_futex_t fx;	volatile int *lock;	drm_via_private_t *dev_priv = (drm_via_private_t *) dev->dev_private;	drm_via_sarea_t *sAPriv = dev_priv->sarea_priv;	int ret = 0;	DRM_DEBUG("%s/n", __FUNCTION__);	DRM_COPY_FROM_USER_IOCTL(fx, (drm_via_futex_t __user *) data,				 sizeof(fx));	if (fx.lock > VIA_NR_XVMC_LOCKS)		return -EFAULT;	lock = (int *)XVMCLOCKPTR(sAPriv, fx.lock);	switch (fx.func) {	case VIA_FUTEX_WAIT:		DRM_WAIT_ON(ret, dev_priv->decoder_queue[fx.lock],			    (fx.ms / 10) * (DRM_HZ / 100), *lock != fx.val);		return ret;	case VIA_FUTEX_WAKE:		DRM_WAKEUP(&(dev_priv->decoder_queue[fx.lock]));		return 0;	}	return 0;}
开发者ID:kzlin129,项目名称:tt-gpl,代码行数:31,


示例9: savage_bci_event_wait

static int savage_bci_event_wait(DRM_IOCTL_ARGS){	DRM_DEVICE;	drm_savage_private_t *dev_priv = dev->dev_private;	drm_savage_event_wait_t event;	unsigned int event_e, hw_e;	unsigned int event_w, hw_w;	DRM_DEBUG("/n");	DRM_COPY_FROM_USER_IOCTL(event, (drm_savage_event_wait_t __user *)data,				 sizeof(event));	UPDATE_EVENT_COUNTER();	if (dev_priv->status_ptr)		hw_e = dev_priv->status_ptr[1] & 0xffff;	else		hw_e = SAVAGE_READ(SAVAGE_STATUS_WORD1) & 0xffff;	hw_w = dev_priv->event_wrap;	if (hw_e > dev_priv->event_counter)		hw_w--; /* hardware hasn't passed the last wrap yet */	event_e = event.count & 0xffff;	event_w = event.count >> 16;	/* Don't need to wait if	 * - event counter wrapped since the event was emitted or	 * - the hardware has advanced up to or over the event to wait for.	 */	if (event_w < hw_w || (event_w == hw_w && event_e <= hw_e) )		return 0;	else		return dev_priv->wait_evnt(dev_priv, event_e);}
开发者ID:Ionic,项目名称:nx-libs,代码行数:34,


示例10: mga_dma_flush

int mga_dma_flush( DRM_IOCTL_ARGS ){	DRM_DEVICE;	drm_mga_private_t *dev_priv = (drm_mga_private_t *)dev->dev_private;	drm_lock_t lock;	LOCK_TEST_WITH_RETURN( dev, filp );	DRM_COPY_FROM_USER_IOCTL( lock, (drm_lock_t *)data, sizeof(lock) );	DRM_DEBUG( "%s%s%s/n",		   (lock.flags & _DRM_LOCK_FLUSH) ?	"flush, " : "",		   (lock.flags & _DRM_LOCK_FLUSH_ALL) ?	"flush all, " : "",		   (lock.flags & _DRM_LOCK_QUIESCENT) ?	"idle, " : "" );	WRAP_WAIT_WITH_RETURN( dev_priv );	if ( lock.flags & (_DRM_LOCK_FLUSH | _DRM_LOCK_FLUSH_ALL) ) {		mga_do_dma_flush( dev_priv );	}	if ( lock.flags & _DRM_LOCK_QUIESCENT ) {#if MGA_DMA_DEBUG		int ret = mga_do_wait_for_idle( dev_priv );		if ( ret < 0 )			DRM_INFO( "%s: -EBUSY/n", __FUNCTION__ );		return ret;#else		return mga_do_wait_for_idle( dev_priv );#endif	} else {		return 0;	}}
开发者ID:aosm,项目名称:X11,代码行数:34,


示例11: radeon_mem_init_heap

int radeon_mem_init_heap( DRM_IOCTL_ARGS ){	DRM_DEVICE;	drm_radeon_private_t *dev_priv = dev->dev_private;	drm_radeon_mem_init_heap_t initheap;	struct mem_block **heap;	if ( !dev_priv ) {		DRM_ERROR( "%s called with no initialization/n", __FUNCTION__ );		return DRM_ERR(EINVAL);	}	DRM_COPY_FROM_USER_IOCTL( initheap, (drm_radeon_mem_init_heap_t *)data,				  sizeof(initheap) );	heap = get_heap( dev_priv, initheap.region );	if (!heap) 		return DRM_ERR(EFAULT);		if (*heap) {		DRM_ERROR("heap already initialized?");		return DRM_ERR(EFAULT);	}			return init_heap( heap, initheap.start, initheap.size );}
开发者ID:gvsurenderreddy,项目名称:theqvd,代码行数:26,


示例12: sis_fb_init

/* Called by the X Server to initialize the FB heap.  Allocations will fail * unless this is called.  Offset is the beginning of the heap from the * framebuffer offset (MaxXFBMem in XFree86). * * Memory layout according to Thomas Winischofer: * |------------------|DDDDDDDDDDDDDDDDDDDDDDDDDDDDD|HHHH|CCCCCCCCCCC| * *    X driver/sisfb                                  HW-   Command- *  framebuffer memory           DRI heap           Cursor   queue */int sis_fb_init( DRM_IOCTL_ARGS ){	DRM_DEVICE;	drm_sis_private_t *dev_priv = dev->dev_private;	drm_sis_fb_t fb;	DRM_COPY_FROM_USER_IOCTL(fb, (drm_sis_fb_t *)data, sizeof(fb));	if (dev_priv == NULL) {		dev->dev_private = DRM(calloc)(1, sizeof(drm_sis_private_t),		    DRM_MEM_DRIVER);		dev_priv = dev->dev_private;		if (dev_priv == NULL)			return ENOMEM;	}	if (dev_priv->FBHeap != NULL)		return DRM_ERR(EINVAL);	dev_priv->FBHeap = mmInit(fb.offset, fb.size);	DRM_DEBUG("offset = %u, size = %u", fb.offset, fb.size);	return 0;}
开发者ID:iPodLinux,项目名称:linux-2.6.7-ipod,代码行数:35,


示例13: via_fb_init

int via_fb_init(DRM_IOCTL_ARGS){	drm_via_fb_t fb;	DRM_COPY_FROM_USER_IOCTL(fb, (drm_via_fb_t *) data, sizeof(fb));	FBHeap = via_mmInit(fb.offset, fb.size);	DRM_DEBUG("offset = %lu, size = %lu", (unsigned long)fb.offset, (unsigned long)fb.size);	return 0;}
开发者ID:Ionic,项目名称:nx-libs,代码行数:12,


示例14: via_agp_init

int via_agp_init(DRM_IOCTL_ARGS){	drm_via_agp_t agp;	DRM_COPY_FROM_USER_IOCTL(agp, (drm_via_agp_t *) data, sizeof(agp));	AgpHeap = via_mmInit(agp.offset, agp.size);	DRM_DEBUG("offset = %lu, size = %lu", (unsigned long)agp.offset, (unsigned long)agp.size);	return 0;}
开发者ID:Ionic,项目名称:nx-libs,代码行数:12,


示例15: via_dma_blit

int via_dma_blit( DRM_IOCTL_ARGS ){	drm_via_dmablit_t xfer;	int err;	DRM_DEVICE;	DRM_COPY_FROM_USER_IOCTL(xfer, (drm_via_dmablit_t __user *)data, sizeof(xfer));	err = via_dmablit(dev, &xfer);	DRM_COPY_TO_USER_IOCTL((void __user *)data, xfer, sizeof(xfer));	return err;}
开发者ID:jobi,项目名称:drm-psb,代码行数:15,


示例16: i915_irq_wait

/* Doesn't need the hardware lock. */int i915_irq_wait(DRM_IOCTL_ARGS){	DRM_DEVICE;	drm_i915_private_t *dev_priv = dev->dev_private;	drm_i915_irq_wait_t irqwait;	if (!dev_priv) {		DRM_ERROR("%s called with no initialization/n", __FUNCTION__);		return DRM_ERR(EINVAL);	}	DRM_COPY_FROM_USER_IOCTL(irqwait, (drm_i915_irq_wait_t __user *) data,				 sizeof(irqwait));	return i915_wait_irq(dev, irqwait.irq_seq);}
开发者ID:FatSunHYS,项目名称:OSCourseDesign,代码行数:18,


示例17: i915_vblank_pipe_set

/* Set the vblank monitor pipe */int i915_vblank_pipe_set(DRM_IOCTL_ARGS){	DRM_DEVICE;	drm_i915_private_t *dev_priv = dev->dev_private;	drm_i915_vblank_pipe_t pipe;	if (!dev_priv) {		DRM_ERROR("%s called with no initialization/n", __FUNCTION__);		return DRM_ERR(EINVAL);	}	DRM_COPY_FROM_USER_IOCTL(pipe, (drm_i915_vblank_pipe_t __user *) data,				 sizeof(pipe));	dev_priv->vblank_pipe = pipe.pipe;	return i915_enable_interrupt (dev);}
开发者ID:FatSunHYS,项目名称:OSCourseDesign,代码行数:19,


示例18: drm_authmagic

int drm_authmagic(DRM_IOCTL_ARGS){	drm_auth_t	   auth;	drm_file_t	   *file;	DRM_DEVICE;	DRM_COPY_FROM_USER_IOCTL(auth, (drm_auth_t *)data, sizeof(auth));	DRM_DEBUG("%u/n", auth.magic);	if ((file = drm_find_file(dev, auth.magic))) {		file->authenticated = 1;		drm_remove_magic(dev, auth.magic);		return 0;	}	return DRM_ERR(EINVAL);}
开发者ID:Ionic,项目名称:nx-libs,代码行数:17,


示例19: sis_fb_free

int sis_fb_free( DRM_IOCTL_ARGS ){	drm_sis_mem_t fb;	int retval = 0;	DRM_COPY_FROM_USER_IOCTL(fb, (drm_sis_mem_t *)data, sizeof(fb));	if (!fb.free)		return DRM_ERR(EINVAL);	if (!del_alloc_set(fb.context, VIDEO_TYPE, fb.free))		retval = DRM_ERR(EINVAL);	sis_free(fb.free);	DRM_DEBUG("free fb, offset = %lu/n", fb.free);	return retval;}
开发者ID:iPodLinux,项目名称:linux-2.6.7-ipod,代码行数:18,


示例20: mga_dma_init

int mga_dma_init( DRM_IOCTL_ARGS ){	DRM_DEVICE;	drm_mga_init_t init;	LOCK_TEST_WITH_RETURN( dev, filp );	DRM_COPY_FROM_USER_IOCTL( init, (drm_mga_init_t *)data, sizeof(init) );	switch ( init.func ) {	case MGA_INIT_DMA:		return mga_do_init_dma( dev, &init );	case MGA_CLEANUP_DMA:		return mga_do_cleanup_dma( dev );	}	return DRM_ERR(EINVAL);}
开发者ID:aosm,项目名称:X11,代码行数:18,


示例21: via_map_init

int via_map_init(DRM_IOCTL_ARGS){	DRM_DEVICE;	drm_via_init_t init;	DRM_DEBUG("%s/n", __FUNCTION__);	DRM_COPY_FROM_USER_IOCTL(init, (drm_via_init_t *) data, sizeof(init));	switch (init.func) {	case VIA_INIT_MAP:		return via_do_init_map(dev, &init);	case VIA_CLEANUP_MAP:		return via_do_cleanup_map(dev);	}	return -EINVAL;}
开发者ID:Ionic,项目名称:nx-libs,代码行数:18,


示例22: mga_dma_iload

static int mga_dma_iload(DRM_IOCTL_ARGS){	DRM_DEVICE;	struct drm_device_dma *dma = dev->dma;	drm_mga_private_t *dev_priv = dev->dev_private;	struct drm_buf *buf;	drm_mga_buf_priv_t *buf_priv;	drm_mga_iload_t iload;	DRM_DEBUG("/n");	LOCK_TEST_WITH_RETURN(dev, filp);	DRM_COPY_FROM_USER_IOCTL(iload, (drm_mga_iload_t __user *) data,				 sizeof(iload));#if 0	if (mga_do_wait_for_idle(dev_priv) < 0) {		if (MGA_DMA_DEBUG)			DRM_INFO("%s: -EBUSY/n", __FUNCTION__);		return DRM_ERR(EBUSY);	}#endif	if (iload.idx < 0 || iload.idx > dma->buf_count)		return DRM_ERR(EINVAL);	buf = dma->buflist[iload.idx];	buf_priv = buf->dev_private;	if (mga_verify_iload(dev_priv, iload.dstorg, iload.length)) {		mga_freelist_put(dev, buf);		return DRM_ERR(EINVAL);	}	WRAP_TEST_WITH_RETURN(dev_priv);	mga_dma_dispatch_iload(dev, buf, iload.dstorg, iload.length);	/* Make sure we restore the 3D state next time.	 */	dev_priv->sarea_priv->dirty |= MGA_UPLOAD_CONTEXT;	return 0;}
开发者ID:cilynx,项目名称:dd-wrt,代码行数:43,


示例23: savage_bci_init

static int savage_bci_init(DRM_IOCTL_ARGS){	DRM_DEVICE;	drm_savage_init_t init;	LOCK_TEST_WITH_RETURN(dev, filp);	DRM_COPY_FROM_USER_IOCTL(init, (drm_savage_init_t __user *)data,				 sizeof(init));	switch (init.func) {	case SAVAGE_INIT_BCI:		return savage_do_init_bci(dev, &init);	case SAVAGE_CLEANUP_BCI:		return savage_do_cleanup_bci(dev);	}	return DRM_ERR(EINVAL);}
开发者ID:Ionic,项目名称:nx-libs,代码行数:19,


示例24: via_dma_blit_sync

intvia_dma_blit_sync( DRM_IOCTL_ARGS ){	drm_via_blitsync_t sync;	int err;	DRM_DEVICE;	DRM_COPY_FROM_USER_IOCTL(sync, (drm_via_blitsync_t *)data, sizeof(sync));		if (sync.engine >= VIA_NUM_BLIT_ENGINES) 		return DRM_ERR(EINVAL);	err = via_dmablit_sync(dev, sync.sync_handle, sync.engine);	if (DRM_ERR(EINTR) == err)		err = DRM_ERR(EAGAIN);	return err;}
开发者ID:jobi,项目名称:drm-psb,代码行数:19,


示例25: savage_bci_event_emit

static int savage_bci_event_emit(DRM_IOCTL_ARGS){	DRM_DEVICE;	drm_savage_private_t *dev_priv = dev->dev_private;	drm_savage_event_emit_t event;	DRM_DEBUG("/n");	LOCK_TEST_WITH_RETURN(dev, filp);	DRM_COPY_FROM_USER_IOCTL(event, (drm_savage_event_emit_t __user *)data,				 sizeof(event));	event.count = savage_bci_emit_event(dev_priv, event.flags);	event.count |= dev_priv->event_wrap << 16;	DRM_COPY_TO_USER_IOCTL(&((drm_savage_event_emit_t __user *)data)->count,			       event.count, sizeof(event.count));	return 0;}
开发者ID:Ionic,项目名称:nx-libs,代码行数:19,


示例26: via_mem_free

int via_mem_free(DRM_IOCTL_ARGS){	drm_via_mem_t mem;	DRM_COPY_FROM_USER_IOCTL(mem, (drm_via_mem_t *) data, sizeof(mem));	switch (mem.type) {	case VIDEO:		if (via_fb_free(&mem) == 0)			return 0;		break;	case AGP:		if (via_agp_free(&mem) == 0)			return 0;		break;	}	return -EFAULT;}
开发者ID:Ionic,项目名称:nx-libs,代码行数:20,


示例27: mga_dma_buffers

int mga_dma_buffers( DRM_IOCTL_ARGS ){	DRM_DEVICE;	drm_device_dma_t *dma = dev->dma;	drm_mga_private_t *dev_priv = (drm_mga_private_t *)dev->dev_private;	drm_dma_t d;	int ret = 0;	LOCK_TEST_WITH_RETURN( dev, filp );	DRM_COPY_FROM_USER_IOCTL( d, (drm_dma_t *)data, sizeof(d) );	/* Please don't send us buffers.	 */	if ( d.send_count != 0 ) {		DRM_ERROR( "Process %d trying to send %d buffers via drmDMA/n",			   DRM_CURRENTPID, d.send_count );		return DRM_ERR(EINVAL);	}	/* We'll send you buffers.	 */	if ( d.request_count < 0 || d.request_count > dma->buf_count ) {		DRM_ERROR( "Process %d trying to get %d buffers (of %d max)/n",			   DRM_CURRENTPID, d.request_count, dma->buf_count );		return DRM_ERR(EINVAL);	}	WRAP_TEST_WITH_RETURN( dev_priv );	d.granted_count = 0;	if ( d.request_count ) {		ret = mga_dma_get_buffers( filp, dev, &d );	}	DRM_COPY_TO_USER_IOCTL( (drm_dma_t *)data, d, sizeof(d) );	return ret;}
开发者ID:aosm,项目名称:X11,代码行数:40,



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


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