#ifndef _V1COMPATIBILITY_H
#define _V1COMPATIBILITY_H
#include <sys/cdefs.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/syslog.h>
#include <mach/message.h>
#include <CoreFoundation/CoreFoundation.h>
#define kSCCacheDomainFile kSCDynamicStoreDomainFile
#define kSCCacheDomainPlugin kSCDynamicStoreDomainPlugin
#define kSCCacheDomainSetup kSCDynamicStoreDomainSetup
#define kSCCacheDomainState kSCDynamicStoreDomainState
#define kSCCacheDomainPrefs kSCDynamicStoreDomainPrefs
#define kSCCachePropSetupCurrentSet kSCDynamicStorePropSetupCurrentSet
#define kSCCachePropSetupLastUpdated kSCDynamicStorePropSetupLastUpdated
#define kSCCachePropNetInterfaces kSCDynamicStorePropNetInterfaces
#define kSCCachePropNetPrimaryInterface kSCDynamicStorePropNetPrimaryInterface
#define kSCCachePropNetPrimaryService kSCDynamicStorePropNetPrimaryService
#define kSCCachePropNetServiceIDs kSCDynamicStorePropNetServiceIDs
typedef enum {
SCD_OK = 0,
SCD_NOSESSION = 1,
SCD_NOSERVER = 2,
SCD_LOCKED = 3,
SCD_NEEDLOCK = 4,
SCD_EACCESS = 5,
SCD_NOKEY = 6,
SCD_EXISTS = 7,
SCD_STALE = 8,
SCD_INVALIDARGUMENT = 9,
SCD_NOTIFIERACTIVE = 10,
SCD_FAILED = 9999
} SCDStatus;
typedef const struct __SCDSession * SCDSessionRef;
typedef const struct __SCDHandle * SCDHandleRef;
typedef enum {
kSCDRegexKey = 0100000,
} SCDKeyOption;
typedef enum {
kSCDOptionDebug = 0,
kSCDOptionVerbose = 1,
kSCDOptionUseSyslog = 2,
kSCDOptionUseCFRunLoop = 3,
} SCDOption;
typedef boolean_t (*SCDCallbackRoutine_t) (SCDSessionRef session,
void *context);
typedef void (*SCDBundleStartRoutine_t) (const char *bundlePath,
const char *bundleName);
typedef void (*SCDBundlePrimeRoutine_t) ();
typedef enum {
SCP_OK = 0,
SCP_NOSESSION = 1024,
SCP_BUSY = 1025,
SCP_NEEDLOCK = 1026,
SCP_EACCESS = 1027,
SCP_ENOENT = 1028,
SCP_BADCF = 1029,
SCP_NOKEY = 1030,
SCP_NOLINK = 1031,
SCP_EXISTS = 1032,
SCP_STALE = 1033,
SCP_INVALIDARGUMENT = 1034,
SCP_FAILED = 9999
} SCPStatus;
typedef enum {
kSCPOpenCreatePrefs = 1,
} SCPOption;
typedef enum {
kSCPKeyLock = 1,
kSCPKeyCommit = 2,
kSCPKeyApply = 3,
} SCPKeyType;
typedef void * SCPSessionRef;
typedef enum {
SCN_REACHABLE_UNKNOWN = -1,
SCN_REACHABLE_NO = 0,
SCN_REACHABLE_CONNECTION_REQUIRED = 1,
SCN_REACHABLE_YES = 2,
} SCNStatus;
typedef enum {
kSCNFlagsTransientConnection = 1<<0,
kSCNFlagsConnectionAutomatic = 1<<1,
kSCNFlagsInterventionRequired = 1<<2,
} SCNConnectionFlags;
__BEGIN_DECLS
SCDHandleRef SCDHandleInit ();
void SCDHandleRelease (SCDHandleRef handle);
int SCDHandleGetInstance (SCDHandleRef handle);
void _SCDHandleSetInstance (SCDHandleRef handle,
int instance);
CFPropertyListRef SCDHandleGetData (SCDHandleRef handle);
void SCDHandleSetData (SCDHandleRef handle,
CFPropertyListRef data);
SCDStatus SCDOpen (SCDSessionRef *session,
CFStringRef name);
SCDStatus SCDClose (SCDSessionRef *session);
SCDStatus SCDLock (SCDSessionRef session);
SCDStatus SCDUnlock (SCDSessionRef session);
SCDStatus SCDList (SCDSessionRef session,
CFStringRef key,
int regexOptions,
CFArrayRef *subKeys);
SCDStatus SCDAdd (SCDSessionRef session,
CFStringRef key,
SCDHandleRef handle);
SCDStatus SCDAddSession (SCDSessionRef session,
CFStringRef key,
SCDHandleRef handle);
SCDStatus SCDGet (SCDSessionRef session,
CFStringRef key,
SCDHandleRef *handle);
SCDStatus SCDSet (SCDSessionRef session,
CFStringRef key,
SCDHandleRef handle);
SCDStatus SCDRemove (SCDSessionRef session,
CFStringRef key);
SCDStatus SCDTouch (SCDSessionRef session,
CFStringRef key);
SCDStatus SCDNotifierList (SCDSessionRef session,
int regexOptions,
CFArrayRef *changedKeys);
SCDStatus SCDNotifierAdd (SCDSessionRef session,
CFStringRef key,
int regexOptions);
SCDStatus SCDNotifierRemove (SCDSessionRef session,
CFStringRef key,
int regexOptions);
SCDStatus SCDNotifierGetChanges (SCDSessionRef session,
CFArrayRef *notifierKeys);
SCDStatus SCDNotifierWait (SCDSessionRef session);
SCDStatus SCDNotifierInformViaCallback (SCDSessionRef session,
SCDCallbackRoutine_t func,
void *arg);
SCDStatus SCDNotifierInformViaMachPort (SCDSessionRef session,
mach_msg_id_t msgid,
mach_port_t *port);
SCDStatus SCDNotifierInformViaFD (SCDSessionRef session,
int32_t identifier,
int *fd);
SCDStatus SCDNotifierInformViaSignal (SCDSessionRef session,
pid_t pid,
int sig);
SCDStatus SCDNotifierCancel (SCDSessionRef session);
SCDStatus SCDSnapshot (SCDSessionRef session);
int SCDOptionGet (SCDSessionRef session,
int option);
void SCDOptionSet (SCDSessionRef session,
int option,
int value);
void SCDSessionLog (SCDSessionRef session,
int level,
CFStringRef formatString,
...);
void SCDLog (int level,
CFStringRef formatString,
...);
const char * SCDError (SCDStatus status);
CFStringRef SCDKeyCreate (CFStringRef fmt,
...);
CFStringRef SCDKeyCreateNetworkGlobalEntity (CFStringRef domain,
CFStringRef entity);
CFStringRef SCDKeyCreateNetworkInterface (CFStringRef domain);
CFStringRef SCDKeyCreateNetworkInterfaceEntity (CFStringRef domain,
CFStringRef ifname,
CFStringRef entity);
CFStringRef SCDKeyCreateNetworkServiceEntity (CFStringRef domain,
CFStringRef serviceID,
CFStringRef entity);
SCPStatus SCPOpen (SCPSessionRef *session,
CFStringRef name,
CFStringRef prefsID,
int options);
SCPStatus SCPUserOpen (SCPSessionRef *session,
CFStringRef name,
CFStringRef prefsID,
CFStringRef user,
int options);
SCPStatus SCPClose (SCPSessionRef *session);
SCPStatus SCPLock (SCPSessionRef session,
boolean_t wait);
SCPStatus SCPCommit (SCPSessionRef session);
SCPStatus SCPApply (SCPSessionRef session);
SCPStatus SCPUnlock (SCPSessionRef session);
SCPStatus SCPGetSignature (SCPSessionRef session,
CFDataRef *signature);
SCPStatus SCPList (SCPSessionRef session,
CFArrayRef *keys);
SCPStatus SCPGet (SCPSessionRef session,
CFStringRef key,
CFPropertyListRef *data);
SCPStatus SCPAdd (SCPSessionRef session,
CFStringRef key,
CFPropertyListRef data);
SCPStatus SCPSet (SCPSessionRef session,
CFStringRef key,
CFPropertyListRef data);
SCPStatus SCPRemove (SCPSessionRef session,
CFStringRef key);
SCPStatus SCPPathCreateUniqueChild (SCPSessionRef session,
CFStringRef prefix,
CFStringRef *newPath);
SCPStatus SCPPathGetValue (SCPSessionRef session,
CFStringRef path,
CFDictionaryRef *value);
SCPStatus SCPPathGetLink (SCPSessionRef session,
CFStringRef path,
CFStringRef *link);
SCPStatus SCPPathSetValue (SCPSessionRef session,
CFStringRef path,
CFDictionaryRef value);
SCPStatus SCPPathSetLink (SCPSessionRef session,
CFStringRef path,
CFStringRef link);
SCPStatus SCPPathRemove (SCPSessionRef session,
CFStringRef path);
CFStringRef SCPNotificationKeyCreate (CFStringRef prefsID,
int keyType);
CFStringRef SCPUserNotificationKeyCreate (CFStringRef prefsID,
CFStringRef user,
int keyType);
const char * SCPError (SCPStatus status);
CFStringRef SCDKeyCreateConsoleUser ();
SCDStatus SCDConsoleUserGet (char *user,
int userlen,
uid_t *uid,
gid_t *gid);
SCDStatus SCDConsoleUserSet (const char *user,
uid_t uid,
gid_t gid);
CFStringRef SCDKeyCreateHostName ();
SCDStatus SCDHostNameGet (CFStringRef *name,
CFStringEncoding *nameEncoding);
SCNStatus SCNIsReachableByAddress (const struct sockaddr *address,
const int addrlen,
int *flags,
const char **errorMessage);
SCNStatus SCNIsReachableByName (const char *nodename,
int *flags,
const char **errorMessage);
__END_DECLS
#endif