mirror of
https://github.com/darlinghq/darling.git
synced 2024-11-24 04:39:50 +00:00
Add NSSystemDirectories.h and sysdir.h from the old platform-include
This commit is contained in:
parent
03ab40153e
commit
9b23a7dbbe
@ -0,0 +1,149 @@
|
||||
/*
|
||||
* Copyright (c) 1999-2000, 2009 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@
|
||||
*/
|
||||
|
||||
/*
|
||||
This API returns the various standard system directories where apps, resources, etc get installed.
|
||||
Because queries can return multiple directories, the API is in the form of an enumeration.
|
||||
The directories are returned in search path order; that is, the first place to look is returned first.
|
||||
This API may return directories that do not exist yet.
|
||||
If NSUserDomain is included in a query, then the results will contain "~" to refer to the user's directory.
|
||||
NEXT_ROOT is prepended as necessary to the returned values.
|
||||
Some calls might return no directories!
|
||||
The buffer that is passed in will be filled with a null-terminated string, possibly containing as many as PATH_MAX-1 characters.
|
||||
|
||||
Typical usage:
|
||||
|
||||
#include <limits.h>
|
||||
#include <NSSystemDirectories.h>
|
||||
|
||||
char path[PATH_MAX];
|
||||
NSSearchPathEnumerationState state = NSStartSearchPathEnumeration(dir, domainMask);
|
||||
while (state = NSGetNextSearchPathEnumeration(state, path)) {
|
||||
// Handle path
|
||||
}
|
||||
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __NS_SYSTEM_DIRECTORIES_H__
|
||||
#define __NS_SYSTEM_DIRECTORIES_H__
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <Availability.h>
|
||||
|
||||
// Directories
|
||||
|
||||
typedef enum {
|
||||
NSApplicationDirectory = 1, // supported applications (Applications)
|
||||
NSDemoApplicationDirectory = 2, // unsupported applications, demonstration versions (Applications/GrabBag)
|
||||
NSDeveloperApplicationDirectory = 3, // developer applications (Developer/Applications)
|
||||
NSAdminApplicationDirectory = 4, // system and network administration applications (Applications/Utilities)
|
||||
NSLibraryDirectory = 5, // various user-visible documentation, support, and configuration files, resources (Library)
|
||||
NSDeveloperDirectory = 6, // developer resources (Developer)
|
||||
NSUserDirectory = 7, // user home directories (Users)
|
||||
NSDocumentationDirectory = 8, // documentation (Library/Documentation)
|
||||
NSDocumentDirectory = 9, // documents (Documents)
|
||||
NSCoreServiceDirectory = 10, // location of core services (System/Library/CoreServices)
|
||||
NSAutosavedInformationDirectory = 11, // location of user's directory for use with autosaving (Library/Autosave Information)
|
||||
NSDesktopDirectory = 12, // location of user's Desktop (Desktop)
|
||||
NSCachesDirectory = 13, // location of discardable cache files (Library/Caches)
|
||||
NSApplicationSupportDirectory = 14, // location of application support files (plug-ins, etc) (Library/Application Support)
|
||||
NSDownloadsDirectory = 15, // location of user's Downloads directory (Downloads)
|
||||
NSInputMethodsDirectory = 16, // input methods (Library/Input Methods)
|
||||
NSMoviesDirectory = 17, // location of user's Movies directory (~/Movies)
|
||||
NSMusicDirectory = 18, // location of user's Music directory (~/Music)
|
||||
NSPicturesDirectory = 19, // location of user's Pictures directory (~/Pictures)
|
||||
NSPrinterDescriptionDirectory = 20, // location of system's PPDs directory (Library/Printers/PPDs)
|
||||
NSSharedPublicDirectory = 21, // location of user's Public sharing directory (~/Public)
|
||||
NSPreferencePanesDirectory = 22, // location of the PreferencePanes directory for use with System Preferences (Library/PreferencePanes)
|
||||
NSAllApplicationsDirectory = 100, // all directories where applications can occur (Applications, Applications/Utilities, Developer/Applications, ...)
|
||||
NSAllLibrariesDirectory = 101 // all directories where resources can occur (Library, Developer)
|
||||
} NSSearchPathDirectory;
|
||||
|
||||
// Domains
|
||||
|
||||
typedef enum {
|
||||
NSUserDomainMask = 1, // user's home directory --- place to install user's personal items (~)
|
||||
NSLocalDomainMask = 2, // local to the current machine --- place to install items available to everyone on this machine
|
||||
NSNetworkDomainMask = 4, // publically available location in the local area network --- place to install items available on the network (/Network)
|
||||
NSSystemDomainMask = 8, // provided by Apple
|
||||
NSAllDomainsMask = 0x0ffff // all domains: all of the above and more, future items
|
||||
} NSSearchPathDomainMask;
|
||||
|
||||
typedef unsigned int NSSearchPathEnumerationState;
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/*!
|
||||
* @function NSStartSearchPathEnumeration
|
||||
*
|
||||
* @discussion
|
||||
* Call this function to begin enumeration of the filesystem paths for the
|
||||
* specified directory in the desired domains. The return value should be
|
||||
* passed to one or more calls to NSGetNextSearchPathEnumeration() to obtain
|
||||
* the filesystem path and continue the enumeration.
|
||||
*
|
||||
* @param dir
|
||||
* The special directory to enumerate.
|
||||
*
|
||||
* @param domainMask
|
||||
* The domains in which the special directory should be enumerated.
|
||||
*
|
||||
* @return
|
||||
* An enumeration state value to pass to NSGetNextSearchPathEnumeration().
|
||||
*/
|
||||
__OSX_AVAILABLE_STARTING(__MAC_10_0,__IPHONE_2_0)
|
||||
extern NSSearchPathEnumerationState
|
||||
NSStartSearchPathEnumeration(NSSearchPathDirectory dir,
|
||||
NSSearchPathDomainMask domainMask);
|
||||
|
||||
/*!
|
||||
* @function NSGetNextSearchPathEnumeration
|
||||
*
|
||||
* @discussion
|
||||
* Returns the filesystem path for a special directory in the domain(s)
|
||||
* specified by the state value returned by NSStartSearchPathEnumeration().
|
||||
* Subsequent calls to NSGetNextSearchPathEnumeration() should pass the state
|
||||
* value returned by the previous call to continue the enumeration in each
|
||||
* domain. A state value of zero will be returned when all domains have been
|
||||
* enumerated.
|
||||
*
|
||||
* @param state
|
||||
* The state value returned by NSStartSearchPathEnumeration() or by a previous
|
||||
* call to this function.
|
||||
*
|
||||
* @param path
|
||||
* A buffer to which the NUL-terminated filesystem path of the special
|
||||
* directory will be written. The buffer size must be at least PATH_MAX bytes.
|
||||
*
|
||||
* @return
|
||||
* An enumeration state value to pass to a subsequent call to
|
||||
* NSGetNextSearchPathEnumeration(), or zero if enumeration is complete.
|
||||
*/
|
||||
__OSX_AVAILABLE_STARTING(__MAC_10_0,__IPHONE_2_0)
|
||||
extern NSSearchPathEnumerationState
|
||||
NSGetNextSearchPathEnumeration(NSSearchPathEnumerationState state, char *path);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* __NS_SYSTEM_DIRECTORIES_H__ */
|
@ -0,0 +1,79 @@
|
||||
/*
|
||||
* Copyright (c) 1999-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 __SYSTEM_DIRECTORIES_H__
|
||||
#define __SYSTEM_DIRECTORIES_H__
|
||||
|
||||
#include <os/base.h>
|
||||
#include <Availability.h>
|
||||
|
||||
// Available OSX 10.12, iOS 10.0, WatchOS 3.0 and TVOS 10.0. Not all enum identifiers return a useful path on all platforms.
|
||||
OS_ENUM(sysdir_search_path_directory, unsigned int,
|
||||
SYSDIR_DIRECTORY_APPLICATION = 1, // supported applications (Applications)
|
||||
SYSDIR_DIRECTORY_DEMO_APPLICATION = 2, // unsupported applications, demonstration versions (Applications/Demos)
|
||||
SYSDIR_DIRECTORY_DEVELOPER_APPLICATION = 3, // developer applications (Developer/Applications) Soft deprecated as of __MAC_10_5 - there is no one single Developer directory
|
||||
SYSDIR_DIRECTORY_ADMIN_APPLICATION = 4, // system and network administration applications (Applications/Utilities)
|
||||
SYSDIR_DIRECTORY_LIBRARY = 5, // various user-visible documentation, support, and configuration files, resources (Library)
|
||||
SYSDIR_DIRECTORY_DEVELOPER = 6, // developer resources (Developer) Soft deprecated as of __MAC_10_5 - there is no one single Developer directory
|
||||
SYSDIR_DIRECTORY_USER = 7, // user home directories (Users)
|
||||
SYSDIR_DIRECTORY_DOCUMENTATION = 8, // documentation (Library/Documentation)
|
||||
SYSDIR_DIRECTORY_DOCUMENT = 9, // documents (Documents)
|
||||
SYSDIR_DIRECTORY_CORESERVICE = 10, // location of core services (Library/CoreServices)
|
||||
SYSDIR_DIRECTORY_AUTOSAVED_INFORMATION = 11, // location of user's directory for use with autosaving (Library/Autosave Information)
|
||||
SYSDIR_DIRECTORY_DESKTOP = 12, // location of user's Desktop (Desktop)
|
||||
SYSDIR_DIRECTORY_CACHES = 13, // location of discardable cache files (Library/Caches)
|
||||
SYSDIR_DIRECTORY_APPLICATION_SUPPORT = 14, // location of application support files (plug-ins, etc) (Library/Application Support)
|
||||
SYSDIR_DIRECTORY_DOWNLOADS = 15, // location of user's Downloads directory (Downloads)
|
||||
SYSDIR_DIRECTORY_INPUT_METHODS = 16, // input methods (Library/Input Methods)
|
||||
SYSDIR_DIRECTORY_MOVIES = 17, // location of user's Movies directory (Movies)
|
||||
SYSDIR_DIRECTORY_MUSIC = 18, // location of user's Music directory (Music)
|
||||
SYSDIR_DIRECTORY_PICTURES = 19, // location of user's Pictures directory (Pictures)
|
||||
SYSDIR_DIRECTORY_PRINTER_DESCRIPTION = 20, // location of system's PPDs directory (Library/Printers/PPDs)
|
||||
SYSDIR_DIRECTORY_SHARED_PUBLIC = 21, // location of user's Public sharing directory (Public)
|
||||
SYSDIR_DIRECTORY_PREFERENCE_PANES = 22, // location of the PreferencePanes directory for use with System Preferences (Library/PreferencePanes)
|
||||
SYSDIR_DIRECTORY_ALL_APPLICATIONS = 100, // all directories where applications can occur (Applications, Applications/Utilities, Developer/Applications, ...)
|
||||
SYSDIR_DIRECTORY_ALL_LIBRARIES = 101, // all directories where resources can occur (Library, Developer)
|
||||
);
|
||||
|
||||
// Available OSX 10.12, iOS 10.0, WatchOS 3.0 and TVOS 10.0. Not all enum identifiers are useful on all platforms.
|
||||
OS_ENUM(sysdir_search_path_domain_mask, unsigned int,
|
||||
SYSDIR_DOMAIN_MASK_USER = ( 1UL << 0 ), // user's home directory --- place to install user's personal items (~)
|
||||
SYSDIR_DOMAIN_MASK_LOCAL = ( 1UL << 1 ), // local to the current machine --- place to install items available to everyone on this machine
|
||||
SYSDIR_DOMAIN_MASK_NETWORK = ( 1UL << 2 ), // publically available location in the local area network --- place to install items available on the network (/Network)
|
||||
SYSDIR_DOMAIN_MASK_SYSTEM = ( 1UL << 3 ), // provided by Apple
|
||||
SYSDIR_DOMAIN_MASK_ALL = 0x0ffff, // all domains: all of the above and more, future items
|
||||
);
|
||||
|
||||
typedef unsigned int sysdir_search_path_enumeration_state;
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
extern sysdir_search_path_enumeration_state
|
||||
sysdir_start_search_path_enumeration(sysdir_search_path_directory_t dir, sysdir_search_path_domain_mask_t domainMask) __API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0));
|
||||
|
||||
extern sysdir_search_path_enumeration_state
|
||||
sysdir_get_next_search_path_enumeration(sysdir_search_path_enumeration_state state, char *path) __API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0));
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* defined(__SYSTEM_DIRECTORIES_H__) */
|
Loading…
Reference in New Issue
Block a user