#ifndef _DHCP_INITTAB_H
#define _DHCP_INITTAB_H
#include <sys/types.h>
#include <dhcp_symbol.h>
#include <limits.h>
#ifdef __cplusplus
extern "C" {
#endif
#define ITAB_INITTAB_PATH "/etc/dhcp/inittab"
#define ITAB_INITTAB6_PATH "/etc/dhcp/inittab6"
#define ITAB_MAX_LINE_LEN 8192
#define ITAB_MAX_NUMBER_LEN 30
#define ITAB_COMMENT_CHAR '#'
#define ITAB_CODE_MAX UCHAR_MAX
#define ITAB_GRAN_MAX UCHAR_MAX
#define ITAB_MAX_MAX UCHAR_MAX
#define ITAB_FAILURE 0
#define ITAB_SUCCESS 1
#define ITAB_UNKNOWN 2
#define ITAB_CAT_STANDARD 0x01
#define ITAB_CAT_FIELD 0x02
#define ITAB_CAT_INTERNAL 0x04
#define ITAB_CAT_VENDOR 0x08
#define ITAB_CAT_SITE 0x10
#define ITAB_CAT_V6 0x20
#define ITAB_CAT_COUNT 6
#define ITAB_CONS_INFO 'i'
#define ITAB_CONS_SERVER 'd'
#define ITAB_CONS_SNOOP 's'
#define ITAB_CONS_MANAGER 'm'
#define ITAB_CONS_COUNT (sizeof ("idsm") - 1)
#define ITAB_SYNTAX_ERROR (-1)
#define ITAB_BAD_IPADDR (-2)
#define ITAB_BAD_STRING (-3)
#define ITAB_BAD_OCTET (-4)
#define ITAB_BAD_NUMBER (-5)
#define ITAB_BAD_BOOLEAN (-6)
#define ITAB_NOT_ENOUGH_IP (-7)
#define ITAB_BAD_GRAN (-8)
#define ITAB_NOMEM (-9)
extern uint8_t inittab_type_to_size(const dhcp_symbol_t *);
extern int inittab_verify(const dhcp_symbol_t *, dhcp_symbol_t *);
extern dhcp_symbol_t *inittab_load(uchar_t, char, size_t *);
extern dhcp_symbol_t *inittab_getbyname(uchar_t, char, const char *);
extern dhcp_symbol_t *inittab_getbycode(uchar_t, char, uint16_t);
extern uchar_t *inittab_encode(const dhcp_symbol_t *, const char *,
uint16_t *, boolean_t);
extern uchar_t *inittab_encode_e(const dhcp_symbol_t *, const char *,
uint16_t *, boolean_t, int *);
extern char *inittab_decode(const dhcp_symbol_t *, const uchar_t *,
uint16_t, boolean_t);
extern char *inittab_decode_e(const dhcp_symbol_t *,
const uchar_t *, uint16_t, boolean_t, int *);
#ifdef __cplusplus
}
#endif
#endif