PR_SET_SPECULATION_CTRL(2const)

الاسم
PR_SET_SPECULATION_CTRL - تعيين حالة ميزة التخمين الخاطئة للخيط المستدعي

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

موجز
#include <linux/prctl.h>  /* تعريف ثوابت PR_* */
#include <sys/prctl.h>

int prctl(PR_SET_SPECULATION_CTRL, long misfeature, long val, 0L, 0L);

الوصف
يضبط حالة ميزة التخمين الخاطئة المحددة في misfeature. إعدادات ميزة التخمين الخاطئة هي سمات لكل خيط.

حاليًا، misfeature يجب أن يكون أحد:

PR_SPEC_STORE_BYPASS
    ضبط حالة ميزة تجاوز التخزين التخميني الخاطئة.

PR_SPEC_INDIRECT_BRANCH (منذ لينكس 4.20)
    ضبط حالة ميزة تخمين الفرع غير المباشر الخاطئة.

الوسيطة val تُستخدم لتقديم قيمة التحكم، وهي إحدى التالية:

PR_SPEC_ENABLE
    ميزة التكهن (speculation) مفعلة، وإجراءات التخفيف معطلة.

PR_SPEC_DISABLE
    ميزة التكهن (speculation) معطلة، وإجراءات التخفيف مفعلة.

PR_SPEC_FORCE_DISABLE
    مثل PR_SPEC_DISABLE، لكن لا يمكن التراجع عنها.

PR_SPEC_DISABLE_NOEXEC (منذ لينكس 5.1)
    مثل PR_SPEC_DISABLE، لكن الحالة ستُمسح عند execve(2). حالياً مدعوم فقط لـ PR_SPEC_STORE_BYPASS.

يمكن أيضًا التحكم في ميزة التخمين بواسطة معامل الإقلاع spec_store_bypass_disable. قد يفرض هذا المعامل سياسة للقراءة فقط تؤدي إلى فشل استدعاء prctl() مع الخطأ ENXIO. لمزيد من التفاصيل، انظر ملف مصدر النواة Documentation/admin-guide/kernel-parameters.rst.

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

الأخطاء

ENODEV
    النواة أو وحدة المعالجة المركزية لا تدعم ميزة التخمين الخاطئة المطلوبة.

ENXIO
    التحكم في ميزة التخمين الخاطئة المحددة غير ممكن. انظر PR_GET_SPECULATION_CTRL لحقول البت لتحديد أي خيار متاح.

EPERM
    تم تعطيل التخمين باستخدام PR_SPEC_FORCE_DISABLE وحاول المستدعي تمكينه مرة أخرى.

ERANGE
    misfeature ليست قيمة صالحة.

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

التاريخ
لينكس 4.17.

انظر أيضًا
prctl(2), PR_GET_SPECULATION_CTRL(2const)

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

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

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