]> git.saurik.com Git - apple/configd.git/blob - SystemConfiguration.fproj/SCPPrivate.h
configd-24.1.tar.gz
[apple/configd.git] / SystemConfiguration.fproj / SCPPrivate.h
1 /*
2 * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * The contents of this file constitute Original Code as defined in and
7 * are subject to the Apple Public Source License Version 1.1 (the
8 * "License"). You may not use this file except in compliance with the
9 * License. Please obtain a copy of the License at
10 * http://www.apple.com/publicsource and read it before using this file.
11 *
12 * This Original Code and all software distributed under the License are
13 * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
14 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
15 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
17 * License for the specific language governing rights and limitations
18 * under the License.
19 *
20 * @APPLE_LICENSE_HEADER_END@
21 */
22
23 #ifndef _SCPPRIVATE_H
24 #define _SCPPRIVATE_H
25
26 #include <SystemConfiguration/SCP.h>
27 #include <SystemConfiguration/SCD.h>
28
29 #include <sys/types.h>
30 #include <sys/stat.h>
31 #include <sys/time.h>
32
33
34 #define PREFS_DEFAULT_DIR CFSTR("/var/db/SystemConfiguration")
35 #define PREFS_DEFAULT_CONFIG CFSTR("preferences.xml")
36
37 #define PREFS_DEFAULT_USER_DIR CFSTR("Library/Preferences")
38
39
40 /* Define the per-preference-handle structure */
41 typedef struct {
42 /* session name */
43 CFStringRef name;
44
45 /* preferences ID */
46 CFStringRef prefsID;
47
48 /* per-user preference info */
49 boolean_t perUser;
50 CFStringRef user;
51
52 /* configuration file path */
53 char *path;
54
55 /* configuration file signature */
56 CFDataRef signature;
57
58 /* configd session */
59 SCDSessionRef session;
60
61 /* configd session keys */
62 CFStringRef sessionKeyLock;
63 CFStringRef sessionKeyCommit;
64 CFStringRef sessionKeyApply;
65
66 /* preferences */
67 CFMutableDictionaryRef prefs;
68
69 /* flags */
70 boolean_t changed;
71 boolean_t locked;
72 boolean_t isRoot;
73
74 } SCPSessionPrivate, *SCPSessionPrivateRef;
75
76
77 /* Define signature data */
78 typedef struct {
79 dev_t st_dev; /* inode's device */
80 ino_t st_ino; /* inode's number */
81 struct timespec st_mtimespec; /* time of last data modification */
82 off_t st_size; /* file size, in bytes */
83 } SCPSignatureData, *SCPSignatureDataRef;
84
85
86 __BEGIN_DECLS
87
88 CFDataRef _SCPSignatureFromStatbuf (const struct stat *statBuf);
89
90 char * _SCPPrefsPath (CFStringRef prefsID,
91 boolean_t perUser,
92 CFStringRef user);
93
94 CFStringRef _SCPNotificationKey (CFStringRef prefsID,
95 boolean_t perUser,
96 CFStringRef user,
97 int keyType);
98
99 __END_DECLS
100
101 #endif /* _SCPPRIVATE_H */