#ifndef _PRTABLE_H
#define _PRTABLE_H
#ifdef __cplusplus
extern "C" {
#endif
#include <limits.h>
#include <zone.h>
#include "prstat.h"
#define PLWP_TBL_SZ 4096
#define LWP_ACTIVE 1
typedef struct {
size_t t_size;
size_t t_nent;
long *t_list;
} table_t;
typedef struct {
size_t n_size;
size_t n_nent;
uid_t *n_list;
} uidtbl_t;
typedef struct {
zoneid_t z_id;
char z_name[ZONENAME_MAX];
} zonename_t;
typedef struct {
size_t z_size;
size_t z_nent;
zonename_t *z_list;
} zonetbl_t;
typedef struct plwp {
pid_t l_pid;
id_t l_lwpid;
int l_active;
lwp_info_t *l_lwp;
struct plwp *l_next;
} plwp_t;
extern void pwd_getname(uid_t, char *, size_t, int, int, size_t);
extern void add_uid(uidtbl_t *, char *);
extern int has_uid(uidtbl_t *, uid_t);
extern void add_element(table_t *, long);
extern int has_element(table_t *, long);
extern void add_zone(zonetbl_t *, char *);
extern int has_zone(zonetbl_t *, zoneid_t);
extern void convert_zone(zonetbl_t *);
extern int foreach_element(table_t *, void *, void (*)(long, void *));
extern void lwpid_init();
extern void lwpid_add(lwp_info_t *, pid_t, id_t);
extern lwp_info_t *lwpid_get(pid_t, id_t);
extern int lwpid_pidcheck(pid_t);
extern void lwpid_del(pid_t, id_t);
extern void lwpid_set_active(pid_t, id_t);
extern int lwpid_is_active(pid_t, id_t);
#ifdef __cplusplus
}
#endif
#endif