#ifndef _SYS_XCALPPM_VAR_H
#define _SYS_XCALPPM_VAR_H
#pragma ident "%Z%%M% %I% %E% SMI"
#ifdef __cplusplus
extern "C" {
#endif
extern int ppm_init(struct modlinkage *, size_t, char *);
extern int ppm_open(dev_t *, int, int, cred_t *);
extern int ppm_close(dev_t, int, int, cred_t *);
extern int ppm_ioctl(dev_t, int, intptr_t, int, cred_t *, int *);
extern int ppm_getinfo(dev_info_t *, ddi_info_cmd_t, void *, void **);
extern void spm_change_schizo_speed(int);
#define XCPPMF_PCIB 0x1
#define XCPPMF_UPA 0x2
#define XCPPM_VCL_TRIES 5
#define XCPPM_VCL_DELAY 10
#define XCPPM_VCL_DIVISOR 32
typedef struct {
dev_info_t *dip;
struct xcppmreg regs;
struct xcppmhndl hndls;
kmutex_t gpio_lock;
kmutex_t unit_lock;
kmutex_t creator_lock;
uint_t state;
timeout_id_t led_tid;
} xcppm_unit_t;
#define XCPPM_ST_SUSPENDED 0x00000001
#define XCPPM_GET8(handle, address) \
ddi_get8(handle, (uint8_t *)(address))
#define XCPPM_SETGET8(handle, address, data) \
ddi_put8(handle, (uint8_t *)(address), data); \
data = XCPPM_GET8(handle, address)
#define XCPPM_GET16(handle, address) \
ddi_get16(handle, (uint16_t *)(address))
#define XCPPM_SETGET16(handle, address, data) \
ddi_put16(handle, (uint16_t *)(address), data); \
data = XCPPM_GET16(handle, address)
#define XCPPM_GET32(handle, address) \
ddi_get32(handle, (uint32_t *)(address))
#define XCPPM_SETGET32(handle, address, data) \
ddi_put32(handle, (uint32_t *)(address), data); \
data = XCPPM_GET32(handle, address)
#ifdef __cplusplus
}
#endif
#endif