get_kernel_syms(2)

الاسم
get_kernel_syms - استرداد رموز النواة والوحدات المُصدّرة

موجز
#include <linux/module.h>

[[deprecated]] int get_kernel_syms(struct kernel_sym *table);

الوصف
ملاحظة: نداء النظام هذا موجود فقط قبل لينكس 2.6.

إذا كان table فارغًا (NULL)، يُرجع get_kernel_syms() عدد الرموز المتاحة للاستعلام. وإلا، يملأ جدولًا من الهياكل:

    struct kernel_sym {
        unsigned long value;
        char          name[60];
    };

تُخلط الرموز مع رموز سحرية بالصيغة #module-name حيث يكون للنواة اسم فارغ. القيمة المرتبطة برمز بهذه الصيغة هي العنوان الذي يُحمّل عنده الوحدة.

تتبع الرموز المُصدّرة من كل وحدة علامة الوحدة السحرية الخاصة بها، وتُعاد الوحدات بترتيب عكسي لترتيب تحميلها.

قيمة الإرجاع
عند النجاح، يُرجع عدد الرموز المنسوخة إلى table. عند الخطأ، يُرجع -1 ويُضبط errno للإشارة إلى الخطأ.

الأخطاء
يوجد خطأ واحد محتمل فقط:

ENOSYS
    get_kernel_syms() غير مدعوم في هذا الإصدار من النواة.

المعايير
لينكس.

التاريخ
أُزيل في لينكس 2.6.

استدعاء النظام المهجور هذا غير مدعوم من glibc. لا يتوفر أي تصريح عنه في ترويسات glibc، ولكن، لصدفة تاريخية، صدرت نسخ glibc قبل 2.23 واجهة ABI لاستدعاء النظام هذا. لذلك، ومن أجل توظيف استدعاء النظام هذا، كان يكفي التصريح يدويًا عن الواجهة في كودك؛ بدلاً من ذلك، يمكنك استدعاء النظام باستخدام syscall(2).

العلل
لا توجد طريقة للإشارة إلى حجم المخزن المُخصص لـ table. إذا أُضيفت رموز إلى النواة منذ استعلام البرنامج عن حجم جدول الرموز، ستُفسد الذاكرة.

طول أسماء الرموز المُصدّرة محدود بـ 59 حرفًا.

بسبب هذه القيود، هذا النداء النظامي مُهمل لصالح query_module(2) (والذي هو بدوره مُهمل حاليًا لصالح واجهات أخرى موصوفة في صفحة دليله).

انظر أيضًا
create_module(2), delete_module(2), init_module(2), query_module(2)

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.