1. モジュールパラメータ ドライバー内の変数の定義 static int num = 0; //ロードモジュールがnumの値を指定しない場合は0になります
module_param の呼び出し関係は次のとおりです。 #define module_param(名前、タイプ、権限) \ module_param_named(名前、名前、タイプ、権限) #define module_param_named(名前、値、タイプ、パーミッション) \ param_check_##type(名前、&(値)); \ module_param_call(名前、param_set_##type、param_get_##type、&value、perm); \ __MODULE_PARM_TYPE(名前、#タイプ) #define module_param_call(名前、設定、取得、引数、パーマ) \ __module_param_call(MODULE_PARAM_PREFIX、\ 名前、設定、取得、引数、\ __same_type(*(arg), bool), perm) #define __module_param_call(プレフィックス、名前、設定、取得、引数、isbool、パーマ) \ 静的 int __param_perm_check_##name __attribute__((未使用)) = \ BUILD_BUG_ON_ZERO((perm) < 0 || (perm) > 0777 || ((perm) & 2)) \ + BUILD_BUG_ON_ZERO(sizeof(""プレフィックス) > MAX_PARAM_PREFIX_LEN); \ 静的const char __param_str_##name[] = プレフィックス #name; \ 静的構造体 kernel_param __moduleparam_const __param_##name \ __使用済み \ __attribute__ ((未使用、__section__ ("__param")、aligned(sizeof(void *)))) \ = { __param_str_##name、perm、isbool ? KPARAM_ISBOOL : 0、\ 設定、取得、{ 引数 } } 複数の c ファイルをモジュールにコンパイルできます。これは、次のように Makefile xxx-objs の指示を使用して実現できます。 test-objs := ao bo // ac と bc から test.ko にコンパイルします。ターゲット ko ファイルと同じ名前の .o ファイルは存在しないことに注意してください。obj-m += test.o システム内のモジュール情報は、/sys/module/モジュール名/で確認できます。 1. elfファイルの情報を表示する
Koファイルの構成
2. EXPORT_SYMBOL(関数名/変数アドレス) //関数または変数のアドレスをカーネルシンボルテーブルにエクスポートします EXPORT_SYMBOL_GPL(関数名) /////////// /proc/kallsyms 現在のシステムのシンボルテーブルを表示する 要約する 以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。 以下もご興味があるかもしれません:
|
<<: MySQL 5.5 で範囲パーティションを追加および削除する例
>>: cmd と python での MySQL の一般的な操作についての簡単な説明
MySQL 8.0.25解凍版のインストールチュートリアル、参考までに具体的な内容は以下のとおりです...
MySQL はリレーショナル データベース管理システムです。リレーショナル データベースは、すべて...
以下では、SQL クエリ ステートメントを使用して、Mysql データベース内のテーブルのテーブル名...
データが変更されても、DOM ビューはすぐには更新されません。変更直後にノードまたはその値を取得しよ...
まず、top のいくつかのフィールドの意味を紹介します。 VIRT:仮想メモリ使用量1. プロセスが...
さっそく、コードを見てみましょう(初心者:特に言うことはありません) <!DOCTYPE ht...
記事の構成1. 準備2. Java JDK8.0をインストールする3. 環境変数を設定する3. イン...
CentOS6.9+Mysql5.7.18 ソースコードのインストールでは、以下の操作を root ...
Vueに触れたばかりのパートナーの多くは、開発環境ではVueプロジェクトは正常であるが、パッケージ化...
1. ウィンドウ -> 設定を選択してEclipseの設定パネルを開きます。 2. 「設定」ウ...
1. /etc/passwdファイル内のデフォルトシェルが/sbin/nologinではないユーザー...
スプレッド演算子を使用すると、式をある時点で展開できます。スプレッド演算子は、複数のパラメーター (...
キープアライブとは何ですか?通常の開発では、コンポーネントによっては複数回初期化する必要のないものも...
CS: ...コードをコピーコードは次のとおりです。 html,body{ margin:0px; ...
学ぶ内容1. ソフトウェアのインストールとサーバーの設定。 2. (オプションですが、強くお勧めしま...