ioctl_kd(2)

الاسم
ioctl_kd - أوامر ioctl للطرفية التحكمية ووحدات التحكم الافتراضية

موجز
#include <linux/kd.h>  /* Definition of op constants */
#include <sys/ioctl.h>

int ioctl(int fd, unsigned long op, void *argp);

الوصف
عمليات ioctl(2) الخاصة بلينكس التالية مدعومة لمحطات الطرفية ووحدات التحكم الافتراضية.

KDGETLED
    احصل على حالة مصابيح LED. يشير argp إلى uint8_t. تُضبط البتات الثلاث السفلى من *argp على حالة مصابيح LED، كما يلي:
    LED_CAP | 0x04 | مصباح قفل الأحرف الكبيرة
    LED_NUM | 0x02 | مصباح قفل الأرقام
    LED_SCR | 0x01 | مصباح قفل التمرير

KDSETLED
    اضبط مصابيح LED. تُضبط مصابيح LED لتتوافق مع البتات الثلاث السفلى من العدد الصحيح الطويل غير الموقّع في argp. ومع ذلك، إذا تم ضبط بت ذو ترتيب أعلى، تعود مصابيح LED إلى الوضع الطبيعي: عرض حالة وظائف لوحة المفاتيح لقفل الأحرف الكبيرة وقفل الأرقام وقفل التمرير.

قبل لينكس 1.1.54، كانت مصابيح LED تعكس فقط حالة أعلام لوحة المفاتيح المقابلة، وكانت KDGETLED/KDSETLED تغير أيضًا أعلام لوحة المفاتيح. منذ لينكس 1.1.54، يمكن جعل مصابيح LED تعرض معلومات عشوائية، لكنها مبدئيًا تعرض أعلام لوحة المفاتيح. يُستخدم أمرا ioctl التاليان للوصول إلى أعلام لوحة المفاتيح.

KDGKBLED
    احصل على أعلام لوحة المفاتيح CapsLock وNumLock وScrollLock (وليس الأضواء). يشير argp إلى uint8_t يُضبط على حالة العلم. تحصل البتات الثلاث السفلى (قناع 0x7) على حالة العلم الحالية، وتحصل البتات السفلى من النيبل التالي (قناع 0x70) على حالة العلم المبدئية. (منذ لينكس 1.1.54.)

KDSKBLED
    اضبط أعلام لوحة المفاتيح CapsLock وNumLock وScrollLock (وليس الأضواء). argp هو عدد صحيح طويل غير موقّع يحتوي على حالة العلم المطلوبة. تحتوي البتات الثلاث السفلى (قناع 0x7) على حالة العلم، وتحتوي البتات السفلى من النيبل التالي (قناع 0x70) على حالة العلم المبدئية. (منذ لينكس 1.1.54.)

KDGKBTYPE
    احصل على نوع لوحة المفاتيح. يُرجع هذا القيمة KB_101، المُعرّفة كـ 0x02.

KDADDIO
    أضف منفذ إدخال/إخراج كصالح. مكافئ لـ ioperm(arg,1,1).

KDDELIO
    احذف منفذ إدخال/إخراج كصالح. مكافئ لـ ioperm(arg,1,0).

KDENABIO
    فعّل الإدخال/الإخراج إلى بطاقة الفيديو. مكافئ لـ ioperm(0x3b4, 0x3df-0x3b4+1, 1).

KDDISABIO
    عطّل الإدخال/الإخراج إلى بطاقة الفيديو. مكافئ لـ ioperm(0x3b4, 0x3df-0x3b4+1, 0).

KDSETMODE
    اضبط وضع النص/الرسوميات. argp هو عدد صحيح غير موقّع يحتوي على واحد من:
    KD_TEXT | 0x00
    KD_GRAPHICS | 0x01

KDGETMODE
    الحصول على وضع النص/الرسوميات. يشير argp إلى int يُضبط على إحدى القيم الموضحة أعلاه لـ KDSETMODE.

KDMKTONE
    توليد نغمة بطول محدد. تحدد الـ 16 بت السفلية من العدد الصحيح الطويل غير الموقع في argp الفترة بدورات الساعة، وتعطي الـ 16 بت العلوية المدة بالميلي ثانية. إذا كانت المدة صفرًا، يُطفأ الصوت. تعود السيطرة فورًا. على سبيل المثال، argp = (125<<16) + 0x637 سيحدد الصفير المرتبط عادةً بـ ctrl-G. (وهكذا، منذ Linux 0.99pl1؛ معطل في Linux 2.1.49-50.)

KIOCSOUND
    بدء أو إيقاف توليد الصوت. تحدد الـ 16 بت السفلية من argp الفترة بدورات الساعة (أي argp = 1193180/التردد). argp = 0 يطفئ الصوت. في كلتا الحالتين، تعود السيطرة فورًا.

GIO_CMAP
    الحصول على خريطة الألوان المبدئية الحالية من النواة. يشير argp إلى مصفوفة بحجم 48 بايت. (منذ Linux 1.3.3.)

