xref: /illumos-gate/usr/src/lib/libproc/common/Putil.h (revision 300fdee27f8b59b381c1a0316bdee52fdfdb9213)
1  /*
2   * CDDL HEADER START
3   *
4   * The contents of this file are subject to the terms of the
5   * Common Development and Distribution License, Version 1.0 only
6   * (the "License").  You may not use this file except in compliance
7   * with the License.
8   *
9   * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10   * or http://www.opensolaris.org/os/licensing.
11   * See the License for the specific language governing permissions
12   * and limitations under the License.
13   *
14   * When distributing Covered Code, include this CDDL HEADER in each
15   * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16   * If applicable, add the following below this CDDL HEADER, with the
17   * fields enclosed by brackets "[]" replaced with your own identifying
18   * information: Portions Copyright [yyyy] [name of copyright owner]
19   *
20   * CDDL HEADER END
21   */
22  /*
23   * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
24   * Use is subject to license terms.
25   */
26  /*
27   * Copyright (c) 2013 by Delphix. All rights reserved.
28   */
29  
30  #ifndef	_PUTIL_H
31  #define	_PUTIL_H
32  
33  #ifdef	__cplusplus
34  extern "C" {
35  #endif
36  
37  /*
38   * Circular doubly-linked list:
39   */
40  typedef struct P_list {
41  	struct P_list	*list_forw;
42  	struct P_list	*list_back;
43  } plist_t;
44  
45  /*
46   * Routines to manipulate linked lists:
47   */
48  extern void list_link(void *, void *);
49  extern void list_unlink(void *);
50  
51  #define	list_next(elem)	(void *)(((plist_t *)(elem))->list_forw)
52  #define	list_prev(elem)	(void *)(((plist_t *)(elem))->list_back)
53  
54  /*
55   * Routines to manipulate sigset_t, fltset_t, or sysset_t.
56   */
57  extern void prset_fill(void *, size_t);
58  extern void prset_empty(void *, size_t);
59  extern void prset_add(void *, size_t, uint_t);
60  extern void prset_del(void *, size_t, uint_t);
61  extern int prset_ismember(void *, size_t, uint_t);
62  
63  /*
64   * Routine to print debug messages:
65   */
66  extern void dprintf(const char *, ...);
67  
68  extern void Pinit_ops(ps_ops_t *, const ps_ops_t *);
69  
70  #ifdef	__cplusplus
71  }
72  #endif
73  
74  #endif	/* _PUTIL_H */
75