#ifndef _LIBSA_VERS_H_
#define _LIBSA_VERS_H_
#ifdef __cplusplus
extern "C" {
#endif
#include <sys/types.h>
#include <libc.h>
#include <CoreFoundation/CoreFoundation.h>
typedef union {
UInt32 vnum;
UInt8 bytes[4];
} VERS_version;
typedef enum {
VERS_development = 0x20,
VERS_alpha = 0x40,
VERS_beta = 0x60,
VERS_candidate = 0x70, VERS_release = 0x80,
VERS_invalid = 0xff
} VERS_revision;
#define BCD_combine(l, r) ( (((l) & 0xf) << 4) | ((r) & 0xf) )
#define BCD_get_left(p) ( ((p) >> 4) & 0xf )
#define BCD_get_right(p) ( (p) & 0xf )
#define BCD_illegal (0xff) // full byte, 11111111
int VERS_parse_string(char * vers_string, UInt32 * version_num);
int VERS_string(char * buffer, UInt32 length, UInt32 vers);
#ifdef __cplusplus
}
#endif
#endif _LIBSA_VERS_H_