// 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/public/c/system/core.h"
#include "{{platform_dir}}/mojo_irt.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}}
