.\" -*- coding: UTF-8 -*- .\" Copyright 2021, Gabriel Krisman Bertazi .\" Copyright 2021, Michael Kerrisk .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH PR_SET_SYSCALL_USER_DISPATCH 2const "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم PR_SET_SYSCALL_USER_DISPATCH \- تعيين آلية توزيع استدعاءات النظام للمستخدم بالنسبة للخيط المستدعي .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP /* تعريف ثوابت \fBPR_*\fP */ \fB#include \fP .P \fBint prctl(PR_SET_SYSCALL_USER_DISPATCH, long \fP\fIop\fP\fB, ...);\fP .P \fBint prctl(PR_SET_SYSCALL_USER_DISPATCH, PR_SYS_DISPATCH_ON,\fP \fB unsigned long \fP\fIoff\fP\fB, unsigned long \fP\fIsize\fP\fB, int8_t *\fP\fIswitch\fP\fB);\fP \fBint prctl(PR_SET_SYSCALL_USER_DISPATCH, PR_SYS_DISPATCH_OFF, 0L, 0L, 0L);\fP .fi .SH الوصف ضبط آلية توزيع استدعاءات النظام للمستخدم للخيط المستدعي. تسمح هذه الآلية للتطبيق باعتراض استدعاءات النظام بشكل انتقائي بحيث يمكن معالجتها داخل التطبيق نفسه. يأخذ الاعتراض شكل إشارة \fBSIGSYS\fP موجهة للخيط تُرسل إلى الخيط عند قيامه باستدعاء نظام. إذا تم اعتراضه، لا ينفذ النواة استدعاء النظام. .TP \fBPR_SYS_DISPATCH_ON\fP تفعيل هذه الآلية. .IP بمجرد التفعيل، سيتم اعتراض استدعاءات النظام اللاحقة بشكل انتقائي، اعتمادًا على متغير تحكم يوفره مساحة المستخدم. في هذه الحالة، يحدد \fIoff\fP و \fIsize\fP على التوالي الإزاحة والحجم لمنطقة ذاكرة متصلة واحدة في مساحة عنوان العملية حيث يُسمح دائمًا بتنفيذ استدعاءات النظام، بغض النظر عن متغير التحكم. (عادةً، ستتضمن هذه المنطقة منطقة الذاكرة التي تحتوي على مكتبة C.) .IP يشير \fIswitch\fP إلى متغير يعمل كمفتاح سريع للسماح/منع تنفيذ استدعاء النظام دون عبء إجراء استدعاء نظام آخر لإعادة ضبط توزيع استدعاءات النظام للمستخدم. يمكن ضبط متغير التحكم هذا إما على \fBSYSCALL_DISPATCH_FILTER_BLOCK\fP لمنع تنفيذ استدعاءات النظام أو على \fBSYSCALL_DISPATCH_FILTER_ALLOW\fP للسماح مؤقتًا بتنفيذها. يتحقق النواة من هذه القيمة عند كل دخول لاستدعاء نظام، وأي قيمة غير متوقعة ستثير إشارة \fBSIGSYS\fP غير قابلة للالتقاط في ذلك الوقت، مما يقتل التطبيق. .IP عند اعتراض استدعاء نظام، يرسل النواة إشارة \fBSIGSYS\fP موجهة للخيط إلى الخيط المسبب. سيتم ضبط عدة حقول في بنية \fIsiginfo_t\fP (انظر \fBsigaction\fP(2)) المرتبطة بالإشارة: .RS .IP \[bu] 3 سيحتوي \fIsi_signo\fP على \fBSIGSYS\fP. .IP \[bu] سيعرض \fIsi_call_addr\fP عنوان تعليمة استدعاء النظام. .IP \[bu] سيوضح \fIsi_syscall\fP و \fIsi_arch\fP استدعاء النظام الذي جرت محاولته. .IP \[bu] سيحتوي \fIsi_code\fP على \fBSYS_USER_DISPATCH\fP. .IP \[bu] سيتم ضبط \fIsi_errno\fP على 0. .RE .IP سيكون عداد البرنامج كما لو أن استدعاء النظام حدث (أي، لن يشير عداد البرنامج إلى تعليمة استدعاء النظام). .IP عندما يعود معالج الإشارة إلى النواة، يكتمل استدعاء النظام فورًا ويعود إلى الخيط المستدعي، دون أن يتم تنفيذه فعليًا. إذا لزم الأمر (أي، عند محاكاة استدعاء النظام في مساحة المستخدم)، يجب على معالج الإشارة ضبط قيمة إرجاع استدعاء النظام إلى قيمة معقولة، عن طريق تعديل سياق السجلات المخزنة في وسيطة \fIucontext\fP لمعالج الإشارة. انظر \fBsigaction\fP(2) و \fBsigreturn\fP(2) و \fBgetcontext\fP(3) لمزيد من المعلومات. .TP \fBPR_SYS_DISPATCH_OFF\fP تم تعطيل توزيع استدعاءات النظام للمستخدم لهذا الخيط. .P لا يتم الحفاظ على الإعداد عبر \fBfork\fP(2) أو \fBclone\fP(2) أو \fBexecve\fP(2). .SH "قيمة الإرجاع" عند النجاح، يُعاد الرقم 0. وعند حدوث خطأ، يُعاد الرقم \-1، ويُضبط \fIerrno\fP للإشارة إلى الخطأ. .SH الأخطاء .TP \fBEFAULT\fP \fIswitch\fP هو عنوان غير صالح. .TP \fBEINVAL\fP \fIop\fP هو \fBPR_SYS_DISPATCH_ON\fP ونطاق الذاكرة المحدد خارج مساحة عنوان العملية. .TP \fBEINVAL\fP \fIop\fP غير صالح. .SH المعايير لينكس. x86 فقط. .SH التاريخ .\" commit 1446e1df9eb183fdf81c3f0715402f1d7595d4 لينكس 5.11 (x86). .SH "انظر أيضًا" \fBprctl\fP(2) .P لمزيد من المعلومات، انظر ملف مصدر النواة \fIDocumentation/\:admin\-guide/\:syscall\-user\-dispatch.rst\fP .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .