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


曙海教育集團(tuán)論壇Linux專區(qū)Linux技術(shù)討論區(qū) → linux2.6.x的配置文件kconfig語(yǔ)法


  共有7200人關(guān)注過(guò)本帖樹(shù)形打印

主題:linux2.6.x的配置文件kconfig語(yǔ)法

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


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

linux在2.6版本以后將配置文件由原來(lái)的config.in改為kconfig,對(duì)于kconfig的語(yǔ)法在/Documentation/kbuild/kconfig-language.txt中做了詳細(xì)的說(shuō)明,在這里給出kconfig-language.txt的中文版。
介紹
----

在配置數(shù)據(jù)庫(kù)的配置選項(xiàng)是以樹(shù)的形式組織的:

   +- 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
   +- ...

每個(gè)選項(xiàng)都有其自己的依賴關(guān)系。這些依賴關(guān)系決定了選項(xiàng)是否是可見(jiàn)的。父選項(xiàng)可見(jiàn),子選項(xiàng)才能可見(jiàn)。

菜單選項(xiàng)
--------

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

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. ...

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

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

一菜單選項(xiàng)可以有多個(gè)屬性。并不要求這些屬性可以用在任何地方(見(jiàn)語(yǔ)法)。

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

   bool "Networking support"

   bool
   prompt "Networking support"

- 輸入提示: "prompt" <prompt> ["if" <expr>]
每個(gè)菜單選項(xiàng)最多只能有一個(gè)顯示給用戶的輸入提示。可以用 "if" 來(lái)表示該提示的依賴關(guān)系,當(dāng)然這是
可選的。

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

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

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

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

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

- 幫助信息: "help" or "---help---"
定義一幫助信息。幫助信息的結(jié)束就由縮進(jìn)的水平?jīng)Q定的,這也就意味著信息是在第一個(gè)比幫助信息開(kāi)始行
的縮進(jìn)小的行結(jié)束。
"---help---" 和 "help" 在實(shí)現(xiàn)的作用上沒(méi)有區(qū)別,"---help---" 有助于將文件中的配置邏輯與
給開(kāi)發(fā)人員的提示分開(kāi)。


菜單依賴關(guān)系
------------

依賴關(guān)系決定了菜單選項(xiàng)是否可見(jiàn),也可以減少tristate的輸入范圍。tristate邏輯比boolean邏輯在表
達(dá)式中用更多的狀態(tài)(state)來(lái)表示模塊的狀態(tài)。依賴關(guān)系表達(dá)式的語(yǔ)法如下:

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

表達(dá)式是以優(yōu)先級(jí)的降序列出的。

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

一個(gè)表達(dá)式的值可以是'n','m'或'y'(或者是計(jì)算的結(jié)果 0,1,2)。當(dāng)表達(dá)式的值為'm'或'y'的時(shí)候,菜
單項(xiàng)才是可見(jiàn)的。

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

菜單結(jié)構(gòu)
--------

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

menu "Network device support"
   depends NET

config NETDEVICES
   ...

endmenu

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

