- 博客(16)
- 资源 (7)
- 收藏
- 关注
原创 Android ADB原理(2)---ADB driver
ADB能工作,是因为有一个USB Gadget driver,所以host端才能连接到device。Gadget driver是device作为USB设备时候(而不是USB host时候)所使用的driver。看gingerbread的kernel code。kernel/dri
2011-07-10 11:19:28
232
原创 Android USB Storage原理(1)
当连上USB线后,从status bar上面,可以选择打开或者关闭USB Storage。代码在framework/base/packages/systemui/src/com/android/systemui/usbStorageManager.enableUsbMassSto
2011-07-09 23:59:24
382
原创 Android ADB原理(1)---ADB enable/disable
当用户选择“Settings”->"Applictions"->"devleopment"->"USB Debugging"时1. call: Settings.Secure.putInt(getContentResolver(), Settings.Secure.ADB_ENA
2011-07-09 22:50:00
8482
2
原创 Linux TTY设备驱动程序原理
如何写TTY设备驱动程序可以参考Linux Device Driver的第18章和例子程序tiny_tty.c,这里主要分析驱动程序调用的kernel API后面的细节.驱动程序主要做3件事:struct tty_driver *alloc_tty_driver(int lines)int tty_register_driver(struct tty_driver *driver)
2008-08-05 15:54:00
5226
1
原创 Linux网络协议栈(三)--如何写基本的网络驱动程序
Linux Device Driver(3rd version)的第17章已经解释的很详细了,大家可以参考,当然,在2.6.24之后的内核中,使用了N-NAPI,所以书中第17章的程序snull是无法在2.6.24内核中编译通过的,下面是我根据2.6.24内核所作的patch:--- /home/heyunqi/examples/snull/snull.c 2005-02-01 04:31:02.
2008-08-05 10:19:00
1877
2
原创 Linux网络协议栈(二)--数据链路层数据的接收与发送
2.1 数据的接收数据的接收是通过net_rx_action进行的。这里简单描述一下使用NAPI方式的驱动程序的接收方式,没有使用NAPI的驱动,实际上系统里面也为其模拟了一个NAPI实体,所以其实是一样的。驱动程序收到数据包之后会调用,netif_rx_schedule,它的目的就是使软中断net_rx_action能够被执行。net_rx_action主要工作就是调用
2008-07-17 15:26:00
4812
1
原创 Linux网络协议栈(一)-网络系统初始化
1.1 Overviewsocket.c里面有:core_initcall(sock_init); /* early initcall */因此在系统启动的时候,do_basic_setup(main.c)---->do_initcalls(main.c)会调用sock_init。同理在af_init.c中的fs_initcall(inet_init)导致inet_init在
2008-07-16 14:29:00
1635
原创 Linux网络协议栈(0)
最近想写有关Linux网络协议栈的文章,好久没有接触这一块了,再不复习一下,恐怕以后就全忘记了。曾经看过一本The Linux Networking Architecture,尽管说的是2.4内核的,不过还是挺有参考价值的。这次看的是2.6.24的代码。准备总结下列内容:1 网络子系统的初始化过程2 如何写基本的网络驱动程序3 数据链路层代码分析4 网络层代码分析5 传输层代码分析6 SOCKET
2008-07-15 16:02:00
716
原创 2.6 kernel preemption schedule
User-space preemption can occur· When returning to user-space from a system call· When returning to user-space from an interrupt handlerKernel-space preemption can occur·
2008-06-02 15:30:00
420
原创 Linux同步和并行
Mutex and semopareDECLARE_SEMAPHORE_GENERIC(name, count)static DECLARE_MUTEX(name);sema_init(sem, count);init_MUTEX(sem);init_MUTEX_LOCKED(struct semaphore *)down_interruptible(struct sema
2008-05-29 16:21:00
378
原创 Linux网络驱动程序howto
1.in module_init dev->your_netdev=alloc_netdev(sizeof(struct your_priv),intfname,your_setup);//in future, you can get your_priv by netdev_priv(your_netdev) your_setup function will called befo
2008-05-22 16:25:00
360
原创 Qtopia Phone体系架构
Qtopia Telephony System Overview DialerControl• The DialerControl class provides a convenient interface to the phone call manager. • Application should use DialerControl inst
2007-11-22 12:31:00
652
原创 说说subsys_initcall
在linux内核代码里, 到处充满了subsys_initcall,这个调用是用来干吗的呢?有人回答是系统启动时候用来初始化某些系统的,具体怎么初始化的呢,说起来还是有点复杂。以2.6.21内核作为例子。在linux/init.h里,有这样一段代码:#define pure_initcall(fn) __define_initcall("0",fn,1)#define core_i
2007-11-21 22:30:00
8743
3
原创 some Linux kernel study resouce
Books:Linux Device Drivers, 3rd edition,Linux Kernel Development, 2nd EditionUnderstanding the Linux Kernel, 3rd edition,website you should check:http://lwn.netThe weekly digest off all Linux an
2007-11-21 21:30:00
681
原创 UCT IMS Client Source Code Analysis
UCT IMS Client Source Code AnalysisOverviewIt is an IMS user agent based on osip/eXsip library. The source code the document analyzes is uctimsclient1.0.6• Feature list:– AKAv1 an
2007-11-19 13:59:00
2036
原创 osipe Xosip source code analysis
Osip/eXosip Source Code AnalysisThis analysis s based on libosip2-2.2.3 and libeXosip2-2.2.31 osip Overview1.1 How to use osipcall osip_init to init the osip librarycreate transport layer to
2007-11-19 13:47:00
1258
Programming Ruby - The Pragmatic Programmer's Guide
2009-10-31
Professional Linux Kernel Architecture
2009-10-31
Manning.Flexible.Rails.Flex.3.on.Rails.2
2009-10-31
Virtualization with VMware ESX Server
2009-10-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人