欧美自拍小视频_国产片在线免费观看_中文字幕啪啪_成人av高清在线_欧美一区二区视频免费观看_亚洲国产激情


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


  共有7193人關(guān)注過本帖樹形打印

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

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


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

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

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

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

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

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

大多數(shù)的選項都定義了一個配置選項,其它選項則有助于對它們進行組織。(原文: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. ...

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

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

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

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

   bool "Networking support"

   bool
   prompt "Networking support"

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

menu "Network device support"
   depends NET

config NETDEVICES
   ...

endmenu

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

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

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

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

config:

   "config" <symbol>
   <config options>

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

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

此關(guān)鍵字和前面的關(guān)鍵字很相似,但它在前面的基礎(chǔ)上要求所有的子選項作為獨立的行顯示。(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)鍵字定義了一組選擇項,并且選項可以是前面描述的任何屬性。盡管boolean只允許選擇一個配置選項,
tristate可以抒多個配置選項設(shè)為'm',但選項只能是boolean或tristate類型。這可以在一個硬件有多
個驅(qū)動的情況下使用,最終只有一個驅(qū)動被編譯進/加載到內(nèi)核,,但所有的驅(qū)動都可以編譯成模塊。
選項可以接受的另一個選項是"optional",這樣選項就被設(shè)置為'n',沒有被選中的。

comment:

   "comment" <prompt>
   <comment options>

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

menu:

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

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

if:

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

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

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


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

返回版面帖子列表

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








簽名
主站蜘蛛池模板: 欧美成人毛片免费网站 | 亚洲日韩在线中文字幕综合 | 污污网站国产精品白丝袜 | 中文字幕一区二区三区不卡 | 国产亚洲精品久久久久四川人 | 亚洲精品人人 | 国产成人精品第一区二区 | 草草浮力地址线路①屁屁影院 | 素人天堂 | 中文字幕久精品免费视频 | 久久精品国产在热久久2019 | 成人黄色免费观看 | 久久久99视频 | 日本一级片在线播放 | 成人激情视频在线 | 无限资源视频手机在线观看 | 欧美日韩一区二区中文字幕视频 | 欧美性色黄在线视 | 大伊香蕉在线精品视频人碰人 | 一区二区三区网站在线免费线观看 | 免费人成视频在线播放 | 四虎成人网 | 国产一级片免费 | 四虎免费网址 | 欧美操逼视频 | 你懂的免费网址 | 久久精品道一区二区三区 | www.毛片com| 国产人妻xxxx精品hd | 日韩在线二区全免费 | 思思99精品国产自在现线 | 国产精品视频一区二区三区小说 | 大乳丰满人妻中文字幕日本 | 在线91精品亚洲网站精品成人 | 成人毛片高清视频观看 | 中文字幕无线码 | 四虎成年永久免费网站 | 人妻少妇中文字幕久久 | 曰本人做爰大片免费观看一 | 一级片网 | 亚洲图片综合 |