]> git.saurik.com Git - apple/libc.git/blame - darwin/libproc.h
Libc-498.1.7.tar.gz
[apple/libc.git] / darwin / libproc.h
CommitLineData
224c7076
A
1/*
2 * Copyright (c) 2006, 2007 Apple Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. Please obtain a copy of the License at
10 * http://www.opensource.apple.com/apsl/ and read it before using this
11 * file.
12 *
13 * The Original Code and all software distributed under the License are
14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18 * Please see the License for the specific language governing rights and
19 * limitations under the License.
20 *
21 * @APPLE_LICENSE_HEADER_END@
22 */
23#ifndef _LIBPROC_H_
24#define _LIBPROC_H_
25
26#include <sys/cdefs.h>
27#include <sys/param.h>
28#include <sys/types.h>
29#include <sys/stat.h>
30#include <sys/mount.h>
31#include <stdint.h>
32
33#include <sys/proc_info.h>
34
35/*
36 * This header file contains private interfaces to obtain process information.
37 * These interfaces are subject to change in future releases.
38 */
39
40/*!
41 @define PROC_LISTPIDSPATH_PATH_IS_VOLUME
42 @discussion This flag indicates that all processes that hold open
43 file references on the volume associated with the specified
44 path should be returned.
45 */
46#define PROC_LISTPIDSPATH_PATH_IS_VOLUME 1
47
48
49/*!
50 @define PROC_LISTPIDSPATH_EXCLUDE_EVTONLY
51 @discussion This flag indicates that file references that were opened
52 with the O_EVTONLY flag should be excluded from the matching
53 criteria.
54 */
55#define PROC_LISTPIDSPATH_EXCLUDE_EVTONLY 2
56
57__BEGIN_DECLS
58
59int proc_listpids(uint32_t type, uint32_t typeinfo, void *buffer, int buffersize);
60
61/*!
62 @function proc_listpidspath
63 @discussion A function which will search through the current
64 processes looking for open file references which match
65 a specified path or volume.
66 @param type types of processes to be searched (see proc_listpids)
67 @param typeinfo adjunct information for type
68 @param path file or volume path
69 @param pathflags flags to control which files should be considered
70 during the process search.
71 @param buffer a C array of int-sized values to be filled with
72 process identifiers that hold an open file reference
73 matching the specified path or volume. Pass NULL to
74 obtain the minimum buffer size needed to hold the
75 currently active processes.
76 @param buffersize the size (in bytes) of the provided buffer.
77 @result the number of bytes of data returned in the provided buffer;
78 -1 if an error was encountered;
79 */
80int proc_listpidspath(uint32_t type,
81 uint32_t typeinfo,
82 const char *path,
83 uint32_t pathflags,
84 void *buffer,
85 int buffersize);
86
87int proc_pidinfo(int pid, int flavor, uint64_t arg, void *buffer, int buffersize);
88int proc_pidfdinfo(int pid, int fd, int flavor, void * buffer, int buffersize);
89int proc_name(int pid, void * buffer, uint32_t buffersize);
90int proc_regionfilename(int pid, uint64_t address, void * buffer, uint32_t buffersize);
91int proc_kmsgbuf(void * buffer, uint32_t buffersize);
92int proc_pidpath(int pid, void * buffer, uint32_t buffersize);
93int proc_libversion(int *major, int * minor);
94
95__END_DECLS
96
97#endif /*_LIBPROC_H_ */