社区
Linux_Kernel
帖子详情
谁有“零拷贝”技术有资料,最好有实例或是现成的代码!
szclm
2004-04-16 09:58:39
如题
...全文
66
5
打赏
收藏
谁有“零拷贝”技术有资料,最好有实例或是现成的代码!
如题
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qiansen
2004-04-22
打赏
举报
回复
http://www.hacker.com.cn/article/list.asp?id=3370
Microsoft
2004-04-19
打赏
举报
回复
//led_int_chdrv.c
#include <linux/malloc.h>
#include <linux/fs.h>
#include <linux/module.h>
#include <asm/segment.h>
#include <unistd.h>
typedef struct {
unsigned int orig_mod; //IOPMOD Register
unsigned int orig_con; //IOPCON Register
unsigned int orig_dbw; //EXTDBWTH Register
unsigned int count;
} led_demo_driver_t;
#define EXTDBWTH *(unsigned int *)0x3FF3010
#define IOPMOD *(unsigned int *)0x3FF5000
#define IOPCON *(unsigned int *)0x3FF5004
#define LED_CHDRV_MAJOR 111
char LED_INT_CHDRV_NAME[] = "LED_Int_DemoDrv";
void led_delay()
{
unsigned int i;
for(i = 0; i < 500000; ++i) ;
}
void led_interrupt( int irq, void *dev_id, struct pt_regs *regs )
{
led_demo_driver_t *dev = (led_demo_driver_t *)dev_id;
dev->count++;
printk("irq %d dev->PC = %08x \n",irq , dev->count++);//for debug interrupt
}
int led_chdev_open( struct inode *inode, struct file *file )
{
led_demo_driver_t *dev;
int flags;
dev = (led_demo_driver_t *)kmalloc(sizeof(led_demo_driver_t), GFP_KERNEL);
if(dev == NULL)
{
return -ENOMEM;
}
dev->orig_mod = IOPMOD;
dev->orig_con = IOPCON;
dev->orig_dbw = EXTDBWTH;
EXTDBWTH |= 0x0FF00000;
led_delay();
IOPMOD &= 0x7FEFF;
led_delay();
IOPCON &= 0xFFFFFFE0;
led_delay();
IOPCON |= 0x1C; //reference s3c4510 spec. page 12-4 about external irq setting
led_delay();
file->private_data = dev;
led_delay();
dev->count = 0x00;
led_delay();
save_flags_cli(flags);
if( request_irq( 0, led_interrupt, SA_INTERRUPT, "led", dev ))
{
printk("kernel: request_irq error!\n");
}
restore_flags(flags);
return 0;
}
void led_chdev_release( struct inode *inode, struct file *file )
{
led_demo_driver_t *dev = (led_demo_driver_t *)file->private_data;
int flags;
save_flags_cli(flags);
free_irq(0, dev);
if(dev) {
//
IOPMOD = dev->orig_mod;
IOPCON = dev->orig_con;
EXTDBWTH = dev->orig_dbw;
kfree(dev);
}
restore_flags(flags);
}
static struct file_operations led_chdrv_fops = {
NULL, /* lseek */
NULL, /* read */
NULL, /* write */
NULL, /* readdir */
NULL, /* select */
NULL, /* ioctl */
NULL, /* mmap */
led_chdev_open, /* open */
led_chdev_release /* release */
};
int led_init()
{
if( register_chrdev(LED_CHDRV_MAJOR, LED_INT_CHDRV_NAME, &led_chdrv_fops) )
{
printk("kernel: %s: Unable to register character device\n", LED_INT_CHDRV_NAME); return -EIO;
}
return 0;
}
此程式齣自
"嵌入式微電腦繫統實習ARM與LINUX",鄭慕德 編著,全華科技圖書股份有限公司
CoolQ
2004-04-16
打赏
举报
回复
http://www.nsfocus.net/index.php?act=sec_doc&do=view&doc_id=880&keyword=%C1%E3%BF%BD%B1%B4
具体是要作驱动的,一个驱动一个样,所以具体实现不通用。
szclm
2004-04-16
打赏
举报
回复
谢谢~
chairou
2004-04-16
打赏
举报
回复
找COOLQ吧,他对IDS有研究.这种东西还想要源码,那别人怎么吃饭啊.
消息队列的网络模型详解:IO多路复用、Reactor模型、
零拷贝
特性RabbitMQKafkaRocketMQPulsar语言ErlangJavaJavaJava网络模型ActorReactorReactorReactorIO多路复用epollepollepoll
零拷贝
无有有有并发模型轻量级进程线程池线程池线程池协议AMQP自定义自定义自定义。
掌握Python中的深拷贝与浅拷贝
技术
当我们处理Python中的复杂数据结构时,如何高效地复制数据是一个常见的问题。Python内置的copy模块为此提供了解决方案,支持浅拷贝(shallow copy)和深拷贝(deep copy)。本章节将对copy模块进行基本介绍,为后续章节探讨浅拷贝与深拷贝的不同行为及应用场景打下基础。在Python中,拷贝是一种创建对象副本的
技术
。拷贝分为浅拷贝和深拷贝,它们在创建副本时的行为不同。浅拷贝(shallow copy)指的是创建一个新对象,但是新对象的元素是原对象元素的引用,而非其值。
如何实现一个深浅拷贝
把深浅拷贝单独作为一讲来专门讲解,是因为在 JavaScript 的编程中经常需要对数据进行复制,什么时候用深拷贝、什么时候用浅拷贝,是开发过程中需要思考的;同时深浅拷贝也是前端面试中比较高频的题目。 因此,深入学习这部分知识有助于提高手写 JS 的能力,以及对一些边界特殊情况的深入思考能力,这一讲会结合最基础但是又容易写不好的的题目来帮助提升。
内存优化:从堆分配到
零拷贝
的终极重构
本文深入探讨了C++高性能开发中的内存优化
技术
。首先分析了堆内存分配的隐藏成本与内存碎片化问题,介绍了Valgrind等诊断工具的使用。重点讲解了内存池预分配
技术
的实现原理与线程安全设计,通过对象池示例展示了如何减少系统调用开销。在智能指针优化方面,对比了std::make_shared与传统构造方式的性能差异,解析了控制块内存布局。文章还涉及
零拷贝
数据传输与自定义分配器设计等进阶内容,为开发者提供了一套完整的内存优化方法论,帮助解决高频调用场景下的性能瓶颈问题。
自定义对象深拷贝的几种办法(deepcopy,C#)
目录 1. 前提 2.通过ICloneable接口 3.自定义拷贝接口 4.通过拷贝序列化后的二进制(Binary Serialization) 5.使用XML对象序列化 6.使用拷贝构造函数 7.小结 卸载前面,先来一句装逼文,原文如下: The maturity of a software engineer is determined by many factors such as knowledge of algorithms, analytical thinking, big-pi
Linux_Kernel
4,466
社区成员
17,461
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章