blob: e2d7b91bf45deb2e0a45bb26e598821cfab42c41 [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef MOJO_NACL_NONSFI_IRT_MOJO_NONSFI_H_
#define MOJO_NACL_NONSFI_IRT_MOJO_NONSFI_H_
#include "mojo/public/c/system/functions.h"
#include "native_client/src/untrusted/irt/irt_dev.h"
namespace nacl {
extern const struct nacl_irt_private_pnacl_translator_compile
nacl_irt_private_pnacl_translator_compile;
extern const struct nacl_irt_private_pnacl_translator_link
nacl_irt_private_pnacl_translator_link;
extern const struct nacl_irt_resource_open
nacl_irt_resource_open;
// Used to pass handle to application. If uncalled,
// the handle defaults to MOJO_HANDLE_INVALID.
void MojoSetInitialHandle(MojoHandle handle);
MojoResult MojoGetInitialHandle(MojoHandle* handle);
// Mechanism to control when nexes get access to the PNaCl translation
// IRT functions.
void MojoPnaclTranslatorEnable();
// IRT interface query function which may be passed to nacl_irt_nonsfi_entry.
// Queries for a mojo interface, then for the irt core.
size_t MojoIrtNonsfiQuery(const char* interface_ident,
void* table,
size_t tablesize);
} // namespace nacl
#endif // MOJO_NACL_NONSFI_IRT_MOJO_NONSFI_H_