1/*
2 * Copyright (c) 2008 Apple Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. Please obtain a copy of the License at
10 * http://www.opensource.apple.com/apsl/ and read it before using this
11 * file.
12 *
13 * The Original Code and all software distributed under the License are
14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18 * Please see the License for the specific language governing rights and
19 * limitations under the License.
20 *
21 * @APPLE_LICENSE_HEADER_END@
22 */
23#ifndef _IOKIT_PWRMGT_IOSYSTEMCONFIGURATION_H
24#define _IOKIT_PWRMGT_IOSYSTEMCONFIGURATION_H
25
26#include <SystemConfiguration/SystemConfiguration.h>
27#include <SystemConfiguration/SCPreferencesPrivate.h>
28#include <SystemConfiguration/SCDynamicStorePrivate.h>
29#include <SystemConfiguration/SCValidation.h>
30#include <TargetConditionals.h>
31
32extern const CFStringRef		_io_kSCCompAnyRegex;
33#undef  kSCCompAnyRegex
34#define kSCCompAnyRegex                     _io_kSCCompAnyRegex
35
36extern const CFStringRef		_io_kSCDynamicStoreDomainState;
37#undef  kSCDynamicStoreDomainState
38#define kSCDynamicStoreDomainState          _io_kSCDynamicStoreDomainState
39
40#if TARGET_OS_IPHONE
41    /* These prototypes are for embedded only
42     * SystemConfiguration headers define each of these function for OS */
43
44__private_extern__ int _io_SCError();
45#define SCError                             _io_SCError
46
47__private_extern__ Boolean _io_SCDynamicStoreAddWatchedKey(
48    SCDynamicStoreRef           store,
49    CFStringRef                 key,
50    Boolean                      isRegex);
51#define SCDynamicStoreAddWatchedKey         _io_SCDynamicStoreAddWatchedKey
52
53__private_extern__ CFDictionaryRef _io_SCDynamicStoreCopyMultiple(
54    SCDynamicStoreRef           store,
55    CFArrayRef                  keys,
56    CFArrayRef                  patterns);
57#define SCDynamicStoreCopyMultiple           _io_SCDynamicStoreCopyMultiple
58
59__private_extern__ CFPropertyListRef _io_SCDynamicStoreCopyValue(
60    SCDynamicStoreRef           store,
61    CFStringRef                 key);
62#define SCDynamicStoreCopyValue             _io_SCDynamicStoreCopyValue
63
64__private_extern__ SCDynamicStoreRef _io_SCDynamicStoreCreate(
65    CFAllocatorRef              allocator,
66    CFStringRef                 name,
67    SCDynamicStoreCallBack      callout,
68    SCDynamicStoreContext       *context);
69#define SCDynamicStoreCreate                _io_SCDynamicStoreCreate
70
71__private_extern__ CFRunLoopSourceRef _io_SCDynamicStoreCreateRunLoopSource(
72    CFAllocatorRef              allocator,
73    SCDynamicStoreRef           store,
74    CFIndex                     order);
75#define SCDynamicStoreCreateRunLoopSource   _io_SCDynamicStoreCreateRunLoopSource
76
77__private_extern__ CFStringRef _io_SCDynamicStoreKeyCreate(
78    CFAllocatorRef              allocator,
79    CFStringRef                 fmt, ...);
80#define SCDynamicStoreKeyCreate             _io_SCDynamicStoreKeyCreate
81
82__private_extern__ CFStringRef _io_SCDynamicStoreKeyCreatePreferences(
83    CFAllocatorRef              allocator,
84    CFStringRef                 prefsID,
85    SCPreferencesKeyType        keyType);
86#define SCDynamicStoreKeyCreatePreferences  _io_SCDynamicStoreKeyCreatePreferences
87
88__private_extern__ Boolean _io_SCDynamicStoreSetNotificationKeys(
89    SCDynamicStoreRef           store,
90    CFArrayRef                  keys,
91    CFArrayRef                  patterns);
92#define SCDynamicStoreSetNotificationKeys   _io_SCDynamicStoreSetNotificationKeys
93
94__private_extern__ Boolean _io_SCDynamicStoreSetValue(
95    SCDynamicStoreRef           store,
96    CFStringRef                 key,
97    CFPropertyListRef           value);
98#define SCDynamicStoreSetValue              _io_SCDynamicStoreSetValue
99
100__private_extern__ Boolean _io_SCDynamicStoreNotifyValue(
101    SCDynamicStoreRef           store,
102    CFStringRef                 key);
103#define SCDynamicStoreNotifyValue           _io_SCDynamicStoreNotifyValue
104
105__private_extern__ Boolean _io_SCPreferencesApplyChanges(
106    SCPreferencesRef            prefs);
107#define SCPreferencesApplyChanges           _io_SCPreferencesApplyChanges
108
109__private_extern__ Boolean _io_SCPreferencesCommitChanges(
110    SCPreferencesRef            prefs);
111#define SCPreferencesCommitChanges          _io_SCPreferencesCommitChanges
112
113__private_extern__ SCPreferencesRef _io_SCPreferencesCreate(
114    CFAllocatorRef              allocator,
115    CFStringRef                 name,
116    CFStringRef                 prefsID);
117#define SCPreferencesCreate                 _io_SCPreferencesCreate
118
119__private_extern__ SCPreferencesRef _io_SCPreferencesCreateWithAuthorization(
120    CFAllocatorRef              allocator,
121    CFStringRef                 name,
122    CFStringRef                 prefsID,
123    AuthorizationRef            authorization);
124#define SCPreferencesCreateWithAuthorization _io_SCPreferencesCreateWithAuthorization
125
126__private_extern__ CFPropertyListRef _io_SCPreferencesGetValue(
127    SCPreferencesRef            prefs,
128    CFStringRef                 key);
129#define SCPreferencesGetValue               _io_SCPreferencesGetValue
130
131__private_extern__ Boolean _io_SCPreferencesLock(
132    SCPreferencesRef            prefs,
133    Boolean                     wait);
134#define SCPreferencesLock                   _io_SCPreferencesLock
135
136__private_extern__ Boolean _io_SCPreferencesRemoveValue(
137    SCPreferencesRef            prefs,
138    CFStringRef                 key);
139#define SCPreferencesRemoveValue            _io_SCPreferencesRemoveValue
140
141__private_extern__ Boolean _io_SCPreferencesSetValue(
142    SCPreferencesRef            prefs,
143    CFStringRef                 key,
144    CFPropertyListRef           value);
145#define SCPreferencesSetValue               _io_SCPreferencesSetValue
146
147__private_extern__ Boolean _io_SCPreferencesUnlock(
148    SCPreferencesRef            prefs);
149#define SCPreferencesUnlock                 _io_SCPreferencesUnlock
150
151#endif // TARGET_OS_IPHONE
152
153#endif // _IOKIT_PWRMGT_IOSYSTEMCONFIGURATION_H
154
155
156