summaryrefslogtreecommitdiffstats
path: root/man2/getunwind.2
diff options
context:
space:
mode:
Diffstat (limited to 'man2/getunwind.2')
-rw-r--r--man2/getunwind.287
1 files changed, 87 insertions, 0 deletions
diff --git a/man2/getunwind.2 b/man2/getunwind.2
new file mode 100644
index 0000000..eaf7117
--- /dev/null
+++ b/man2/getunwind.2
@@ -0,0 +1,87 @@
+.\" Copyright (C) 2006 Red Hat, Inc. All Rights Reserved.
+.\" Written by Marcela Maslanova <mmaslano@redhat.com>
+.\" and Copyright 2013, Michael Kerrisk <mtk.manpages@gmail.com>
+.\"
+.\" SPDX-License-Identifier: Linux-man-pages-copyleft
+.\"
+.TH getunwind 2 2023-03-30 "Linux man-pages 6.05.01"
+.SH NAME
+getunwind \- copy the unwind data to caller's buffer
+.SH LIBRARY
+Standard C library
+.RI ( libc ", " \-lc )
+.SH SYNOPSIS
+.nf
+.B #include <linux/unwind.h>
+.BR "#include <sys/syscall.h>" " /* Definition of " SYS_* " constants */"
+.B #include <unistd.h>
+.PP
+.BI "[[deprecated]] long syscall(SYS_getunwind, void " buf [. buf_size ],
+.BI " size_t " buf_size );
+.fi
+.SH DESCRIPTION
+.I Note: this system call is obsolete.
+.PP
+The
+IA-64-specific
+.BR getunwind ()
+system call copies the kernel's call frame
+unwind data into the buffer pointed to by
+.I buf
+and returns the size of the unwind data;
+this data describes the gate page (kernel code that
+is mapped into user space).
+.PP
+The size of the buffer
+.I buf
+is specified in
+.IR buf_size .
+The data is copied only if
+.I buf_size
+is greater than or equal to the size of the unwind data and
+.I buf
+is not NULL;
+otherwise, no data is copied, and the call succeeds,
+returning the size that would be needed to store the unwind data.
+.PP
+The first part of the unwind data contains an unwind table.
+The rest contains the associated unwind information, in no particular order.
+The unwind table contains entries of the following form:
+.PP
+.in +4n
+.EX
+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)
+.EE
+.in
+.PP
+An entry whose
+.I start
+value is zero indicates the end of the table.
+For more information about the format, see the
+.I IA-64 Software Conventions and Runtime Architecture
+manual.
+.SH RETURN VALUE
+On success,
+.BR getunwind ()
+returns the size of the unwind data.
+On error, \-1 is returned and
+.I errno
+is set to indicate the error.
+.SH ERRORS
+.BR getunwind ()
+fails with the error
+.B EFAULT
+if the unwind info can't be stored in the space specified by
+.IR buf .
+.SH STANDARDS
+Linux on IA-64.
+.SH HISTORY
+Linux 2.4.
+.PP
+This system call has been deprecated.
+The modern way to obtain the kernel's unwind data is via the
+.BR vdso (7).
+.SH SEE ALSO
+.BR getauxval (3)