自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(17)
  • 资源 (1)
  • 收藏
  • 关注

原创 PCI MSI MSI-X学习笔记

MSI 出现于PCI2.2中, PCI 3.0中允许针对每个中断设置掩码MSI-X出现于PCI3.0中,相对MSI,每个设备允许有更多的中断,每个中断都可以独立配置 基本功能设备通过向某个特定的地址写入来引发中断  与传统基于pin的PCI中断相比较:1.传统PCI中断需要在设备之间共享, MSI MSI-X不需要共享2.传统PCI中断会在设备将数据写入内存之前引发

2013-08-21 21:24:07 2202

原创 linux-3.4.58 UIO笔记

UIO初始化 static int uio_major_init(void){ static const char name[] = "uio"; struct cdev *cdev = NULL; dev_t uio_dev = 0; int result;系统分配主设备号和次设备号 result = alloc_chrdev_region(&uio_dev,

2013-08-18 11:58:03 715

原创 USB hub 分析

HUB的驱动注册static int __init usb_init(void)中调用 retval = usb_hub_init();int usb_hub_init(void){向USB总线注册HUB的驱动程序 if (usb_register(&hub_driver)   printk(KERN_ERR "%s: can't register hub driver\n

2013-08-18 10:46:26 735

原创 USB uhci主机控制器初始化分析

PCI检测到USB主机控制器后会进行驱动的匹配usb_hcd_pci_probe函数进行设备与驱动的匹配,并执行初始化动作创建USB_HCD结构 hcd = usb_create_hcd(driver, &dev->dev, pci_name(dev)); if (!hcd) {  retval = -ENOMEM;  goto disable_pci; } if

2013-08-18 10:45:35 1012

原创 二级指针操作链表的小技巧

内核中register_filesystem函数  struct file_system_type ** p;  p = find_filesystem(fs->name, strlen(fs->name));返回的是最后一个节点的next指针的地址 if (*p)                                *p存在说明不是最后一个节点。  res

2013-01-29 15:20:09 463

原创 LINUX 2.6.37内存管理 SLAB分析之(3)SLAB对象分配与释放

static int cache_grow(struct kmem_cache *cachep,        gfp_t flags, int nodeid, void *objp)当SLAB不够时用于分配新的SLAB。    offset = l3->colour_next;    l3->colour_next++;    if (l3->colour_next >= c

2013-01-28 10:56:58 5142

原创 LINUX 2.6.37内存管理 SLAB分析之(2)SLAB缓冲创建与销毁

创建:kmem_cache_create函数:    if (!name || in_interrupt() || (size         size > KMALLOC_MAX_SIZE) {        printk(KERN_ERR "%s: Early error in slab %s\n", __func__,                name);

2013-01-28 10:56:18 431

原创 LINUX 2.6.37内存管理 SLAB分析之(1)SLAB初始化

入口函数:kmem_cache_init, SLOB,SLUB均有提供相同函数名的函数作为初始化入口。    for (i = 0; i         kmem_list3_init(&initkmem_list3[i]);        if (i             cache_cache.nodelists[i] = NULL;    }    根据内存结点的数

2013-01-28 10:55:35 552

原创 GCC文档中比较大小的宏定义

#define max(a,b) ((a) > (b) ? (a) : (b))But this definition computes either a or b twice, with bad results if the operand has sideeffects. In GNU C, if you know the type of the operands (here take

2013-01-28 10:36:44 883

原创 元字符

下表是元字符及其在正则表达式上下文中的行为的一个完整列表:         字符   描述       \   将下一个字符标记为一个特殊字符、或一个原义字符、或一个   向后引用、或一个八进制转义符。例如,'n'   匹配字符   "n"。'\n'   匹配一个换行符。序列   '\\'   匹配   "\"   而   "\("   则匹配   "("。      ^

2013-01-28 10:35:41 409

原创 sed 实现cat -n

#!/usr/bin/sed -nf          # Prime the pump on the first line  pattern space中读入一行     x  首先是交换指令,将hold space和pattern space的内容互换     /^$/ s/^.*$/1/     判断pattern space是否为空,如果刚开始运行则前面hold

2013-01-28 10:34:39 480

原创 sed center line

#!/usr/bin/sed -f          # Put 80 spaces in the buffer     1 {       x       s/^$/          /       s/^.*$/&&&&&&&&/       x     }     1为地址,如果是第一行,则在hold space中保存80个空格     # del

2013-01-28 10:33:17 307

原创 C++ specialization.txt

explicit specialization 也称显式特化,全特化,显式具体化使用明确的类型来代替模板中的类型参数函数:函数在全局则可以全特化,在普通类(非模板类)内部则不能, 例如templateT abc(T &a, U& b){    std::cout    return a;}templatechar abc(char &a, int &b)

2013-01-28 10:30:19 328

原创 ELF动态链接

ELF动态链接 一.链接器ld-linux.so.2链接器在.interp section中动态库运行时查找动态库的顺序:1 (ELF only).dynamic 中的RPATH,  编译时使用 -Wl,-rpath=指定,例如-Wl,-rpath=. 程序执行时会在当前目录下寻找动态库。-Wl,-rpath=支持环境变量,如export MYDIR=/mnt; -Wl,-rp

2013-01-28 10:29:27 358

原创 C++ 对象内存分布

objdump -t test 64位系统上的输出.text     00000000004006c0 l    d  .text          0000000000000000              .text   代码段。.rodata   0000000000400b40 l    d  .rodata        0000000000000000

2013-01-28 10:28:40 467

原创 3.2-module分析

/* This is where the real work happens */SYSCALL_DEFINE3(init_module, void __user *, umod,  unsigned long, len, const char __user *, uargs){ struct module *mod; int ret = 0; /* Must have p

2013-01-28 10:27:49 518

原创 Infecting loadable kernel modules 笔记

phrack 68期 Infecting loadable kernel modules 笔记源文章:http://www.phrack.org/issues.html?issue=68&id=11#article一。ELF文件格式与内核模块链接机制1.对于内核模块来说,主要包括了ELF格式中的三个部分(按文件中的存储顺序):ELF header, sections, sectio

2013-01-28 10:26:19 621

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除