PIO_CMAP
    تغيير خريطة الألوان المبدئية لوضع النص. يشير argp إلى مصفوفة بحجم 48 بايت تحتوي، بالترتيب، على قيم الأحمر والأخضر والأزرق للألوان الـ 16 المتاحة للشاشة: 0 يعني إيقاف، و255 يعني شدة كاملة. الألوان المبدئية هي، بالترتيب: أسود، أحمر داكن، أخضر داكن، بني، أزرق داكن، أرجواني داكن، سماوي داكن، رمادي فاتح، رمادي داكن، أحمر ساطع، أخضر ساطع، أصفر، أزرق ساطع، أرجواني ساطع، سماوي ساطع، وأبيض. (منذ Linux 1.3.3.)

GIO_FONT
    الحصول على خط الشاشة ذي 256 حرفًا بشكل موسع. يشير argp إلى مصفوفة بحجم 8192 بايت. يفشل مع رمز الخطأ EINVAL إذا كان الخط المحمل حاليًا هو خط ذو 512 حرفًا، أو إذا لم تكن وحدة التحكم في وضع النص.

GIO_FONTX
    الحصول على خط الشاشة والمعلومات المرتبطة به. يشير argp إلى struct consolefontdesc (انظر PIO_FONTX). عند الاستدعاء، يجب ضبط حقل charcount على أقصى عدد من الأحرف التي قد تتسع في المخزن المؤقت المشار إليه بـ chardata. عند العودة، يُملأ كل من charcount و charheight بالبيانات الخاصة بالخط المحمل حاليًا، وتحتوي مصفوفة chardata على بيانات الخط إذا كانت القيمة الأولية لـ charcount تشير إلى توفر مساحة كافية؛ وإلا، يبقى المخزن المؤقت دون تغيير ويُضبط errno على ENOMEM. (منذ Linux 1.3.1.)

PIO_FONT
    ضبط خط الشاشة ذي 256 حرفًا. تحميل الخط في مولد الأحرف EGA/VGA. يشير argp إلى خريطة بحجم 8192 بايت، مع 32 بايت لكل حرف. يُستخدم فقط أول N منها لخط 8xN (0 < N <= 32). يُبطل هذا الاستدعاء أيضًا تعيين Unicode.

PIO_FONTX
    ضبط خط الشاشة ومعلومات العرض المرتبطة به. يشير argp إلى

        struct consolefontdesc {
            unsigned short charcount;  /* characters in font
                                          (256 or 512) */
            unsigned short charheight; /* scan lines per
                                          character (1-32) */
            char          *chardata;   /* font data in
                                          expanded form */
        };

    إذا لزم الأمر، سيُعاد تحجيم الشاشة بشكل مناسب، ويُرسل SIGWINCH إلى العمليات المناسبة. يُبطل هذا الاستدعاء أيضًا تعيين Unicode. (منذ Linux 1.3.1.)

PIO_FONTRESET
    إعادة ضبط خط الشاشة وحجمه وتعيين Unicode إلى الإعدادات المبدئية للإقلاع. argp غير مستخدم، ولكن يجب ضبطه على NULL لضمان التوافق مع الإصدارات المستقبلية من Linux. (منذ Linux 1.3.28.)

GIO_SCRNMAP
    الحصول على تعيين الشاشة من النواة. يشير argp إلى منطقة بحجم E_TABSZ، تُحمّل بمواضع الخط المستخدمة لعرض كل حرف. من المحتمل أن يعيد هذا الاستدعاء معلومات غير مفيدة إذا كان الخط المحمل حاليًا يحتوي على أكثر من 256 حرفًا.

GIO_UNISCRNMAP
    الحصول على تعيين Unicode الكامل للشاشة من النواة. يشير argp إلى منطقة بحجم E_TABSZ*sizeof(unsigned short)، تُحمّل بـ Unicodes التي يمثلها كل حرف. تُستخدم مجموعة خاصة من Unicodes، تبدأ من U+F000، لتمثيل تعيينات "مباشرة إلى الخط". (منذ Linux 1.3.1.)

PIO_SCRNMAP
    تحميل الجدول "القابل للتعريف من قبل المستخدم" (الرابع) في النواة الذي يعيّن البايتات إلى رموز شاشة وحدة التحكم. يشير argp إلى منطقة بحجم E_TABSZ.

PIO_UNISCRNMAP
    تحمّل الجدول "القابل للتعريف من قبل المستخدم" (الرابع) في النواة الذي يربط البايتات بـ Unicodes، والتي تُترجم بعد ذلك إلى رموز شاشة وفقًا لخريطة Unicode-to-font المحملة حاليًا. يمكن استخدام Unicodes الخاصة التي تبدأ بـ U+F000 للربط مباشرة برموز الخط. (منذ Linux 1.3.1.)

