- 博客(23)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 博通BCM575系列 RDMA 网卡驱动 bnxt_re 分析(一)
整个BCM系列驱动分成以太网部分(bnxt_en.ko)和RDMA部分(bnxt_re.ko), 两个模块之间通过内核的auxiliary_bus进行管理.我们主要分析下bnxt_re驱动.
2023-10-25 17:24:19
1792
1
原创 C++ primer第三章作业
3.1节练习3.1:使用恰当的using声明重做1.4.1节(第11页)和2.6.2节(第67页)的练习#ifdef 1#include <iostream>using std::cin;using std::cout;using std::endl;int main(void){ int sum = 0; int i = 50; ...
2018-05-22 12:54:43
260
原创 Unix编程-守护进程
1. 守护进程我是守护进程,我的英文名叫做daemon,传说中的守护神. * 守护进程的生命周期是开机到关机的全过程 * 守护进程是没有控制终端 * 守护进程是其进程组的lead process和会话的首进程,并且守护进程是其所在的进程组和会话的唯一进程 * 守护进程属于孤儿进程组,其父进程init和守护进程不在同一个会话(session)中2.如何编写一个守护进程将文件创建...
2018-04-24 18:37:35
278
原创 bash脚本-求和
开始一个简单的求和脚本,如下所示#!/bin/bashread -p "please: " nucnt=0for ( (i=1;i<=$nu;i++) )do cnt=$(( $cnt + $i ))doneecho $cnt你以为一切真的这么简单,图样图森破 w(゚Д゚)w w(゚Д゚)w格式改来改去还是不对,空格删了又加.结果当然还是.....
2018-04-22 16:27:59
1616
原创 C语言可变参数的实现
x86函数调用惯例在开始说明可变参数的实现之前,我们要说说x86函数调用的一些惯例。函数参数传递是从右向左的入栈顺序,在x86体系中,用户栈是从用户地址空间的顶端开始向下拓展的。va_list可变参数由类型 va_list,一组宏va_start,va_arg,va_end实现。宏的实现根据编译器而有所不同。 下面以VC6.0为例说明va_list的实现。假设一个函数调用fo...
2018-03-03 19:02:16
2483
原创 字典树
1.字典树概论字典树(trie),又称前缀树。是查找树的一种。主要用于大量字符串的存储,查找。搜索引擎通常利用字典树完成用户的搜索提示。与通常的查找树不同,字典树的节点并不存储键(key), 节点的键有节点在树中的位置决定。从树的根开始到某一节点开始遍历可以得到该节点的键。每个节点的键的信息存储在节点间的边中。所有节点的后继的前缀都存储在该节点的键中。根结点与空字符串关联。如下图所示,...
2018-03-01 20:44:54
644
原创 中断下半部-软中断
1 软中断概述软中断是实现中断下半部的一种手段,与2.5以前版本的BH机制不同。软中断可以同时运行在不同的CPU上。1.1 软中断的表示内核中用结构体softirq_action表示一个软中断。软中断是一组静态定义的接口,有32个。但是内核(2.6.34)中只实现了10个。可用的软中断的个数用NR_SOFTIRQ表示,NR_SOFTIRQ=10,软中断的类型用一个枚举体表示。这里需要注意的是,32个
2017-11-19 10:15:04
856
原创 内存分配-slab分配器
1 slab综述1.1 slab分配器产生的背景类似 task_struct mm_struct 等结构被内核中被频繁分配和释放,同时创建和销毁这些结构会产生一定的开销(overhead)。二者累计起来导致大量开销的产生。 Buddy分配器只能分配2^n个页面,对于小于一个页面的内存请求则没有办法。1.2 对象缓存(object cache)Slab的基本思想是使用对象缓...
2017-10-26 22:50:23
837
原创 alloc_pages的实现浅析
alloc_pages的使用struct page *alloc_pages(gft_t gfp, unsigned int order)alloc_pages定义于 inux/gfp.h 中. 该函数用于分配2^order个 连续 的物理页. 分配失败返回NULL。alloc_pages的调用链主功能函数static struct page *get_page_from_freelist(gfp
2017-10-17 21:07:31
2683
原创 Linux内核中内存管理相关的数据结构
本文简要说明几个内核和内存管理有关的结构体。其中 struct page 和 struct zone有较大幅度的删减,主要删减了和NUMA模型SPARSE模型以及内存热插拔相关的域。页框描述符 struct pagepage用于描述一个4KB的物理页。MMU以页为单位管理页表。struct page { unsigned long flags; atomic_t _count;
2017-10-16 22:10:30
480
原创 第8章习题
Exercises8.1 In Figure 8.3, we said that replacing the call to _exit with a call to exit might cause the standard output to be closed and printf to return −1. Modify the program to check whether your i
2017-10-13 21:49:49
354
原创 第五章 标准I/O库 课后练习题
习题5.1 用setvbuf实现setbuf/************************************************************************* > File Name: mysetbuf.c > Author: Dennis > Mail:wdennis051@gmail.com > Created Time: 2
2017-09-22 18:02:01
534
1
原创 关于String类的split方法
关于String类的split方法方法签名 : public String[] split(String regex)关于split方法我一直有个误解,就是我误以为 regex 是用来提取字符串中的字符的,但实际上 regex 是用来匹配分隔符的代码如下 String passage = "hello everyone,I like you"; String regex1 =
2017-02-24 15:46:50
1248
原创 关于BigInteger类
BigInteger类简介 不可变的任意精度的整数。所有操作中,都以二进制补码形式表示 BigInteger(如 Java 的基本整数类型)。BigInteger 提供所有 Java 的基本整数操作符的对应物,并提供 java.lang.Math 的所有相关方法。另外,BigInteger 还提供以下运算:模算术、GCD 计算、质数测试、素数生成、位操作以及一些其他操作。 简单来说 , Big
2016-03-26 00:17:05
551
原创 高效显示Bitmap(一) 高效加载大图
高效显示Bitmap(一) 高效加载大图问题的出现为何需要高效显示Bitmap,或者说为何显示Bitmap容易导致OOM异常 移动设备的内存资源有限,android设备对单个程序至少要求16MB的内存空间, Android Compatibility Definition Document(ACDD)对不同屏幕分辨率和屏幕密度的设备所需要的最小内存作出了阐述,请看下图,应该在这个最低内存限制内优
2016-03-10 00:59:55
2990
原创 1.1简析View和ViewGroup
概论View 和 ViewGroup 是 android 比较重要的概念,因为所有的UI组件都继承自它们,初级阶段我们只要了解一些基本概念就可以了,但是深入学习 android 之后,我们还要学习自定义View,自定义ViewGroup,以及View的事件拦截和分发机制.下面放出一张图,相信大家会对 View 和 ViewGroup 的关系有一个直观的了解:一些概念View : 一个View占
2016-01-19 15:37:39
475
原创 RecycleView和CardView笔记(一)
RecycleView和CardView笔记(一)Recycle和CardView是supportV7包中的组件,也是体现MaterialDesign风格的一组UI组件,这一节我先来讲讲它们的具体用法,先放出一张效果截图:RecycleView的简单用法:1. 如果使用的是AndroidStudio的话,需向build.gradle(注意是app文件夹下的)添加依赖项: dependen
2016-01-17 23:41:10
1700
转载 真正的ViewPager详解
看了一堆的关于ViewPager的文章,我不得不说大部分的文章水平的很水,基本上就是抄来抄去,把别人代码粘贴过来,再随便说几句废话,我想说你要是没弄懂,就发到网上浪费别人时间,不过我还是找到了一篇真正有价值的文章. ViewPager的各种使用方法,都讲的很明白,动画方面,还有图示. 请那些参考别人文章的人,详细的贴出链接.最后链接在此 点击打开链接
2015-12-23 00:13:53
512
原创 AndroidStudio的日常
痛心于windows下的AndoidSudio的启动速度,以及学习linux的目的,将开发环境换到了Ubuntu上,结果打开后发现出现了"can't resolve symbol R"的错误,rebuild了N次Project也没有作用,打开控制台查看发现IDE没有办法打开 sdk/build-tools的aapt,机智的我上stackoverflow上查了查,不查不知道,原来的aapt不能在64
2015-10-12 22:53:46
343
代码的复用和重复的代码之间有什么区别
2016-01-18
TA创建的收藏夹 TA关注的收藏夹
TA关注的人