You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

181 lines
6.9 KiB

/*
* Copyright (c) 2000-2004, 2006, 2008-2010, 2012, 2015 Apple Inc. All rights reserved.
*
* @APPLE_LICENSE_HEADER_START@
*
* This file contains Original Code and/or Modifications of Original Code
* as defined in and that are subject to the Apple Public Source License
* Version 2.0 (the 'License'). You may not use this file except in
* compliance with the License. Please obtain a copy of the License at
* http://www.opensource.apple.com/apsl/ and read it before using this
* file.
*
* The Original Code and all software distributed under the License are
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
* Please see the License for the specific language governing rights and
* limitations under the License.
*
* @APPLE_LICENSE_HEADER_END@
*/
#ifndef _SYSTEMCONFIGURATION_H
#define _SYSTEMCONFIGURATION_H
#include <Availability.h>
#include <sys/cdefs.h>
#include <CoreFoundation/CoreFoundation.h>
/*!
@header SystemConfiguration
@discussion The System Configuration framework provides access to the
data used to configure a running system. The APIs provided
by this framework communicate with the configd daemon.
The configd daemon manages a dynamic store reflecting the
desired configuration settings as well as the current state
of the system. The daemon provides a notification mechanism
for processes that need to be aware of changes made to the
data. Lastly, the daemon loads a number of bundles (or
plug-ins) that monitor low-level kernel events and, through
a set of policy modules, keep the state data up to date.
*/
/*!
@enum Error codes
@discussion Returned error codes.
@constant kSCStatusOK Success
@constant kSCStatusFailed Non-specific Failure
@constant kSCStatusInvalidArgument Invalid argument
@constant kSCStatusAccessError Permission denied
@constant kSCStatusNoKey No such key
@constant kSCStatusKeyExists Data associated with key already defined
@constant kSCStatusLocked Lock already held
@constant kSCStatusNeedLock Lock required for this operation
@constant kSCStatusNoStoreSession Configuration daemon session not active
@constant kSCStatusNoStoreServer Configuration daemon not (or no longer) available
@constant kSCStatusNotifierActive Notifier is currently active
@constant kSCStatusNoPrefsSession Preferences session not active
@constant kSCStatusPrefsBusy Preferences update currently in progress
@constant kSCStatusNoConfigFile Configuration file not found
@constant kSCStatusNoLink No such link
@constant kSCStatusStale Write attempted on stale version of object
@constant kSCStatusMaxLink Maximum link count exceeded
@constant kSCStatusReachabilityUnknown
A determination could not be made regarding the reachability
of the specified nodename or address.
@constant kSCStatusConnectionNoService Network service for connection not available
*/
enum {
/*
* Generic error codes
*/
kSCStatusOK = 0, /* Success */
kSCStatusFailed = 1001, /* Non-specific failure */
kSCStatusInvalidArgument = 1002, /* Invalid argument */
kSCStatusAccessError = 1003, /* Permission denied
- must be root to obtain lock
- could not create access/create preferences
*/
kSCStatusNoKey = 1004, /* No such key */
kSCStatusKeyExists = 1005, /* Key already defined */
kSCStatusLocked = 1006, /* Lock already held */
kSCStatusNeedLock = 1007, /* Lock required for this operation */
/*
* SCDynamicStore error codes
*/
kSCStatusNoStoreSession = 2001, /* Configuration daemon session not active */
kSCStatusNoStoreServer = 2002, /* Configuration daemon not (no longer) available */
kSCStatusNotifierActive = 2003, /* Notifier is currently active */
/*
* SCPreferences error codes
*/
kSCStatusNoPrefsSession = 3001, /* Preference session not active */
kSCStatusPrefsBusy = 3002, /* Preferences update currently in progress */
kSCStatusNoConfigFile = 3003, /* Configuration file not found */
kSCStatusNoLink = 3004, /* No such link */
kSCStatusStale = 3005, /* Write attempted on stale version of object */
kSCStatusMaxLink = 3006, /* Maximum link count exceeded */
/*
* SCNetwork error codes
*/
kSCStatusReachabilityUnknown = 4001, /* Network reachability cannot be determined */
/*
* SCNetworkConnection error codes
*/
kSCStatusConnectionNoService = 5001, /* Network service for connection not available
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_2_0)
*/
kSCStatusConnectionIgnore = 5002, /* Network connection information not available at this time
__OSX_AVAILABLE_STARTING(__MAC_10_9,__IPHONE_6_0)
*/
};
/* SCDynamicStore APIs */
#include <SystemConfiguration/SCDynamicStore.h>
#include <SystemConfiguration/SCDynamicStoreKey.h>
#include <SystemConfiguration/SCDynamicStoreCopySpecific.h>
/* SCPreferences APIs */
#include <SystemConfiguration/SCPreferences.h>
#include <SystemConfiguration/SCPreferencesPath.h>
#include <SystemConfiguration/SCPreferencesSetSpecific.h>
/* Schema Definitions (for SCDynamicStore and SCPreferences) */
#include <SystemConfiguration/SCSchemaDefinitions.h>
/* SCNetworkConfiguration APIs */
#include <SystemConfiguration/SCNetworkConfiguration.h>
/* SCNetworkReachability and SCNetworkConnection APIs */
#include <SystemConfiguration/SCNetwork.h>
#include <SystemConfiguration/SCNetworkReachability.h>
#include <SystemConfiguration/SCNetworkConnection.h>
CF_IMPLICIT_BRIDGING_ENABLED
CF_ASSUME_NONNULL_BEGIN
/*!
@const kCFErrorDomainSystemConfiguration
@discussion CFError domain associated with errors reported by
the SystemConfiguration.framework.
*/
extern const CFStringRef kCFErrorDomainSystemConfiguration __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_2_0);
__BEGIN_DECLS
/*!
@function SCCopyLastError
@discussion Returns the most recent status or error code generated
as the result of calling a System Configuration framework API.
@result Returns the last error encountered.
*/
CFErrorRef SCCopyLastError (void) __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_2_0);
/*!
@function SCError
@discussion Returns the most recent status or error code generated
as the result of calling a System Configuration framework API.
@result Returns the last error encountered.
*/
int SCError (void) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_2_0);
/*!
@function SCErrorString
@discussion Returns a pointer to the message string
associated with the specified status or error.
@param status The SCDynamicStoreStatus to be returned.
@result Returns a pointer to the error message string.
*/
const char * SCErrorString (int status) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_2_0);
__END_DECLS
CF_ASSUME_NONNULL_END
CF_IMPLICIT_BRIDGING_DISABLED
#endif /* _SYSTEMCONFIGURATION_H */