1. Modulparameter Definieren von Variablen im Treiber static int num = 0; //Wenn das Lademodul den Wert von num nicht angibt, ist er 0
Die aufrufende Beziehung von module_param ist wie folgt: #define module_param(Name, Typ, Dauer) \ module_param_named(Name, Name, Typ, Dauer) #define module_param_named(Name, Wert, Typ, Perm) \ param_check_##Typ(Name, &(Wert)); \ module_param_call(Name, param_set_##Typ, param_get_##Typ, &Wert, perm); \ __MODULE_PARM_TYPE(Name, #Typ) #define module_param_call(name, setze, empfange, arg, perm) \ __module_param_call(MODULE_PARAM_PREFIX, \ Name, Satz, Abrufen, Argument, \ __same_type(*(arg), bool), dauerhaft) #define __module_param_call(Präfix, Name, Set, Get, Argument, Isbool, Perm) \ statische int __param_perm_check_##name __attribute__((unbenutzt)) = \ BUILD_BUG_ON_ZERO((perm) < 0 || (perm) > 0777 || ((perm) & 2)) \ + BUILD_BUG_ON_ZERO(Größe von(""Präfix) > MAX_PARAM_PREFIX_LEN); \ static const char __param_str_##name[] = Präfix #name; \ statische Struktur kernel_param __moduleparam_const __param_##name \ __gebraucht \ __attribute__ ((unbenutzt,__section__ ("__param"),ausgerichtet(sizeof(void *)))) \ = { __param_str_##name, perm, isbool ? KPARAM_ISBOOL : 0, \ setzen, abrufen, { arg } } Mehrere C-Dateien können in ein Modul kompiliert werden. Dies kann mit den Anweisungen im Makefile xxx-objs wie folgt erreicht werden: test-objs := ao bo //Kompilieren Sie ac und bc in test.ko. Beachten Sie, dass es keine .o-Datei mit demselben Namen wie die Ziel-KO-Datei geben kann obj-m += test.o Sie können die Modulinformationen im System unter /sys/module/modulname/ einsehen. 1. Zeigen Sie die Informationen der Elf-Datei an Ko-Dateizusammensetzung
2. EXPORT_SYMBOL (Funktionsname/Variablenadresse) // Exportiere die Adresse der Funktion/oder Variable in die Kernel-Symboltabelle EXPORT_SYMBOL_GPL(Funktionsname) /////////// /proc/kallsyms Zeigt die Symboltabelle des aktuellen Systems an Zusammenfassen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an Das könnte Sie auch interessieren:
|
<<: Beispiel für das Hinzufügen und Löschen von Bereichspartitionen in MySQL 5.5
In diesem Artikel wird der spezifische Code von V...
0 Unterschiede zwischen Symbolen und Bildern Symb...
1. Was sind die Vorlagen für ASP.NET-Webanwendunge...
Vorwort Kürzlich trat in der Testumgebung ein Pro...
Inhaltsverzeichnis Zeig mir den Code Testen Sie d...
1. Einführung in Layer 4 Load Balancing Was ist L...
Detaillierte Erklärung zum MySQL-Export von Daten...
Aktualisierung der Ereignisantwort: Aktualisierun...
Inhaltsverzeichnis 1. Open-Source-Lagerverwaltung...
1. Hintergrund der parallelen Replikation Zunächs...
Das Internet ist ein Organismus, der sich ständig...
Inhaltsverzeichnis Sequenz 1. Zentralisiertes Rou...
MySQL auf Groß-/Kleinschreibung eingestellt Windo...
Warum die Dateisteuerung verschönern? Stellen Sie ...
Herstellen einer Verbindung mit MySQL Hier verwen...