// Copyright 2014 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.

{{generator_warning}}

#include "mojo/nacl/mojo_irt.h"
#include "mojo/public/c/system/core.h"
#include "native_client/src/public/chrome_main.h"
#include "native_client/src/public/imc_syscalls.h"
#include "native_client/src/public/imc_types.h"
#include "native_client/src/untrusted/irt/irt.h"

// The value for this FD must not conflict with uses inside Chromium. However,
// mojo/nacl doesn't depend on any Chromium headers, so we can't use a #define
// from there.
#define NACL_MOJO_DESC (NACL_CHROME_DESC_BASE + 3)

bool g_irt_mojo_valid = false;
struct nacl_irt_mojo g_irt_mojo;

struct nacl_irt_mojo* get_irt_mojo() {
  if (!g_irt_mojo_valid) {
    size_t rc = nacl_interface_query(NACL_IRT_MOJO_v0_1,
                                     &g_irt_mojo,
                                     sizeof(g_irt_mojo));
    if (rc != sizeof(g_irt_mojo))
      return NULL;
    else
      g_irt_mojo_valid = true;
  }
  return &g_irt_mojo;
}

{{body}}
