From 4288c618649046baa0d3fcae725f81d497b018ff Mon Sep 17 00:00:00 2001 From: Marcela Maslanova Date: Sat, 9 Feb 2013 22:27:28 +0100 Subject: [PATCH] getunwind.2: New page documenting getunwind(2) Taken from Red Hat downstream man pages set Signed-off-by: Michael Kerrisk --- man2/getunwind.2 | 91 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 man2/getunwind.2 diff --git a/man2/getunwind.2 b/man2/getunwind.2 new file mode 100644 index 000000000..968e7f8a8 --- /dev/null +++ b/man2/getunwind.2 @@ -0,0 +1,91 @@ +.\" Copyright (C) 2006 Red Hat, Inc. All Rights Reserved. +.\" Written by Marcela Maslanova +.\" +.\" Permission is granted to make and distribute verbatim copies of this +.\" manual provided the copyright notice and this permission notice are +.\" preserved on all copies. +.\" +.\" Permission is granted to copy and distribute modified versions of this +.\" manual under the conditions for verbatim copying, provided that the +.\" entire resulting derived work is distributed under the terms of a +.\" permission notice identical to this one. +.\" +.\" Since the Linux kernel and libraries are constantly changing, this +.\" manual page may be incorrect or out-of-date. The author(s) assume no +.\" responsibility for errors or omissions, or for damages resulting from +.\" the use of the information contained herein. The author(s) may not +.\" have taken the same level of care in the production of this manual, +.\" which is licensed free of charge, as they might when working +.\" professionally. +.\" +.\" Formatted or processed versions of this manual, if unaccompanied by +.\" the source, must acknowledge the copyright and authors of this work. +.\" +.\" +.TH GETUNWIND 2 "29 August 2006" Linux "Linux System Calls" +.SH NAME +getunwind \- copy the unwind data to caller's buffer + +.SH SYNOPSIS +.nf +.B #include +.B #include +.sp +.BI "long getunwind (void " *buf ", size_t " buf_size ); +.fi +.SH DESCRIPTION +The +.B sys_getunwind +function returns size of unwind table, which describes gate page (kernel code that +is mapped into user space). + +The unwind data is copied to the buffer \fIbuf\fR, which has size \fIbuf_size\fR. +The data is copied +only if \fIbuf_size\fR is greater than or equal to the size of the +unwind data and \fIbuf\fR is not NULL. +The system call returns the size of the unwind data in both cases. + +The first part of the unwind data contains an unwind table. +The rest contains the associated unwind info in random order. +The unwind table contains a table looking like: + +.nf + u64 start; (64-bit address of start of function) + u64 end; (64-bit address of start of function) + u64 info; (BUF-relative offset to unwind info) +.fi + +An entry with a START address of zero is the end of table. +For more information about the format you can see the IA-64 +Software Conventions and Runtime Architecture. + +.SH "RETURN VALUE" +The +.B sys_getunwind +function returns size of unwind table. + +.SH ERRORS +The +.B sys_getunwind +function fails with +.B EFAULT +if the unwind info can't be stored in the space specified by +the +.I buf +argument. + +.SH AVAILABILITY +This system call is available only on the IA-64 architecture. + +.SH APPLICATION USAGE +This system call has been deprecated. It's highly recommended to get at the kernel's +unwind info by the gate DSO. The address of the ELF header for this DSO +is passed to user level via AT_SYSINFO_EHDR. + +The system call is not available to application programs as a function; +it can be called using the +.BR syscall (2) +function. + +.SH "SEE ALSO" +.BR syscall(2),