1 : /*
2 : * Copyright (c) 2013 The Native Client Authors. All rights reserved.
3 : * Use of this source code is governed by a BSD-style license that can be
4 : * found in the LICENSE file.
5 : */
6 :
7 : #include "native_client/src/trusted/service_runtime/nacl_runtime_host_interface.h"
8 :
9 : #include "native_client/src/shared/platform/nacl_log.h"
10 :
11 : #include "native_client/src/trusted/desc/nacl_desc_base.h"
12 : #include "native_client/src/trusted/service_runtime/include/sys/errno.h"
13 :
14 : int NaClRuntimeHostInterfaceCtor_protected(
15 255 : struct NaClRuntimeHostInterface *self) {
16 255 : NaClLog(4, "Entered NaClRuntimeHostInterfaceCtor_protected\n");
17 255 : if (!NaClRefCountCtor((struct NaClRefCount *) self)) {
18 0 : NaClLog(4,
19 : "NaClRuntimeHostInterfaceCtor_protected: "
20 : "NaClRefCountCtor base class ctor failed\n");
21 0 : return 0;
22 : }
23 255 : NACL_VTBL(NaClRefCount, self) =
24 : (struct NaClRefCountVtbl const *) &kNaClRuntimeHostInterfaceVtbl;
25 255 : NaClLog(4,
26 : "Leaving NaClRuntimeHostInterfaceCtor_protected, returning 1\n");
27 255 : return 1;
28 255 : }
29 :
30 0 : void NaClRuntimeHostInterfaceDtor(struct NaClRefCount *vself) {
31 0 : struct NaClRuntimeHostInterface *self =
32 : (struct NaClRuntimeHostInterface *) vself;
33 :
34 0 : NACL_VTBL(NaClRefCount, self) = &kNaClRefCountVtbl;
35 0 : (*NACL_VTBL(NaClRefCount, self)->Dtor)(vself);
36 0 : }
37 :
38 : int NaClRuntimeHostInterfaceStartupInitializationCompleteNotImplemented(
39 0 : struct NaClRuntimeHostInterface *self) {
40 0 : NaClLog(LOG_ERROR,
41 : ("NaClRuntimeHostInterfaceStartupInitializationComplete(0x%08"
42 : NACL_PRIxPTR")\n"),
43 : (uintptr_t) self);
44 0 : return -NACL_ABI_EINVAL;
45 : }
46 :
47 : int NaClRuntimeHostInterfaceReportExitStatusNotImplemented(
48 232 : struct NaClRuntimeHostInterface *self,
49 232 : int exit_status) {
50 232 : NaClLog(LOG_ERROR,
51 : ("NaClRuntimeHostInterfaceReportExitStatus(0x%08"NACL_PRIxPTR
52 : ", 0x%x)\n"),
53 : (uintptr_t) self, exit_status);
54 232 : return -NACL_ABI_EINVAL;
55 : }
56 :
57 : ssize_t NaClRuntimeHostInterfacePostMessageNotImplemented(
58 0 : struct NaClRuntimeHostInterface *self,
59 0 : char const *message,
60 0 : size_t message_bytes) {
61 0 : NaClLog(LOG_ERROR,
62 : ("NaClRuntimeHostInterfaceDoPostMessage(0x%08"NACL_PRIxPTR", %s"
63 : ", %08"NACL_PRIuS")\n"),
64 : (uintptr_t) self, message, message_bytes);
65 0 : return -NACL_ABI_EINVAL;
66 : }
67 :
68 : int NaClRuntimeHostInterfaceCreateProcessNotImplemented(
69 0 : struct NaClRuntimeHostInterface *self,
70 0 : struct NaClDesc **out_sock_addr,
71 0 : struct NaClDesc **out_app_addr) {
72 0 : NaClLog(3,
73 : ("NaClRuntimeHostInterfaceCreateProcess(0x%08"NACL_PRIxPTR
74 : ", 0x%08"NACL_PRIxPTR", 0x%08"NACL_PRIxPTR")\n"),
75 : (uintptr_t) self,
76 : (uintptr_t) out_sock_addr,
77 : (uintptr_t) out_app_addr);
78 0 : return -NACL_ABI_EINVAL;
79 : }
80 :
81 : struct NaClRuntimeHostInterfaceVtbl const kNaClRuntimeHostInterfaceVtbl = {
82 : {
83 : NaClRuntimeHostInterfaceDtor,
84 : },
85 : NaClRuntimeHostInterfaceStartupInitializationCompleteNotImplemented,
86 : NaClRuntimeHostInterfaceReportExitStatusNotImplemented,
87 : NaClRuntimeHostInterfacePostMessageNotImplemented,
88 : NaClRuntimeHostInterfaceCreateProcessNotImplemented,
89 : };
|