原创 THIS_MODULE詳解

轉帖網址: http://blog.csdn.net/a954423389/archive/2010/12/27/6101369.aspx  源碼位置: @ kernel/module.c @ include/linux/module.

原创 Git diff usage

在git提交環節,存在三大部分:working tree, index file, commit 這三大部分中: working tree:就是你所工作在的目錄,每當你在代碼中進行了修改,workingtree的狀態就改變了。 index

原创 Kobject結構體分析

kobject是組成設備device、驅動driver、總線bus、class的基本結構。如果把前者看成基類,則後者均爲它的派生產物。device、driver、bus、class構成了設備模型,而kobject內嵌於其中,將這些設備模型

原创 Android中HAL如何向上層提供接口總結-hw_device_t

參考文獻: http://blog.csdn.net/luoshengyang/article/details/6573809 http://blog.csdn.net/hongtao_liu/article/details/6

原创 android中hw_get_module函數分析

這個函數的主要功能是根據模塊ID尋找硬件模塊動態鏈接庫德地址,然後調用load去打開動態鏈接庫並從中獲取硬件模塊結構體地址。具體的源碼如下: 代碼@/hardware/libhardware/hardware.c int hw_g

原创 C語言的預處理問題

今天在網上看到一個關於#error的預處理問題,很是困惑,沒想到還有這種預處理命令,所以從網上系統得看了一下c語言的預處理命令!現總結如下,如有理解錯誤,歡迎大家批評指正! 首先,我們都知道整個程序從無到有的幾個關鍵步驟:編譯->鏈接->

原创 android repo學習

如何取得 Android 源代碼 Git 是 Linux Torvalds 爲了幫助管理 Linux 內核開發而開發的一個開放源碼的分佈式版本 控制

原创 kobject_uevent

前言 這兩天遇到一些 udev 的問題, 順便閱讀了一下文檔(見參考文檔), 基本瞭解了 udev的機制。嵌入式系統性能很重要,於是對內核這一塊進行

原创 C語言函數參數傳遞原理

C語言中參數的傳遞方式一般存在兩種方式:一種是通過棧的形式傳遞,另一種是通過寄存器的方式傳遞的。這次,我們只是詳細描述一下第一種參數傳遞方式,另外一種方式在這裏不做詳細介紹。 首先,我們看一下,下面一個簡單的調用例程: int Add (

原创 “asmlinkage” 的作用

什麼是 "asmlinkage"? 相信大家在看linux的source code的時候,都會注意到asmlinkage這個宏,它是用來做什麼的呢? The asmlinkage tag is one other thing tha

原创 在sys目錄創建接口

在sys目錄創建/sys/zwx_demo/zwx_test_status   接口  int zwx_test_status = 0;  //文件zwx_test_status的默認值 static struct kobject *

原创 MODULE_AUTHOR、MODULE_DESCRIPTION、MODULE_LICENSE宏

在閱讀Linux Driver源代碼時,我們經常會在文件的結尾處看到諸如:MODULE_AUTHOR、MODULE_DESCRIPTION、MODULE_LICENSE等宏定義,這些宏主要是定義了一些模塊信息。但這些模塊信息具體是怎麼加到

原创 linux內核原子操作的實現

所謂原子操作,就是“不可中斷的一個或一系列操作”。 硬件級的原子操作:在單處理器系統(UniProcessor)中,能夠在單條指令中完成的操作都可以認爲是“原子操作”,因爲中斷只發生在指令邊緣。在多處理器結構中(Symmetric

原创 面嚮對象語言的多態性問題

一直以來在我們所見到的概念中,面嚮對象語言有三大特性:封裝性、繼承和多態。 封裝性: 在面向對象的語言中存在有類的概念,因此實現了數據和行爲(方法)的封裝,在外部表現爲統一的類或對象。在類的外部要訪問類的公有成員(私有成員通過類或對象也是

原创 C 語言的若干問題(持續更新中)

1.c 語言聲明的作用:  在C語言中你所聲明的所有字符串,會根據你當初對它聲明的不同表現出不同的含義!你對字符串的聲明,即代表此字符串所擁有的屬性!是變量還是函數都會依據你的聲明所定!例如:int func(void) , 此聲明爲一個