| Index: src/trusted/service_runtime/sel_ldr.h
|
| ===================================================================
|
| --- src/trusted/service_runtime/sel_ldr.h (revision 1006)
|
| +++ src/trusted/service_runtime/sel_ldr.h (working copy)
|
| @@ -79,27 +79,6 @@
|
|
|
| #define NACL_SANDBOX_CHROOT_FD "SBX_D"
|
|
|
| -/*
|
| - * Finds the lowest 1 bit in PF_MASKOS. Assumes that at least one
|
| - * bit is set, and that this bit is not the highest-order bit.
|
| - *
|
| - * Let us denote PF_MASKOS by n. Assume n \ne 2^{31}. Let the k^{th}
|
| - * bit be the lowest order bit that is set, i.e.,
|
| - * n = m \cdot 2^{k+1} + 2^k, with k,m integers, m \ge 0, and 0 \le k < 31.
|
| - * then (here lhs is C notation, rhs is LaTeX notation):
|
| - * n ^ (n-1) = (m \cdot 2^{k+1} + 2^k)
|
| - * \oplus (m \dot 2^{k+1} + 2^{k-1} + \ldots + 1)
|
| - * = 2^k + 2^{k-1} + \ldots + 1
|
| - * = (2^{k+1}-1)
|
| - * so
|
| - * ((n ^ (n-1)) + 1U) = 2^{k+1}, (since k < 31, no overflow occurs) and
|
| - * ((n ^ (n-1)) + 1U) >> 1 = 2^k. QED.
|
| - */
|
| -#define PF_OS_WILL_LOAD (((PF_MASKOS ^ (PF_MASKOS-1)) + 1U) >> 1)
|
| -#if PF_MASKOS == (1 << 31)
|
| -# error "PF_MASKOS too large, invariant needed for PF_OS_WILL_LOAD violated"
|
| -#endif
|
| -
|
| #if NACL_WINDOWS
|
| #define WINDOWS_EXCEPTION_TRY do { __try {
|
| #define WINDOWS_EXCEPTION_CATCH } __except(EXCEPTION_EXECUTE_HANDLER) { \
|
| @@ -120,7 +99,8 @@
|
| * public, user settable.
|
| */
|
| uint32_t addr_bits;
|
| - uint32_t max_data_alloc, stack_size;
|
| + uint32_t max_data_alloc;
|
| + uint32_t stack_size;
|
| /*
|
| * max_data_alloc controls how much total data memory can be
|
| * allocated to the NaCl process; this is initialized data,
|
| @@ -147,32 +127,13 @@
|
| uintptr_t data_end;
|
| /* see break_addr below */
|
|
|
| - Elf32_Addr entry_pt;
|
| + uint32_t entry_pt;
|
|
|
| /*
|
| * Alignment boundary for validation (16 or 32).
|
| */
|
| int align_boundary;
|
|
|
| - /* private */
|
| - Elf32_Ehdr elf_hdr;
|
| -
|
| - /*
|
| - * phdrs and sections are mutually exclusive.
|
| - *
|
| - * phdrs non-NULL means that an ELF executable -- with starting text
|
| - * address of NACL_TRAMPOLINE_END -- is used. sections headers are
|
| - * still loaded, for things like bss size. ???? TODO(bsy)
|
| - *
|
| - * when phdrs is NULL, a relocatable object was used and sections
|
| - * will be non-NULL, with the loader performing relocation as part
|
| - * of the image load. This is insufficient for C++ since preinit
|
| - * and init code is not executed, so global constructors aren't run,
|
| - * and multiple section groups for template instantiation are not
|
| - * handled properly, among other issues.
|
| - */
|
| - Elf32_Phdr *phdrs; /* elf_hdr.e_phnum entries */
|
| -
|
| /* common to both ELF executables and relocatable load images */
|
|
|
| uintptr_t springboard_addr; /* relative to mem_start */
|
| @@ -247,23 +208,8 @@
|
| struct DynArray desc_tbl; /* NaClDesc pointers */
|
| };
|
|
|
| -#define NACL_MAX_PROGRAM_HEADERS 128
|
|
|
| -enum NaClPhdrCheckAction {
|
| - PCA_NONE,
|
| - PCA_TEXT_CHECK,
|
| - PCA_IGNORE /* ignore this segment. currently used only for PT_PHDR. */
|
| -};
|
|
|
| -struct NaClPhdrChecks {
|
| - Elf32_Word p_type;
|
| - Elf32_Word p_flags; /* rwx */
|
| - enum NaClPhdrCheckAction action;
|
| - int required; /* only for text for now */
|
| - Elf32_Word p_vaddr; /* if non-zero, vaddr must be this */
|
| -};
|
| -
|
| -
|
| void NaClAppIncrVerbosity(void);
|
|
|
| int NaClAppCtor(struct NaClApp *nap) NACL_WUR;
|
| @@ -295,16 +241,14 @@
|
| * self-modifying code / data writes and automatically invalidate the
|
| * cache lines.
|
| */
|
| -
|
| -
|
| -enum NaClAbiMismatchOption {
|
| - NACL_ABI_MISMATCH_OPTION_ABORT,
|
| - NACL_ABI_MISMATCH_OPTION_IGNORE
|
| +enum NaClAbiCheckOption {
|
| + NACL_ABI_CHECK_OPTION_SKIP,
|
| + NACL_ABI_CHECK_OPTION_CHECK
|
| };
|
|
|
| NaClErrorCode NaClAppLoadFile(struct Gio *gp,
|
| struct NaClApp *nap,
|
| - enum NaClAbiMismatchOption abi_mismatch_option)
|
| + enum NaClAbiCheckOption check_abi)
|
| NACL_WUR;
|
|
|
| size_t NaClAlignPad(size_t val,
|
| @@ -520,4 +464,4 @@
|
|
|
| EXTERN_C_END
|
|
|
| -#endif
|
| +#endif /* NATIVE_CLIENT_SRC_TRUSTED_SERVICE_RUNTIME_SEL_LDR_H__ */
|
|
|