blob: c7a06d9a1c5f9c441215a4858d1c9ce11d86a284 [file] [log] [blame]
Stephen Crane2a3c2502020-06-16 17:48:35 -07001/*
2 * Copyright (C) 2020 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#include <android/binder_ibinder.h>
18#include <android/binder_manager.h>
19#include <android/binder_parcel.h>
20#include <android/binder_process.h>
21#include <android/binder_shell.h>
22#include <android/binder_status.h>
23
24namespace android {
25
26namespace c_interface {
27
28// Expose error codes from anonymous enum in binder_status.h
29enum StatusCode {
30 OK = STATUS_OK,
31 UNKNOWN_ERROR = STATUS_UNKNOWN_ERROR,
32 NO_MEMORY = STATUS_NO_MEMORY,
33 INVALID_OPERATION = STATUS_INVALID_OPERATION,
34 BAD_VALUE = STATUS_BAD_VALUE,
35 BAD_TYPE = STATUS_BAD_TYPE,
36 NAME_NOT_FOUND = STATUS_NAME_NOT_FOUND,
37 PERMISSION_DENIED = STATUS_PERMISSION_DENIED,
38 NO_INIT = STATUS_NO_INIT,
39 ALREADY_EXISTS = STATUS_ALREADY_EXISTS,
40 DEAD_OBJECT = STATUS_DEAD_OBJECT,
41 FAILED_TRANSACTION = STATUS_FAILED_TRANSACTION,
42 BAD_INDEX = STATUS_BAD_INDEX,
43 NOT_ENOUGH_DATA = STATUS_NOT_ENOUGH_DATA,
44 WOULD_BLOCK = STATUS_WOULD_BLOCK,
45 TIMED_OUT = STATUS_TIMED_OUT,
46 UNKNOWN_TRANSACTION = STATUS_UNKNOWN_TRANSACTION,
47 FDS_NOT_ALLOWED = STATUS_FDS_NOT_ALLOWED,
48 UNEXPECTED_NULL = STATUS_UNEXPECTED_NULL,
49};
50
51// Expose exception codes from anonymous enum in binder_status.h
52enum ExceptionCode {
53 NONE = EX_NONE,
54 SECURITY = EX_SECURITY,
55 BAD_PARCELABLE = EX_BAD_PARCELABLE,
56 ILLEGAL_ARGUMENT = EX_ILLEGAL_ARGUMENT,
57 NULL_POINTER = EX_NULL_POINTER,
58 ILLEGAL_STATE = EX_ILLEGAL_STATE,
59 NETWORK_MAIN_THREAD = EX_NETWORK_MAIN_THREAD,
60 UNSUPPORTED_OPERATION = EX_UNSUPPORTED_OPERATION,
61 SERVICE_SPECIFIC = EX_SERVICE_SPECIFIC,
62 PARCELABLE = EX_PARCELABLE,
63
64 /**
65 * This is special, and indicates to native binder proxies that the
66 * transaction has failed at a low level.
67 */
68 TRANSACTION_FAILED = EX_TRANSACTION_FAILED,
69};
70
71namespace consts {
72
73enum {
74 FIRST_CALL_TRANSACTION = FIRST_CALL_TRANSACTION,
75 LAST_CALL_TRANSACTION = LAST_CALL_TRANSACTION,
76};
77
78enum {
79 FLAG_ONEWAY = FLAG_ONEWAY,
80};
81
82} // namespace consts
83
84} // namespace c_interface
85
86} // namespace android