還有就是通過(guò)分析依賴關(guān)系生成菜單的結(jié)構(gòu)。如果菜單選項(xiàng)在一定程度上依賴于前面的選項(xiàng),它就能成為該選
項(xiàng)的子菜單。首先,前面的(父)選項(xiàng)必須是依賴列表中的一部分并且它們中必須有滿足下面兩個(gè)條件的選項(xiàng):
- 如果父選項(xiàng)為'n',子選項(xiàng)必須不可見(jiàn)。
- 如果父選項(xiàng)可見(jiàn),子選項(xiàng)才能可見(jià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',該選項(xiàng)才可見(jiàn)。換句話說(shuō),當(dāng)
MODULES可見(jiàn)時(shí),選項(xiàng)才可見(jiàn)(MODULES的(空)依賴關(guān)系也是選項(xiàng)依賴關(guān)系的一部分)。

Kconfig 語(yǔ)法
------------

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

config:

   "config" <symbol>
   <config options>

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

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

此關(guān)鍵字和前面的關(guān)鍵字很相似,但它在前面的基礎(chǔ)上要求所有的子選項(xiàng)作為獨(dú)立的行顯示。(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"

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

comment:

   "comment" <prompt>
   <comment options>

這里定義了在配置過(guò)程中顯示給用戶的注釋,該注釋還將寫進(jìn)輸出文件中。唯一可用的可選項(xiàng)是依賴關(guān)系。

menu:

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

這里定義了一個(gè)菜單,詳細(xì)信息請(qǐng)看前面的"菜單結(jié)構(gòu)"。唯一可用的可選項(xiàng)是依賴關(guān)系。

if:

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

這里定義了if結(jié)構(gòu)。依賴關(guān)系<expr>被加到所有在if ... endif 中的菜單選項(xiàng)中

本文來(lái)自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/jiaguang3010717/archive/2010/08/27/5844687.aspx


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

返回版面帖子列表

linux2.6.x的配置文件kconfig語(yǔ)法








簽名
久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区
日韩精品一区二区三区色偷偷 | 久久99精品久久久久久久青青日本| 成人福利电影精品一区二区在线观看| 久久99精品一区二区三区| 日本不卡高清视频| 蜜桃在线一区二区三区| 国产一区二区久久| 99re在线视频这里只有精品| 91美女精品福利| 久久爱av电影| 伊人av成人| 在线成人av影院| 久久综合狠狠综合久久激情| 亚洲欧洲av另类| 青草国产精品久久久久久| 国产精品一区二区你懂的| 91丨porny丨国产入口| 你懂的视频在线一区二区| 一道本成人在线| 欧美一级夜夜爽| 国产精品久久久久久久久免费丝袜| 一区二区三区欧美日| 日韩电影在线免费| 成人免费视频网站在线观看| 国产日韩在线一区二区三区| 色八戒一区二区三区| 精品免费日韩av| 一区二区三区免费在线观看| 激情图区综合网| 国产成人精品自拍| 欧洲日韩一区二区三区| 久久精品一二三| 天堂影院一区二区| 91影院在线免费观看| 色涩成人影视在线播放| 欧美一区二区黄色| 亚洲精品你懂的| 福利一区二区在线| 日韩国产高清一区| 在线不卡免费av| 自拍偷拍亚洲激情| 国内精品免费在线观看| 久久国产精品久久| 91精品国产色综合久久不卡蜜臀| 中文字幕一区二区三区四区不卡 | 粉嫩久久99精品久久久久久夜| 久久精品二区| 欧美一区二区三区人| 一区二区三区 在线观看视频| 国产不卡在线视频| 亚洲午夜精品久久久久久浪潮| 久久免费国产精品| 老司机一区二区| 久久av一区二区三区亚洲| 欧美精品三级在线观看| 亚洲精品伦理在线| 91欧美一区二区| 欧美伦理电影网| 婷婷成人综合网| 精品国产一区二区三区麻豆免费观看完整版 | 色视频成人在线观看免| 国产精品美女一区二区在线观看| 麻豆精品视频在线观看| 欧美成人第一区| 国产欧美日韩另类视频免费观看| 国产一本一道久久香蕉| 色综合久久综合网97色综合| 亚洲欧美日韩电影| 91麻豆蜜桃| 欧美一级久久久久久久大片| 日韩成人免费看| 精品国产一区二区三区麻豆小说 | 中文字幕乱码一区二区免费| 成人一区二区三区| 欧美日韩激情一区| 日韩激情视频在线观看| 欧美日韩国产不卡在线看| 欧美精彩视频一区二区三区| k8久久久一区二区三区| 制服丝袜在线91| 精品一区二区三区不卡 | 肥熟一91porny丨九色丨| 日韩视频一区二区三区在线播放| 蜜臀精品一区二区三区在线观看 | 色婷婷综合久久久久中文一区二区 | 久久99精品国产麻豆不卡| 手机看片福利永久国产日韩| 日韩毛片视频在线看| 国产91免费视频| 久久久不卡网国产精品二区| 成人动漫一区二区三区| 欧美另类久久久品| 国产精品一卡二卡在线观看| 在线电影院国产精品| 韩国精品免费视频| 欧美日韩精品一区二区三区蜜桃 | 久久先锋影音av| av亚洲精华国产精华精华| 日韩三级.com| 国产99久久久久| 欧美videossexotv100| 成人动漫视频在线| 久久久久久久久久久久电影| 97久久超碰国产精品电影| 久久综合久色欧美综合狠狠| 91视频一区二区三区| 日本一区二区三区四区在线视频| 国产精品初高中精品久久| 国产精品久久久99| 欧美成人第一区| 亚洲国产成人精品视频| 一区二区视频在线观看| 久久99九九99精品| 日韩女优av电影| 91精品国产99久久久久久红楼| 国产欧美精品一区aⅴ影院| 国产伦精品一区二区三区视频孕妇 | 91精品国产91久久久久久最新毛片 | 欧美亚一区二区| 国产aⅴ精品一区二区三区色成熟| 日韩欧美国产一二三区| 成人欧美一区二区三区黑人免费| 自拍偷自拍亚洲精品播放| 先锋影音亚洲资源| 黄网站免费久久| 久久综合色8888| 久久国产精品一区二区三区四区| 亚洲大尺度视频在线观看| 欧美日韩一区中文字幕| 99久久精品99国产精品| 亚洲区小说区图片区qvod| 色综合天天视频在线观看 | 色播亚洲婷婷| 国产又黄又大久久| 国产三级三级三级精品8ⅰ区| 欧美成人dvd在线视频| 免费看欧美女人艹b| 精品国产欧美一区二区| 欧美日韩大片一区二区三区| 极品少妇xxxx偷拍精品少妇| 国产日韩欧美一区二区三区乱码 | 日本电影亚洲天堂一区| 99热国产精品| 亚洲sss视频在线视频| 在线成人免费视频| 精品一区二区三区国产| 久久精品国产99国产精品| 久久精品一区二区三区不卡牛牛 | 国产三级三级三级精品8ⅰ区| 欧美成人dvd在线视频| 精品无人码麻豆乱码1区2区 | 蜜桃久久精品乱码一区二区 | 91福利资源站| 国产精品一区二区三区不卡| 免费观看成人av| 日本一区二区三区在线观看| 综合一区中文字幕| 99久re热视频这里只有精品6| 五月婷婷综合在线| 久久久不卡影院| 在线免费观看日韩欧美| 精品福利影视| 懂色av一区二区在线播放| 一区二区三区免费网站| 精品国产乱码久久久久久牛牛 | 91麻豆精品国产自产在线 | 久久久不卡网国产精品二区| 综合视频在线观看| 精品乱码一区| 成人高清av在线| 免费成人深夜小野草| 亚洲视频1区2区| 欧美精品一区二区三区四区| 色综合天天综合| 欧美激情第一页在线观看| 成人激情免费视频| 久久精品国产一区二区三 | 欧美日韩国产首页在线观看| 麻豆精品视频| 99精品一区二区三区| 精品伊人久久久久7777人| 亚洲一区二区三区视频在线| 国产日韩欧美一区二区三区乱码 | 亚洲aⅴ天堂av在线电影软件| julia一区二区中文久久94| 国产精品 欧美精品| 日本vs亚洲vs韩国一区三区 | 欧美美女一区二区| 中日韩在线视频| 日本一区免费| 久久艹中文字幕| 国产伦精品一区二区三区四区免费 | 国产区一区二区三区| 99久久国产综合精品麻豆| 国产精品一区二区久久精品爱涩| 青青国产91久久久久久| 午夜欧美电影在线观看| 亚洲精品欧美在线| 综合在线观看色| 日韩理论电影院|