]>
Commit | Line | Data |
---|---|---|
4288c618 MM |
1 | .\" Copyright (C) 2006 Red Hat, Inc. All Rights Reserved. |
2 | .\" Written by Marcela Maslanova <mmaslano@redhat.com> | |
31cc8387 | 3 | .\" and Copyright 2013, Michael Kerrisk <mtk.manpages@gmail.com> |
4288c618 | 4 | .\" |
93015253 | 5 | .\" %%%LICENSE_START(VERBATIM) |
4288c618 MM |
6 | .\" Permission is granted to make and distribute verbatim copies of this |
7 | .\" manual provided the copyright notice and this permission notice are | |
8 | .\" preserved on all copies. | |
9 | .\" | |
10 | .\" Permission is granted to copy and distribute modified versions of this | |
11 | .\" manual under the conditions for verbatim copying, provided that the | |
12 | .\" entire resulting derived work is distributed under the terms of a | |
13 | .\" permission notice identical to this one. | |
14 | .\" | |
15 | .\" Since the Linux kernel and libraries are constantly changing, this | |
16 | .\" manual page may be incorrect or out-of-date. The author(s) assume no | |
17 | .\" responsibility for errors or omissions, or for damages resulting from | |
18 | .\" the use of the information contained herein. The author(s) may not | |
19 | .\" have taken the same level of care in the production of this manual, | |
20 | .\" which is licensed free of charge, as they might when working | |
21 | .\" professionally. | |
22 | .\" | |
23 | .\" Formatted or processed versions of this manual, if unaccompanied by | |
24 | .\" the source, must acknowledge the copyright and authors of this work. | |
4b72fb64 | 25 | .\" %%%LICENSE_END |
4288c618 | 26 | .\" |
4b8c67d9 | 27 | .TH GETUNWIND 2 2017-09-15 Linux "Linux Programmer's Manual" |
4288c618 MM |
28 | .SH NAME |
29 | getunwind \- copy the unwind data to caller's buffer | |
4288c618 MM |
30 | .SH SYNOPSIS |
31 | .nf | |
32 | .B #include <syscall.h> | |
33 | .B #include <linux/unwind.h> | |
68e4db0a | 34 | .PP |
fe828902 | 35 | .BI "long getunwind(void " *buf ", size_t " buf_size ); |
4288c618 | 36 | .fi |
dbfe9c70 | 37 | .PP |
fe828902 MK |
38 | .IR Note : |
39 | There is no glibc wrapper for this system call; see NOTES. | |
4288c618 | 40 | .SH DESCRIPTION |
fe828902 | 41 | .I Note: this function is obsolete. |
efeece04 | 42 | .PP |
4288c618 | 43 | The |
fe828902 MK |
44 | IA-64-specific |
45 | .BR getunwind () | |
46 | system call copies the kernel's call frame | |
47 | unwind data into the buffer pointed to by | |
48 | .I buf | |
49 | and returns the size of the unwind data; | |
50 | this data describes the gate page (kernel code that | |
4288c618 | 51 | is mapped into user space). |
efeece04 | 52 | .PP |
fe828902 MK |
53 | The size of the buffer |
54 | .I buf | |
55 | is specified in | |
56 | .IR buf_size . | |
57 | The data is copied only if | |
58 | .I buf_size | |
59 | is greater than or equal to the size of the unwind data and | |
60 | .I buf | |
61 | is not NULL; | |
62 | otherwise, no data is copied, and the call succeeds, | |
63 | returning the size that would be needed to store the unwind data. | |
efeece04 | 64 | .PP |
b072a788 | 65 | The first part of the unwind data contains an unwind table. |
fe828902 MK |
66 | The rest contains the associated unwind information, in no particular order. |
67 | The unwind table contains entries of the following form: | |
efeece04 | 68 | .PP |
b76974c1 MK |
69 | .in +4n |
70 | .EX | |
71 | u64 start; (64-bit address of start of function) | |
72 | u64 end; (64-bit address of end of function) | |
73 | u64 info; (BUF-relative offset to unwind info) | |
74 | .EE | |
75 | .in | |
efeece04 | 76 | .PP |
fe828902 | 77 | An entry whose |
cfd32c7e | 78 | .I start |
fe828902 MK |
79 | value is zero indicates the end of the table. |
80 | For more information about the format, see the | |
81 | .I IA-64 Software Conventions and Runtime Architecture | |
82 | manual. | |
47297adb | 83 | .SH RETURN VALUE |
fe828902 MK |
84 | On success, |
85 | .BR getunwind () | |
eee740e3 | 86 | returns the size of the unwind data. |
fe828902 MK |
87 | On error, \-1 is returned and |
88 | .I errno | |
89 | is set to indicate the error. | |
4288c618 | 90 | .SH ERRORS |
fe828902 MK |
91 | .BR getunwind () |
92 | fails with the error | |
4288c618 MM |
93 | .B EFAULT |
94 | if the unwind info can't be stored in the space specified by | |
b072a788 | 95 | .IR buf . |
fe828902 MK |
96 | .SH VERSIONS |
97 | This system call is available since Linux 2.4. | |
fe828902 | 98 | .SH CONFORMING TO |
76c637e1 | 99 | This system call is Linux-specific, |
fe828902 | 100 | and is available only on the IA-64 architecture. |
fe828902 MK |
101 | .SH NOTES |
102 | This system call has been deprecated. | |
3a03cb85 MK |
103 | The modern way to obtain the kernel's unwind data is via the |
104 | .BR vdso (7). | |
efeece04 | 105 | .PP |
fe828902 MK |
106 | Glibc does not provide a wrapper for this system call; |
107 | in the unlikely event that you want to call it, use | |
108 | .BR syscall (2). | |
47297adb | 109 | .SH SEE ALSO |
fe828902 | 110 | .BR getauxval (3) |