s390_guarded_storage(2)

الاسم
s390_guarded_storage - عمليات مع ميزة التخزين المحروس لمعمارية z/Architecture

المكتبة
مكتبة سي المعيارية (libc، -lc)

موجز
#include <asm/guarded_storage.h> /* تعريف ثوابت GS_* */
#include <sys/syscall.h>         /* تعريف ثوابت SYS_* */
#include <unistd.h>

int syscall(SYS_s390_guarded_storage, int command,
            struct gs_cb *gs_cb);

ملاحظة: لا توفر glibc غلافًا لـ s390_guarded_storage()، مما يستلزم استخدام syscall(2).

الوصف
استدعاء النظام s390_guarded_storage() يمكّن استخدام ميزة التخزين المحروس (ميزة خاصة بمعمارية z/Architecture) لعمليات مساحة المستخدم.

ميزة التخزين المحروس هي ميزة عتادية تسمح بتعليم ما يصل إلى 64 منطقة ذاكرة (اعتبارًا من z14) كمحروسة؛ قراءة مؤشر بتعليمات "تحميل محروس" (LGG) أو "تحميل منطقي وإزاحة محروس" (LLGFSG) ستؤدي إلى فحص نطاق للقيمة المحملة واستدعاء معالج مساحة مستخدم (مُعد مسبقًا) إذا تأثرت إحدى المناطق المحروسة.

وسيطة command تشير إلى الوظيفة التي سيتم تنفيذها. الأوامر التالية مدعومة:

GS_ENABLE
    تمكين ميزة التخزين المحروس للمهمة المستدعية. المحتوى الأولي لكتلة التحكم في التخزين المحروس سيكون جميع الأصفار. بعد التمكين، يمكن لرمز مساحة المستخدم استخدام تعليمة "تحميل ضوابط التخزين المحروس" (LGSC) (أو غلاف الدالة load_gs_cb() المقدم في ملف الرأس asm/guarded_storage.h) لتحميل كتلة تحكم عشوائية. بينما تكون المهمة ممكنة، سيحفظ النواة ويستعيد المحتوى المستدعي لسجلات التخزين المحروس عند تبديل السياق.

GS_DISABLE
    تعطيل استخدام ميزة التخزين المحروس للمهمة المستدعية. ستتوقف النواة عن حفظ واستعادة محتوى سجلات التخزين المحروس، ويُفقد المحتوى الخاص بالمهمة لهذه السجلات.

GS_SET_BC_CB
    تعيين كتلة تحكم تخزين محروس بث إلى تلك المقدمة في وسيطة gs_cb. يُستدعى هذا لكل خيط ويربط كتلة تحكم تخزين محروس محددة بالمهمة المستدعية. ستُستخدم كتلة التحكم هذه في أمر البث GS_BROADCAST.

GS_CLEAR_BC_CB
    مسح كتلة التحكم في التخزين المحروس للبث. لن تحتوي كتلة التحكم في التخزين المحروس بعد الآن على الارتباط الذي أنشأه أمر GS_SET_BC_CB.

GS_BROADCAST
    إرسال بث إلى جميع أشقاء الخيط للمهمة المستدعية. كل شقيق أنشأ كتلة تحكم تخزين محروس بث سيحمل كتلة التحكم هذه وسيتم تمكينه للتخزين المحروس. تُستهلك كتلة التحكم في التخزين المحروس للبث؛ البث الثاني دون تحديث كتلة التحكم المخزنة بـ GS_SET_BC_CB لن يكون له أي تأثير.

وسيطة gs_cb تحدد عنوان بنية كتلة تحكم تخزين محروس وتُستخدم حاليًا فقط بواسطة أمر GS_SET_BC_CB؛ جميع الأوامر الأخرى المذكورة أعلاه تتجاهل هذه الوسيطة.

قيمة الإرجاع
عند النجاح، تكون قيمة الإرجاع لـ s390_guarded_storage() هي 0.

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

الأخطاء

EFAULT
    كان command هو GS_SET_BC_CB وفشلت نسخ بنية كتلة التحكم في التخزين المحروس المشار إليها بواسطة وسيطة gs_cb.

EINVAL
    القيمة المقدمة في وسيطة command لم تكن صالحة.

ENOMEM
    كان command أحد GS_ENABLE أو GS_SET_BC_CB، وفشل تخصيص كتلة تحكم تخزين محروس جديدة.

EOPNOTSUPP
    ميزة التخزين المحروس غير مدعومة من قبل العتاد.

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

التاريخ
لينكس 4.12، النظام z14.

ملاحظات
وصف ميزة التخزين المحروس مع التعليمات ذات الصلة وتخطيطات بنية كتلة التحكم في التخزين المحروس وقائمة معلمات حدث التخزين المحروس متاح في "مبادئ تشغيل z/Architecture" بدءًا من الإصدار الثاني عشر.

بنية gs_cb تحتوي على حقل gsepla (عنوان قائمة معلمات حدث التخزين المحروس)، وهو مؤشر مساحة مستخدم إلى بنية قائمة معلمات حدث التخزين المحروس (التي تحتوي على عنوان معالج الأحداث المذكور أعلاه في حقل gseha)، وتخطيطها متاح كتعريف نوع بنية gs_epl في ملف الرأس asm/guarded_storage.h.

انظر أيضًا
syscall(2)

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

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

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