patch文件的語法


copy from : https://blog.csdn.net/yanshuai_tek/article/details/50992030

 

解析linux patch
Patch的主要用途是給代碼打補丁,修正已知的錯誤,或者作為一種調試手段來調試有問題的代碼,發現問題和驗證修正的結果。
Patch 過程分三個大的步驟:一是用diff工具比較新舊代碼,生成patch文件;二是使用patch命令,將patch文件合並到原有代碼;三是檢查有無無法patch的文件,修改或重新選擇是否對其做patch。patch打完了就可以直接編譯了。
patch對應到的主要命令有兩個,diff和patch。至於檢查結果,在linux環境下使用ls命令或者find命令查看有無rej類型的文件就可以了。
現實中常見的做法,是在makefile中加入patch命令,在編譯過程中做好代碼的patch,然后編譯代碼。

patch 文件的結構
補丁頭
補丁頭是分別由 —/+++ 開頭的兩行,用來表示要打補丁的文件。 — 開頭表示舊文件, +++ 開頭表示新文件。
一個補丁文件中的多個補丁
一個補丁文件中可能包含以 —/+++ 開頭的很多節,每一節用來打一個補丁。所以在一個補丁文件中可以包含好多個補丁。

塊是補丁中要修改的地方。它通常由一部分不用修改的東西開始和結束。他們只是用來表示要修改的位置。他們通常以 @@ 開始,結束於另一個塊的開始或者一個新的補丁頭。
塊的縮進
塊會縮進一列,而這一列是用來表示這一行是要增加還是要刪除的。
塊的第一列
+ 號表示這一行是要加上的。
- 號表示這一行是要刪除的。
沒有加號也沒有減號表示這里只是引用的而不需要修改,用來定位。

diff --git a/include/linux/fb.h b/include/linux/fb.h ##【這兒表示一個小段的開始】
index c10163b..1296af4 100644
--- a/include/linux/fb.h ##(一般表示原文件,a是原文件對應的目錄)
+++ b/include/linux/fb.h ##(一般表示改動過的文件,b是其目錄名,所以可以直接看他們的下層目錄來找)
@@ -403,6 +403,7 @@ struct fb_cursor { ##第一段不同的地方,舊文件從403行開始,共6行;新文件從403行開始,共7行
#include <linux/notifier.h>
#include <linux/list.h>
#include <linux/backlight.h>
+#include <linux/slab.h> ##【+表示增加一行】
#include <asm/io.h>

struct vm_area_struct;
@@ -862,10 +863,22 @@ struct fb_info { ##【@@ -862... 此處表示對應該文件的多少行多少列】
/* we need the PCI or similiar aperture base/size not
smem_start/size as smem_start may just be an object
allocated inside the aperture so may not actually overlap */
- resource_size_t aperture_base;
- resource_size_t aperture_size; ##【-表示刪除改行】
+ struct apertures_struct {
+ unsigned int count;
+ struct aperture {
+ resource_size_t base;
+ resource_size_t size;
+ } ranges[0];
+ } *apertures;
};

+static inline struct apertures_struct *alloc_apertures(unsigned int max_num) {
+ struct apertures_struct *a = kzalloc(sizeof(struct apertures_struct)
+ + max_num * sizeof(struct aperture), GFP_KERNEL);
+ a->count = max_num;
+ return a;
+}
+
#ifdef MODULE
#define FBINFO_DEFAULT FBINFO_MODULE
#else
————————————————
版權聲明:本文為CSDN博主「yanshuai_tek」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/yanshuai_tek/article/details/50992030


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM