You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
2.3 KiB
76 lines
2.3 KiB
/* Copyright (c) 2014 The Chromium OS Authors. All rights reserved.
|
|
* Use of this source code is governed by a BSD-style license that can be
|
|
* found in the LICENSE file.
|
|
*/
|
|
|
|
#if defined(__i386__) || defined(__x86_64__)
|
|
#include <asm/prctl.h>
|
|
#endif /* __i386__ || __x86_64__ */
|
|
#include <errno.h>
|
|
#include <fcntl.h>
|
|
#include <linux/fd.h>
|
|
#include <linux/fs.h>
|
|
#include <linux/loop.h>
|
|
#include <linux/mman.h>
|
|
#include <linux/net.h>
|
|
#include <linux/prctl.h>
|
|
#include <linux/sched.h>
|
|
#include <linux/serial.h>
|
|
#include <linux/sockios.h>
|
|
#include <linux/termios.h>
|
|
#include <signal.h>
|
|
#include <stddef.h>
|
|
#include <sys/mman.h>
|
|
#include <sys/resource.h>
|
|
#include <sys/socket.h>
|
|
#include <sys/stat.h>
|
|
#include <sys/types.h>
|
|
|
|
#include "arch.h"
|
|
|
|
/* These defines use C structures that are not defined in the same headers which
|
|
* cause our CPP logic to fail w/undefined identifiers. Remove them to avoid
|
|
* build errors on such broken systems.
|
|
*/
|
|
#undef BLKTRACESETUP
|
|
#undef FS_IOC_FIEMAP
|
|
|
|
/* The old glibc bundled with the Android host toolchain is missing some ioctl
|
|
* definitions used by minijail policy in crosvm and other projects. Locally
|
|
* define them below.
|
|
* This UAPI is taken from sanitized bionic headers.
|
|
*/
|
|
|
|
/* <linux/fs.h> */
|
|
#if !defined(FS_IOC_FSGETXATTR) && !defined(FS_IOC_FSSETXATTR)
|
|
struct fsxattr {
|
|
__u32 fsx_xflags;
|
|
__u32 fsx_extsize;
|
|
__u32 fsx_nextents;
|
|
__u32 fsx_projid;
|
|
__u32 fsx_cowextsize;
|
|
unsigned char fsx_pad[8];
|
|
};
|
|
#define FS_IOC_FSGETXATTR _IOR('X', 31, struct fsxattr)
|
|
#define FS_IOC_FSSETXATTR _IOW('X', 32, struct fsxattr)
|
|
#endif /* !FS_IOC_FSGETXATTR && !FS_IOC_FSSETXATTR */
|
|
|
|
/* <linux/fscrypt.h> */
|
|
#if !defined(FS_IOC_SET_ENCRYPTION_POLICY) && \
|
|
!defined(FS_IOC_GET_ENCRYPTION_POLICY)
|
|
#define FSCRYPT_KEY_DESCRIPTOR_SIZE 8
|
|
struct fscrypt_policy_v1 {
|
|
__u8 version;
|
|
__u8 contents_encryption_mode;
|
|
__u8 filenames_encryption_mode;
|
|
__u8 flags;
|
|
__u8 master_key_descriptor[FSCRYPT_KEY_DESCRIPTOR_SIZE];
|
|
};
|
|
#define fscrypt_policy fscrypt_policy_v1
|
|
#define FS_IOC_SET_ENCRYPTION_POLICY _IOR('f', 19, struct fscrypt_policy)
|
|
#define FS_IOC_GET_ENCRYPTION_POLICY _IOW('f', 21, struct fscrypt_policy)
|
|
#endif /* !FS_IOC_SET_ENCRYPTION_POLICY && !FS_IOC_GET_ENCRYPTION_POLICY */
|
|
#if !defined(FS_IOC_GET_ENCRYPTION_POLICY_EX)
|
|
#define FS_IOC_GET_ENCRYPTION_POLICY_EX _IOWR('f', 22, __u8[9])
|
|
#endif
|