2016-10-08 16 views
0

/sysの下に属性ファイルを変数名で作成することはできますか? 例:変数名を使用して/ sys属性を作成する方法

char *variable_name = foo; 
/* Create an attribute file foo */ 
struct kobj_attribute test = __ATTR(variable_name,0660,_show,_store); 
+0

私が本当にそれを得ていないので、あなたが実際に達成しようとしていることをもっと詳しく説明してください。 –

答えて

0

私は実際にはカーネル開発に参加していません。しかし:あなたがこれを行う場合:

find /sys -type f -name '*1*' 

あなたは、他のコードが探していることをしているいくつかの例を見つける必要があります。だから、私はちょうど例としてそれらをつかんで、見て、彼らがそれをやる方法。一つの例は、マシンチェック例外コードのようになります。

[...] 
/sys/devices/system/machinecheck/machinecheck0/bank1 
/sys/devices/system/machinecheck/machinecheck1/bank1 
/sys/devices/system/machinecheck/machinecheck2/bank1 
/sys/devices/system/machinecheck/machinecheck3/bank1 
/sys/devices/system/machinecheck/machinecheck4/bank1 
/sys/devices/system/machinecheck/machinecheck5/bank1 
[...] 
$ ls /sys/devices/system/machinecheck/machinecheck0/bank* 
/sys/devices/system/machinecheck/machinecheck0/bank0 
/sys/devices/system/machinecheck/machinecheck0/bank1 
/sys/devices/system/machinecheck/machinecheck0/bank2 
/sys/devices/system/machinecheck/machinecheck0/bank3 
/sys/devices/system/machinecheck/machinecheck0/bank4 
/sys/devices/system/machinecheck/machinecheck0/bank5 
/sys/devices/system/machinecheck/machinecheck0/bank6 

いずれにせよ、あなたが(すなわちkobj_attributeが自分をストラクト初期化)このため__ATTRマクロを再実装する必要がように思えます。

0

マクロ__ATTRは変数を文字列化します。 sysfs.h

__stringifyマクロで ルックは次のとおりです。

#define __stringify_1(x...)  #x 
#define __stringify(x...)  __stringify_1(x) 
0

は、/ SYS

下の属性ファイルを作成する方法の一例は、Linuxカーネルツリーの下にサンプル/たkobject /たkobject-はexample.c見ます
関連する問題