#ifndef _PMCONFIG_H
#define _PMCONFIG_H
#ifdef __cplusplus
extern "C" {
#endif
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/cpr.h>
#include <sys/pm.h>
#include <strings.h>
#include <limits.h>
#include <libintl.h>
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include <fcntl.h>
#include <errno.h>
#define LINEARG(an) *(line_args + an)
#define LINELEN 80
#define MOREARGS 4
#define ESTAR_VNONE 0
#define ESTAR_V2 '2'
#define ESTAR_V3 '3'
#define LPAREN '('
#define RPAREN ')'
#define MDEBUG 0
#define MEXIT 1
#define MERR -1
#define NOUP -1
#define OKUP 0
#define DFLT_THOLD 0.04
struct perm_update {
int perm;
int update;
char *set;
};
typedef struct perm_update prmup_t;
struct cinfo {
char *keyword;
int (*handler)(void);
prmup_t *status;
char *cmt;
short argc;
uint8_t any;
uint8_t alt;
};
typedef struct cinfo cinfo_t;
typedef void (*vact_t)(char *, size_t, cinfo_t *);
extern int whitelist_only;
extern int verify;
extern prmup_t cpr_status, pm_status;
extern struct cprconfig new_cc;
extern struct stat def_info;
extern char estar_vers;
extern int pm_fd, ua_err;
extern uid_t ruid;
extern int def_src;
extern void mesg(int, char *, ...);
extern int lineno;
extern char **line_args;
extern void lookup_estar_vers(void);
extern void lookup_perms(void);
extern void parse_conf_file(char *, vact_t, boolean_t);
extern int S3_helper(char *, char *, int, int, char *, char *, int *, int);
extern int S3sup(void);
extern int autoS3(void);
extern int autopm(void);
extern int autosd(void);
extern int cpupm(void);
extern int cpuidle(void);
extern int cputhr(void);
extern int ddprop(void);
extern int devdep(void);
extern int devthr(void);
extern int dreads(void);
extern int idlechk(void);
extern int loadavg(void);
extern int nfsreq(void);
extern int sfpath(void);
extern int systhr(void);
extern int tchars(void);
#ifdef __cplusplus
}
#endif
#endif