Home | History | Annotate | Download | only in prstat
      1     0  stevel /*
      2     0  stevel  * CDDL HEADER START
      3     0  stevel  *
      4     0  stevel  * The contents of this file are subject to the terms of the
      5  4321  casper  * Common Development and Distribution License (the "License").
      6  4321  casper  * You may not use this file except in compliance with the License.
      7     0  stevel  *
      8     0  stevel  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
      9     0  stevel  * or http://www.opensolaris.org/os/licensing.
     10     0  stevel  * See the License for the specific language governing permissions
     11     0  stevel  * and limitations under the License.
     12     0  stevel  *
     13     0  stevel  * When distributing Covered Code, include this CDDL HEADER in each
     14     0  stevel  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
     15     0  stevel  * If applicable, add the following below this CDDL HEADER, with the
     16     0  stevel  * fields enclosed by brackets "[]" replaced with your own identifying
     17     0  stevel  * information: Portions Copyright [yyyy] [name of copyright owner]
     18     0  stevel  *
     19     0  stevel  * CDDL HEADER END
     20     0  stevel  */
     21     0  stevel /*
     22  9966   Menno  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
     23     0  stevel  * Use is subject to license terms.
     24  9966   Menno  *
     25  9966   Menno  * Portions Copyright 2009 Chad Mynhier
     26     0  stevel  */
     27     0  stevel 
     28     0  stevel #ifndef	_PRTABLE_H
     29     0  stevel #define	_PRTABLE_H
     30     0  stevel 
     31     0  stevel #ifdef	__cplusplus
     32     0  stevel extern "C" {
     33     0  stevel #endif
     34     0  stevel 
     35     0  stevel #include <limits.h>
     36     0  stevel #include <zone.h>
     37     0  stevel #include "prstat.h"
     38     0  stevel 
     39     0  stevel #define	PLWP_TBL_SZ	4096	/* hash table of plwp_t structures */
     40     0  stevel #define	LWP_ACTIVE	1
     41     0  stevel 
     42     0  stevel typedef struct {
     43     0  stevel 	size_t		t_size;
     44     0  stevel 	size_t		t_nent;
     45     0  stevel 	long		*t_list;
     46     0  stevel } table_t;
     47     0  stevel 
     48     0  stevel typedef struct {
     49     0  stevel 	size_t		n_size;
     50     0  stevel 	size_t		n_nent;
     51  9966   Menno 	uid_t		*n_list;
     52  9966   Menno } uidtbl_t;
     53     0  stevel 
     54     0  stevel typedef struct {
     55     0  stevel 	zoneid_t	z_id;
     56     0  stevel 	char		z_name[ZONENAME_MAX];
     57     0  stevel } zonename_t;
     58     0  stevel 
     59     0  stevel typedef struct {
     60     0  stevel 	size_t		z_size;
     61     0  stevel 	size_t		z_nent;
     62     0  stevel 	zonename_t	*z_list;
     63     0  stevel } zonetbl_t;
     64     0  stevel 
     65     0  stevel typedef struct plwp {		/* linked list of pointers to lwps */
     66     0  stevel 	pid_t		l_pid;
     67     0  stevel 	id_t		l_lwpid;
     68     0  stevel 	int		l_active;
     69     0  stevel 	lwp_info_t	*l_lwp;
     70     0  stevel 	struct plwp	*l_next;
     71     0  stevel } plwp_t;
     72     0  stevel 
     73  9966   Menno extern void pwd_getname(uid_t, char *, int, int);
     74  9966   Menno extern void add_uid(uidtbl_t *, char *);
     75  9966   Menno extern int has_uid(uidtbl_t *, uid_t);
     76     0  stevel extern void add_element(table_t *, long);
     77     0  stevel extern int has_element(table_t *, long);
     78     0  stevel extern void add_zone(zonetbl_t *, char *);
     79     0  stevel extern int has_zone(zonetbl_t *, zoneid_t);
     80     0  stevel extern void convert_zone(zonetbl_t *);
     81     0  stevel extern int foreach_element(table_t *, void *, void (*)(long, void *));
     82     0  stevel extern void lwpid_init();
     83     0  stevel extern void lwpid_add(lwp_info_t *, pid_t, id_t);
     84     0  stevel extern lwp_info_t *lwpid_get(pid_t, id_t);
     85     0  stevel extern int lwpid_pidcheck(pid_t);
     86     0  stevel extern void lwpid_del(pid_t, id_t);
     87     0  stevel extern void lwpid_set_active(pid_t, id_t);
     88     0  stevel extern int lwpid_is_active(pid_t, id_t);
     89     0  stevel 
     90     0  stevel #ifdef	__cplusplus
     91     0  stevel }
     92     0  stevel #endif
     93     0  stevel 
     94     0  stevel #endif	/* _PRTABLE_H */
     95