edt_fstab.h   [plain text]


/*
 * Copyright (c) 2018-2019 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@
 */

//  edt_fstab.h
//
//  Created on 12/11/2018.
//

#ifndef edt_fstab_h
#define edt_fstab_h

#include <fstab.h>
#include <TargetConditionals.h>

/*  fstab related functions */
int                 setup_fsent(void);
void                end_fsent(void);
struct fstab        *get_fsent(void);
struct fstab        *get_fsspec(const char *);
struct fstab        *get_fsfile(const char *);

#if (TARGET_OS_IPHONE && !TARGET_OS_SIMULATOR)
#define MOUNT_INTERNAL_PATH     "/usr/local/bin/mount_internal"
#define RAMDISK_FS_SPEC         "ramdisk"

enum {EDT_OS_ENV_MAIN = 1, EDT_OS_ENV_OTHER};

/*
 * Note - the following functions are independent of the *_fsent functions above.
 * 		Meaning that they will not change the iteration state.
 *		If an fs iteration is in process, the required information is available and will
 *		simply be returned.
 *		If an iteration is not in process, they will lookup and return the required
 *		information, having reset the iteration state.
 *
 *		return values:
 *		get_boot_container, get_data_volume - return the bsd name of the requested
 *		device upon success. Null otherwise.
 *		needs_data_volume - assumes the data volume is required, unless a successful
 *		lookup reveals otherwise.
 */
const char          *get_boot_container(uint32_t *os_env);
const char          *get_data_volume(void);
int                 needs_data_volume(void);
#endif

#endif /* edt_fstab_h */