久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区


曙海教育集團論壇Linux專區Linux技術討論區 → linux2.6.x的配置文件kconfig語法


  共有7192人關注過本帖樹形打印

主題:linux2.6.x的配置文件kconfig語法

美女呀,離線,留言給我吧!
wangxinxin
  1樓 個性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


加好友 發短信
等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
linux2.6.x的配置文件kconfig語法  發帖心情 Post By:2010-11-15 9:23:26

linux在2.6版本以后將配置文件由原來的config.in改為kconfig,對于kconfig的語法在/Documentation/kbuild/kconfig-language.txt中做了詳細的說明,在這里給出kconfig-language.txt的中文版。
介紹
----

在配置數據庫的配置選項是以樹的形式組織的:

   +- Code maturity level options
   | +- Prompt for development and/or incomplete code/drivers
   +- General setup
   | +- Networking support
   | +- System V IPC
   | +- BSD Process Accounting
   | +- Sysctl support
   +- Loadable module support
   | +- Enable loadable module support
   |     +- Set version information on all module symbols
   |     +- Kernel module loader
   +- ...

每個選項都有其自己的依賴關系。這些依賴關系決定了選項是否是可見的。父選項可見,子選項才能可見。

菜單選項
--------

大多數的選項都定義了一個配置選項,其它選項則有助于對它們進行組織。(原文:Most entries define
a config option, all other entries help to organize them.)一個配置選項定義可以是下面
的形式:

config MODVERSIONS
   bool "Set version information on all module symbols"
   depends MODULES
   help
      Usually, modules have to be recompiled whenever you switch to a new
      kernel. ...

每行都是以關鍵字開始,并可以接多個參數。"config" 為定義了一新的配置選項。下面的幾行定義了該配置
選項的屬性。屬性可以是該配置選項的類型,輸入提示(input prompt),依賴關系,幫助信息和默認值。一
配置選項可以用相同的名字定義多次,但每個定義只能有一個輸入提示并且類型還不能沖突。

菜單屬性
--------

一菜單選項可以有多個屬性。并不要求這些屬性可以用在任何地方(見語法)。

- 類型定義:"bool"/"tristate"/"string"/"hex"/"int"
每個配置選項都必須指定類型。有兩個基本類型:tristate 和 string,其他類型都是基于這兩個基本
類型。類型定義可以用輸入提示,所以下面的兩個例子是等價的:

   bool "Networking support"

   bool
   prompt "Networking support"

- 輸入提示: "prompt" <prompt> ["if" <expr>]
每個菜單選項最多只能有一個顯示給用戶的輸入提示。可以用 "if" 來表示該提示的依賴關系,當然這是
可選的。

- 默認值:"default" <expr> ["if" <expr>]
一個配置選項可以有任意多個默認值。如果有多個默認值,那么只有第一個被定義的值是可用的。默認值并
不是只限于應用在定義他們的菜單選項。這就意味著默認值可以定義在任何地方或被更早的定義覆蓋。
如果用戶沒有設置(通過上面的輸入提示),配置選項的值就是默認值。如果可以顯示輸入提示的話,就會把
默認值顯示給用戶,并可以讓用戶進行修改。
默認值的依賴關系可以用 "if" 添加。(可選項)

- 依賴關系:"depends on"/"requires" <expr>
為一菜單選項定義依賴關系。如果定義了多個依賴關系,它們之間用 '&&' 間隔。依賴關系也可以應用到
該菜單中所有的其它選項(同樣接受一if表達式),所以下面的兩個例子是等價的:

   bool "foo" if BAR
   default y if BAR
and
   depends on BAR
   bool "foo"
   default y

- 反向依賴關系:"select" <symbol> ["if" <expr>]
盡管普通的依賴關系可以降低一選項的上限,反向依賴能將這一限制降的更低。當前菜單選項的值是symbol
的最小值。如果symbol被選擇了多次,上限就是其中的最大值。
反向依賴只能用在 boolean 或 tristate 選項上。

- 數據范圍:"range" <symbol> <symbol> ["if" <expr>]
為int和hex類型的選項設置可以接受輸入值范圍。用戶只能輸入大于等于第一個symbol,小于等于第二個
symbol的值。

