PR_SET_TAGGED_ADDR_CTRL(2const)

الاسم
PR_SET_TAGGED_ADDR_CTRL - التحكم في دعم تمرير عناوين مساحة المستخدم الموسومة إلى النواة

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

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

int prctl(PR_SET_TAGGED_ADDR_CTRL, long mode, 0L, 0L, 0L);

الوصف
يتحكم في دعم تمرير عناوين مساحة المستخدم الموسومة إلى النواة (أي العناوين حيث الخانات 56—63 ليست كلها صفرًا).

يتم اختيار مستوى الدعم بواسطة support، والذي يمكن أن يكون أحد ما يلي:

0L  يجب أن تكون العناوين التي يتم تمريرها لغرض إلغاء الإشارة إليها بواسطة النواة غير موسومة.

PR_TAGGED_ADDR_ENABLE
    يمكن أن تكون العناوين التي يتم تمريرها لغرض إلغاء الإشارة إليها بواسطة النواة موسومة، مع الاستثناءات الملخصة أدناه.

عند النجاح، يتم تعيين الوضع المحدد في mode للخيط المستدعي.

إذا فشل prctl(PR_SET_TAGGED_ADDR_CTRL, 0L, 0L, 0L, 0L) مع EINVAL، فيجب أن تكون جميع العناوين الممررة إلى النواة غير موسومة.

بغض النظر عن الوضع الذي تم تعيينه، يجب أن تكون العناوين الممررة إلى واجهات معينة غير موسومة دائمًا:

•   brk(2)، mmap(2)، shmat(2)، shmdt(2)، ووسيطة new_address الخاصة بـ mremap(2).

    (قبل لينكس 5.6 كانت هذه تقبل العناوين الموسومة، لكن السلوك قد لا يكون ما تتوقعه. لا تعتمد عليه.)

•   الواجهات ‘متعددة الأشكال’ التي تقبل مؤشرات لأنواع عشوائية محولة إلى void * أو نوع عام آخر، وتحديدًا prctl()، ioctl(2)، وبشكل عام setsockopt(2) (فقط خيارات setsockopt(2) محددة معينة تسمح بالعناوين الموسومة).

قد تتقلص قائمة الاستثناءات هذه عند الانتقال من إصدار نواة إلى إصدار نواة أحدث. بينما قد تقدم النواة بعض الضمانات لأسباب التوافق العكسي، لأغراض البرمجيات الجديدة فإن تأثير تمرير العناوين الموسومة إلى هذه الواجهات غير محدد.

الوضع الذي تم تعيينه بواسطة هذه الاستدعاء يتم توريثه عبر fork(2) وclone(2). يتم إعادة تعيين الوضع بواسطة execve(2) إلى 0 (أي العناوين الموسومة غير مسموح بها في واجهة المستخدم/النواة الثنائية).

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

الأخطاء

EINVAL
    mode غير صالح أو غير مدعوم.

EINVAL
    هذه الميزة معطلة عبر /proc/sys/abi/tagged_addr_disabled.

الملفات

/proc/sys/abi/tagged_addr_disabled

المعايير
لينكس. arm64 فقط.

التاريخ
لينكس 5.4 (arm64).

تحذيرات
هذا الاستدعاء مخصص أساسًا للاستخدام من قبل بيئة وقت التشغيل. قد يؤدي استدعاء PR_SET_TAGGED_ADDR_CTRL ناجح في مكان آخر إلى تعطل العملية المستدعية. شروط استخدامه بأمان معقدة وتعتمد على النظام. لا تستخدمه إلا إذا كنت تعرف ما تفعله.

انظر أيضًا
prctl(2)، PR_SET_TAGGED_ADDR_CTRL(2const)

لمزيد من المعلومات، راجع ملف مصدر النواة Documentation/arm64/tagged-address-abi.rst.

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

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

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