getunwind(2)

الاسم
getunwind - نسخ بيانات فك الالتفاف إلى مخزن المستدعي

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

موجز
#include <linux/unwind.h>
#include <sys/syscall.h>      /* Definition of SYS_* constants */
#include <unistd.h>

[[deprecated]] long syscall(size_t buf_size;
                            SYS_getunwind, void buf[buf_size],
                            size_t buf_size);

الوصف
ملاحظة: هذه الاستدعاء النظامي قديم.

يقوم استدعاء النظام getunwind() الخاص بـ IA-64 بنسخ بيانات فك الالتفاف لإطار استدعاء النواة إلى المخزن المشار إليه بـ buf ويعيد حجم بيانات فك الالتفاف؛ تصف هذه البيانات صفحة البوابة (رمز النواة المُخطط في مساحة المستخدم).

يُحدد حجم المخزن buf في buf_size. تُنسخ البيانات فقط إذا كان buf_size أكبر من أو يساوي حجم بيانات فك الالتفاف وكان buf ليس NULL؛ وإلا، لا تُنسخ أي بيانات، وينجح الاستدعاء، معيدًا الحجم المطلوب لتخزين بيانات فك الالتفاف.

يحتوي الجزء الأول من بيانات فك الالتفاف على جدول فك الالتفاف. يحتوي الباقي على معلومات فك الالتفاف المرتبطة، بدون ترتيب معين. يحتوي جدول فك الالتفاف على مدخلات بالشكل التالي:

    u64 start;      (64-bit address of start of function)
    u64 end;        (64-bit address of end of function)
    u64 info;       (BUF-relative offset to unwind info)

يشير مدخل بقيمة start صفر إلى نهاية الجدول. لمزيد من المعلومات حول التنسيق، انظر دليل IA-64 Software Conventions and Runtime Architecture.

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

الأخطاء
يفشل getunwind() مع الخطأ EFAULT إذا تعذر تخزين معلومات فك الالتفاف في المساحة المحددة بواسطة buf.

المعايير
لينكس على IA-64.

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

هذا الاستدعاء النظامي مهمل. الطريقة الحديثة للحصول على بيانات فك الالتفاف للنواة هي عبر vdso(7).

انظر أيضًا
getauxval(3)

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

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

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