- 幫助信息: "help" or "---help---"
定義一幫助信息。幫助信息的結束就由縮進的水平決定的,這也就意味著信息是在第一個比幫助信息開始行
的縮進小的行結束。
"---help---" 和 "help" 在實現的作用上沒有區別,"---help---" 有助于將文件中的配置邏輯與
給開發人員的提示分開。


菜單依賴關系
------------

依賴關系決定了菜單選項是否可見,也可以減少tristate的輸入范圍。tristate邏輯比boolean邏輯在表
達式中用更多的狀態(state)來表示模塊的狀態。依賴關系表達式的語法如下:

<expr> ::= <symbol>                             (1)
           <symbol> '=' <symbol>                (2)
           <symbol> '!=' <symbol>               (3)
           '(' <expr> ')'                       (4)
           '!' <expr>                           (5)
           <expr> '&&' <expr>                   (6)
           <expr> '||' <expr>                   (7)

表達式是以優先級的降序列出的。

(1) 將symbol賦給表達式。boolean和tristate類型的symbol直接賦給表達式。所有其它類型的symbol
    都賦 'n'。
(2) 如果兩個symbol相等,返回'y',否則為'n'。
(3) 如果兩個symbol相等,返回'n',否則為'y'。
(4) 返回表達式的值。用于改變優先級。
(5) 返回 (2-/expr/) 的結果。
(6) 返回 min(/expr/,/expr/) 的結果。
(7) 返回 max(/expr/,/expr/) 的結果。

一個表達式的值可以是'n','m'或'y'(或者是計算的結果 0,1,2)。當表達式的值為'm'或'y'的時候,菜
單項才是可見的。

symbol有兩種類型:不可變的和可變的。不可變的symbol是最普通的,由'config'語句定義,完全由數字
、字母和下劃線組成(alphanumeric characters or underscores)。
不可變的symbol只是表達式的一部分。經常用單引號或雙引號括起來。在引號中,可以使用任何字符,使用引
號要用轉義字符'\'。

菜單結構
--------

菜單在樹中的位置可由兩種方法決定。第一種可以是這樣:

menu "Network device support"
   depends NET

config NETDEVICES
   ...

endmenu

所有的在"menu" ... "endmenu" 之間都是"Network device support"的子菜單。所有的子菜單選項
都繼承了父菜單的依賴關系,比如,"NET"的依賴關系就被加到了配置選項NETDEVICES的依賴列表中。

還有就是通過分析依賴關系生成菜單的結構。如果菜單選項在一定程度上依賴于前面的選項,它就能成為該選
項的子菜單。首先,前面的(父)選項必須是依賴列表中的一部分并且它們中必須有滿足下面兩個條件的選項:
- 如果父選項為'n',子選項必須不可見。
- 如果父選項可見,子選項才能可見。

config MODULES
   bool "Enable loadable module support"

config MODVERSIONS
   bool "Set version information on all module symbols"
   depends MODULES

comment "module support disabled"
   depends !MODULES

MODVERSIONS 直接依賴 MODULES,這就意味著如果MODULES不為'n',該選項才可見。換句話說,當
MODULES可見時,選項才可見(MODULES的(空)依賴關系也是選項依賴關系的一部分)。

Kconfig 語法
------------

配置文件描述了菜單選項,每行都是以一關鍵字開頭(除了幫助信息)。下面的關鍵字結束一菜單選項:
- config
- menuconfig
- choice/endchoice
- comment
- menu/endmenu
- if/endif
- source
前5個同樣可以用在菜單選項定義的開始。

config:

   "config" <symbol>
   <config options>

定義了一配置選項 <symbol> 并且可以接受任何前面介紹的屬性。

menuconfig:
   "menuconfig" <symbol>
   <config options>

此關鍵字和前面的關鍵字很相似,但它在前面的基礎上要求所有的子選項作為獨立的行顯示。(This is
similar to the simple config entry above, but it also gives a hint to front
ends, that all suboptions should be displayed as a separate list of options.)

