1/*
2 * Copyright (c) 2003-2005, 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
24#ifndef _SCDYNAMICSTORECOPYSPECIFICPRIVATE_H
25#define _SCDYNAMICSTORECOPYSPECIFICPRIVATE_H
26
27#include <Availability.h>
28#include <sys/cdefs.h>
29#include <CoreFoundation/CoreFoundation.h>
30#include <SystemConfiguration/SCDynamicStore.h>
31
32
33/*!
34	@header SCDynamicStoreCopySpecificPrivate
35	@discussion The following APIs allow an application to retrieve
36		console information.
37 */
38
39
40__BEGIN_DECLS
41
42/*
43 * Predefined keys for the console session dictionaries
44 */
45extern const CFStringRef kSCConsoleSessionID			/* value is CFNumber */
46		__OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA);
47extern const CFStringRef kSCConsoleSessionUserName		/* value is CFString */
48		__OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA);
49extern const CFStringRef kSCConsoleSessionUID			/* value is CFNumber (a uid_t) */
50		__OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA);
51extern const CFStringRef kSCConsoleSessionConsoleSet		/* value is CFNumber */
52		__OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA);
53extern const CFStringRef kSCConsoleSessionOnConsole		/* value is CFBoolean */
54		__OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA);
55extern const CFStringRef kSCConsoleSessionLoginDone		/* value is CFBoolean */
56		__OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA);
57extern const CFStringRef kSCConsoleSessionSystemSafeBoot	/* value is CFBoolean */
58		__OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA);
59extern const CFStringRef kSCConsoleSessionLoginwindowSafeLogin	/* value is CFBoolean */
60		__OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA);
61
62/*!
63	@function SCDynamicStoreCopyConsoleInformation
64	@discussion Returns information about all console sessions on the system.
65	@param store An SCDynamicStoreRef that should be used for communication
66		with the server.
67		If NULL, a temporary session will be used.
68	@result An array of dictionaries containing information about each
69		console session on the system; NULL if no sessions are defined
70		or if an error was encountered.
71
72		The contents of the returned array match that of the CoreGraphics
73		CGSCopySessionList() SPI.
74
75		You must release the returned value.
76 */
77CFArrayRef
78SCDynamicStoreCopyConsoleInformation	(
79					SCDynamicStoreRef	store
80					)			__OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA);
81
82
83__END_DECLS
84
85#endif /* _SCDYNAMICSTORECOPYSPECIFICPRIVATE_H */
86