Start of man-pages-NEXT: Move Changes to Changes.old
[man-pages.git] / man2 / lookup_dcookie.2
blob6b00f69628b532f91c6222b84b66f947227178bc
1 .\" Copyright (C) 2003 John Levon <levon@movementarian.org>
2 .\"
3 .\" SPDX-License-Identifier: Linux-man-pages-copyleft
4 .\"
5 .\" Modified 2004-06-17 Michael Kerrisk <mtk.manpages@gmail.com>
6 .\"
7 .TH LOOKUP_DCOOKIE 2 2022-09-09 "Linux man-pages (unreleased)"
8 .SH NAME
9 lookup_dcookie \- return a directory entry's path
10 .SH LIBRARY
11 Standard C library
12 .RI ( libc ", " \-lc )
13 .SH SYNOPSIS
14 .nf
15 .BR "#include <sys/syscall.h>" "      /* Definition of " SYS_* " constants */"
16 .B #include <unistd.h>
17 .PP
18 .BI "int syscall(SYS_lookup_dcookie, uint64_t " cookie ", char *" buffer ,
19 .BI "            size_t " len );
20 .fi
21 .PP
22 .IR Note :
23 glibc provides no wrapper for
24 .BR lookup_dcookie (),
25 necessitating the use of
26 .BR syscall (2).
27 .SH DESCRIPTION
28 Look up the full path of the directory entry specified by the value
29 .IR cookie .
30 The cookie is an opaque identifier uniquely identifying a particular
31 directory entry.
32 The buffer given is filled in with the full path of the directory entry.
33 .PP
34 For
35 .BR lookup_dcookie ()
36 to return successfully,
37 the kernel must still hold a cookie reference to the directory entry.
38 .SH RETURN VALUE
39 On success,
40 .BR lookup_dcookie ()
41 returns the length of the path string copied into the buffer.
42 On error, \-1 is returned, and
43 .I errno
44 is set to indicate the error.
45 .SH ERRORS
46 .TP
47 .B EFAULT
48 The buffer was not valid.
49 .TP
50 .B EINVAL
51 The kernel has no registered cookie/directory entry mappings at the
52 time of lookup, or the cookie does not refer to a valid directory entry.
53 .TP
54 .B ENAMETOOLONG
55 The name could not fit in the buffer.
56 .TP
57 .B ENOMEM
58 The kernel could not allocate memory for the temporary buffer holding
59 the path.
60 .TP
61 .B EPERM
62 The process does not have the capability
63 .B CAP_SYS_ADMIN
64 required to look up cookie values.
65 .TP
66 .B ERANGE
67 The buffer was not large enough to hold the path of the directory entry.
68 .SH VERSIONS
69 Available since Linux 2.5.43.
70 The
71 .B ENAMETOOLONG
72 error return was added in 2.5.70.
73 .SH STANDARDS
74 .BR lookup_dcookie ()
75 is Linux-specific.
76 .SH NOTES
77 .BR lookup_dcookie ()
78 is a special-purpose system call, currently used only by the
79 .BR oprofile (1)
80 profiler.
81 It relies on a kernel driver to register cookies for directory entries.
82 .PP
83 The path returned may be suffixed by the string " (deleted)" if the directory
84 entry has been removed.
85 .SH SEE ALSO
86 .BR oprofile (1)