choices:

   "choice"
   <choice options>
   <choice block>
   "endchoice"

該關鍵字定義了一組選擇項,并且選項可以是前面描述的任何屬性。盡管boolean只允許選擇一個配置選項,
tristate可以抒多個配置選項設為'm',但選項只能是boolean或tristate類型。這可以在一個硬件有多
個驅動的情況下使用,最終只有一個驅動被編譯進/加載到內核,,但所有的驅動都可以編譯成模塊。
選項可以接受的另一個選項是"optional",這樣選項就被設置為'n',沒有被選中的。

comment:

   "comment" <prompt>
   <comment options>

這里定義了在配置過程中顯示給用戶的注釋,該注釋還將寫進輸出文件中。唯一可用的可選項是依賴關系。

menu:

   "menu" <prompt>
   <menu options>
   <menu block>
   "endmenu"

這里定義了一個菜單,詳細信息請看前面的"菜單結構"。唯一可用的可選項是依賴關系。

if:

   "if" <expr>
   <if block>
   "endif"

這里定義了if結構。依賴關系<expr>被加到所有在if ... endif 中的菜單選項中

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/jiaguang3010717/archive/2010/08/27/5844687.aspx


支持(0中立(0反對(0單帖管理 | 引用 | 回復 回到頂部

返回版面帖子列表

linux2.6.x的配置文件kconfig語法








簽名
久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区
欧美高清www午色夜在线视频| 久久er99热精品一区二区三区| 欧美精品乱人伦久久久久久| 成人污污视频在线观看| 国产亚洲美州欧州综合国| 久久久www免费人成黑人精品| 水蜜桃久久夜色精品一区的特点| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 综合网五月天| 成人国产视频在线观看| 亚洲美女精品一区| 在线成人av网站| 国产精品久久久久免费| 男人的j进女人的j一区| 26uuu色噜噜精品一区| 日韩精品不卡| youjizz久久| 亚洲亚洲精品在线观看| 精品久久久久久无| 日韩久久不卡| 成人毛片在线观看| 亚洲777理论| 国产午夜亚洲精品不卡| 日本韩国欧美一区二区三区| 成人av免费在线看| 久久精品国产免费看久久精品| 亚洲国产精品ⅴa在线观看| 在线视频国产一区| 国产日韩欧美亚洲一区| 黑人精品欧美一区二区蜜桃| 一区二区三区在线播放| 日韩欧美中文字幕精品| 一区二区免费在线观看| 国产免费高清一区| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 日韩高清不卡一区二区| 久久久精品欧美丰满| 久久国产精品免费| 国产精品丝袜一区| 欧美日韩久久不卡| 欧美日韩高清在线一区| 成人av一区二区三区| 日本女优在线视频一区二区| 亚洲国产精品av| 91精品国产综合久久精品麻豆| 精品一区二区精品| 亚洲视频电影在线| 欧美成人精品高清在线播放| 色一情一乱一乱一91av| 久久国产精品久久| 97超碰欧美中文字幕| 国产综合色视频| 婷婷国产在线综合| 亚洲日本乱码在线观看| 久久欧美中文字幕| 67194成人在线观看| 色婷婷香蕉在线一区二区| 欧美精品一区二区三区四区五区| 99久久免费视频.com| 国产呦精品一区二区三区网站| 午夜久久久久久久久| 中文字幕日韩av资源站| 国产午夜精品久久久久久久| 欧美mv日韩mv国产网站app| 欧美日韩午夜精品| 一本一道久久a久久精品| 日韩精品极品视频在线观看免费| 国产成人成网站在线播放青青| 不卡一区二区三区四区| 国产精品18久久久| 韩国成人福利片在线播放| 视频一区二区欧美| 亚洲一二三级电影| 亚洲乱码国产乱码精品精98午夜 | 一区二区三区中文字幕精品精品| 国产日韩精品一区二区三区| 精品粉嫩超白一线天av| 91精品国产色综合久久ai换脸 | 日韩二区在线观看| 亚洲成av人在线观看| 亚洲午夜久久久久久久久久久 | 亚洲视频香蕉人妖| 国产精品久久久爽爽爽麻豆色哟哟| 久久色在线视频| 欧美精品一区二区在线观看| 日韩欧美一二三| 日韩美女视频在线| 欧美成人video| 精品国产制服丝袜高跟| www激情久久| 国产三区在线成人av| 日本一区二区电影| 中文字幕免费一区| 国产精品久久久久久福利一牛影视 | 日韩欧美亚洲精品| 热re99久久精品国99热蜜月| 日本一区高清不卡| 日韩尤物视频| 亚洲精品中文综合第一页| 亚洲乱码国产乱码精品天美传媒| 亚洲国产日韩欧美| 色综合久久久久综合体| 欧美亚洲国产一区在线观看网站| 色88888久久久久久影院按摩| 在线精品视频一区二区三四| 欧美性受xxxx| 777午夜精品视频在线播放| 日韩一级精品视频在线观看| 欧美mv日韩mv国产网站app| 国产午夜精品久久久久久久 | 欧美精品一区在线观看| 国产欧美日韩一区二区三区在线观看 | 色综合咪咪久久| 欧美三级日韩在线| 欧美本精品男人aⅴ天堂| 国产夜色精品一区二区av| 国产精品久久久久久久久快鸭| 一区二区三区在线视频播放| 爽好久久久欧美精品| 韩国v欧美v亚洲v日本v| 91偷拍与自偷拍精品| 久久青青草综合| 一本久久综合亚洲鲁鲁五月天| 欧美丝袜自拍制服另类| 日韩免费看的电影| 国产精品久久久久久久岛一牛影视| 一区二区成人在线观看| 蜜臀久久久久久久| 成人国产免费视频| 精品国产乱码久久久久久丨区2区| 四虎一区二区| 欧美肥妇bbw| 国产偷v国产偷v亚洲高清| 亚洲午夜私人影院| 国产一区二区三区不卡在线观看| 99精品国产视频| 欧美日韩国产免费一区二区三区| 色美美综合视频| 久久久噜噜噜久久中文字幕色伊伊| 亚洲色图一区二区| 久久av资源网| 97se国产在线视频| 一区二区不卡在线观看| 日韩精品在线一区| 亚洲综合网站在线观看| 国产呦精品一区二区三区网站| 成人3d动漫一区二区三区91| 在线综合视频网站| 337p粉嫩大胆噜噜噜噜噜91av| 亚洲综合丝袜美腿| 成人夜色视频网站在线观看| 品久久久久久久久久96高清| 欧美日韩国产区一| 国产精品久久久久一区二区三区| 免费观看在线色综合| 99久久精品国产精品久久| 日韩美女一区| 精品成人在线观看| 天堂va蜜桃一区二区三区漫画版| 99久久国产综合精品麻豆| 天堂一区二区三区| 日韩精品专区在线| 五月天精品一区二区三区| 99久久99久久精品免费观看| 在线丝袜欧美日韩制服| 国产欧美日产一区| 精久久久久久久久久久| 好吊色欧美一区二区三区 | 中文一区在线播放 | 中文字幕亚洲一区二区av在线| 国内精品在线播放| 久久综合毛片| 欧美v日韩v国产v| 婷婷久久综合九色综合绿巨人 | 97久久夜色精品国产九色| 欧美午夜精品一区| 亚洲精品成人精品456| 成人免费三级在线| 日本精品免费观看高清观看| 最近中文字幕一区二区三区| 国产福利一区二区| 亚洲一一在线| 中文字幕在线免费不卡| 丰满亚洲少妇av| 伊人精品久久久久7777| 欧美国产丝袜视频| 东方aⅴ免费观看久久av| 色婷婷精品久久二区二区蜜臀av| 国产精品国产三级国产aⅴ入口 | 在线观看视频一区二区欧美日韩| 亚洲丝袜另类动漫二区| 99久久99久久精品国产片果冻 | 色综合天天天天做夜夜夜夜做| 中文字幕在线一区免费| 99免费精品视频| 欧美日韩精品综合在线| 丝袜美腿亚洲综合| 欧美日韩一区在线播放| 国产欧美一二三区| www.日本不卡|