GIO_UNIMAP
    الحصول على خريطة Unicode-to-font من النواة. يشير argp إلى

        struct unimapdesc {
            unsigned short  entry_ct;
            struct unipair *entries;
        };

    حيث يشير entries إلى مصفوفة من

        struct unipair {
            unsigned short unicode;
            unsigned short fontpos;
        };

    (منذ Linux 1.1.92.)

PIO_UNIMAP
    وضع خريطة unicode-to-font في النواة. يشير argp إلى struct unimapdesc. (منذ Linux 1.1.92)

PIO_UNIMAPCLR
    مسح الجدول، مع إمكانية تقديم نصيحة لخوارزمية التجزئة. يشير argp إلى

        struct unimapinit {
            unsigned short advised_hashsize;  /* 0 if no opinion */
            unsigned short advised_hashstep;  /* 0 if no opinion */
            unsigned short advised_hashlevel; /* 0 if no opinion */
        };

    (منذ Linux 1.1.92.)

KDGKBMODE
    يحصل على وضع لوحة المفاتيح الحالي. يشير argp إلى long يُضبط على أحد هذه:
    K_RAW | 0x00 /* وضع خام (scancode) */
    K_XLATE | 0x01 /* ترجمة keycodes باستخدام keymap */
    K_MEDIUMRAW | 0x02 /* وضع خام متوسط (scancode) */
    K_UNICODE | 0x03 /* وضع Unicode */
    K_OFF | 0x04 /* وضع معطل (منذ Linux 2.6.39) */

KDSKBMODE
    يضبط وضع لوحة المفاتيح الحالي. argp هو long يساوي إحدى القيم المعروضة لـ KDGKBMODE.

KDGKBMETA
    يحصل على وضع معالجة مفتاح meta. يشير argp إلى long يُضبط على أحد هذه:
    K_METABIT | 0x03 | تعيين البت الأعلى رتبة
    K_ESCPREFIX | 0x04 | بادئة الهروب

KDSKBMETA
    يضبط وضع معالجة مفتاح الميتا. argp هو long يساوي إحدى القيم الموضحة أعلاه لـ KDGKBMETA.

KDGKBENT
    يجلب مدخلة واحدة في جدول ترجمة المفاتيح (من رمز المفتاح إلى رمز الإجراء). argp يشير إلى

        struct kbentry {
            unsigned char  kb_table;
            unsigned char  kb_index;
            unsigned short kb_value;
        };

    مع تعبئة أول عضوين: kb_table يختار جدول المفاتيح (0 <= kb_table < MAX_NR_KEYMAPS)، و kb_index هو رمز المفتاح (0 <= kb_index < NR_KEYS). يُضبط kb_value على رمز الإجراء المقابل، أو K_HOLE إذا لم يكن هناك مفتاح من هذا القبيل، أو K_NOSUCHMAP إذا كان kb_table غير صالح.

KDSKBENT
    يضبط مدخلة واحدة في جدول الترجمة. argp يشير إلى struct kbentry.

KDGKBSENT
    يجلب سلسلة مفتاح وظيفة واحد. argp يشير إلى

        struct kbsentry {
            unsigned char kb_func;
            unsigned char kb_string[512];
        };

    يُضبط kb_string على السلسلة (المنتهية بقيمة خالية) المقابلة لرمز إجراء مفتاح الوظيفة رقم kb_func.

KDSKBSENT
    يضبط مدخلة سلسلة مفتاح وظيفة واحد. argp يشير إلى struct kbsentry.

KDGKBDIACR
    يقرأ جدول التشكيل في النواة. argp يشير إلى

        struct kbdiacrs {
            unsigned int   kb_cnt;
            struct kbdiacr kbdiacr[256];
        };

    حيث kb_cnt هو عدد المدخلات في المصفوفة، كل منها هو

        struct kbdiacr {
            unsigned char diacr;
            unsigned char base;
            unsigned char result;
        };

KDGETKEYCODE
    يقرأ مدخلة جدول رموز المفاتيح في النواة (من رمز المسح إلى رمز المفتاح). argp يشير إلى

        struct kbkeycode {
            unsigned int scancode;
            unsigned int keycode;
        };

    يُضبط keycode ليتوافق مع scancode المعطى. (فقط 89 <= scancode <= 255. بالنسبة لـ 1 <= scancode <= 88، keycode==scancode.) (منذ Linux 1.1.63.)

KDSETKEYCODE
    يكتب مدخلة جدول رموز المفاتيح في النواة. argp يشير إلى struct kbkeycode. (منذ Linux 1.1.63.)

KDSIGACCEPT
    تشير العملية المستدعية إلى استعدادها لقبول الإشارة argp عند توليدها بالضغط على تركيبة مفاتيح مناسبة. (1 <= argp <= NSIG). (انظر spawn_console() في linux/drivers/char/keyboard.c.)

قيمة الإرجاع
يُعاد 0 عند النجاح (إلا في الحالات الموضحة). ويُعاد -1 عند الفشل، وتُضبط errno للإشارة إلى الخطأ.

الأخطاء

EINVAL
    argp غير صالح.

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

انظر أيضًا
ioctl(2)، ioctl_console(2)

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

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

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