blob: bd666fe0d7bfc4a90748602a1e8730383465a16b [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
Stephen Crane2a3c2502020-06-16 17:48:35 -070017#include <android/binder_ibinder.h>
Steven Moreland8afad292020-11-06 22:26:51 +000018#include <android/binder_ibinder_platform.h>
Stephen Crane2a3c2502020-06-16 17:48:35 -070019#include <android/binder_manager.h>
20#include <android/binder_parcel.h>
Steven Morelandf183fdd2020-10-27 00:12:12 +000021#include <android/binder_parcel_platform.h>
Stephen Crane2a3c2502020-06-16 17:48:35 -070022#include <android/binder_process.h>
Devin Moorebbd71b12024-08-09 23:20:03 +000023#include <android/binder_rpc.h>
Stephen Crane2a3c2502020-06-16 17:48:35 -070024#include <android/binder_shell.h>
Stephen Craneff7f03a2021-02-25 16:04:22 -080025#include <android/binder_stability.h>
Stephen Crane2a3c2502020-06-16 17:48:35 -070026#include <android/binder_status.h>
27
28namespace android {
29
30namespace c_interface {
31
32// Expose error codes from anonymous enum in binder_status.h
33enum StatusCode {
34 OK = STATUS_OK,
35 UNKNOWN_ERROR = STATUS_UNKNOWN_ERROR,
36 NO_MEMORY = STATUS_NO_MEMORY,
37 INVALID_OPERATION = STATUS_INVALID_OPERATION,
38 BAD_VALUE = STATUS_BAD_VALUE,
39 BAD_TYPE = STATUS_BAD_TYPE,
40 NAME_NOT_FOUND = STATUS_NAME_NOT_FOUND,
41 PERMISSION_DENIED = STATUS_PERMISSION_DENIED,
42 NO_INIT = STATUS_NO_INIT,
43 ALREADY_EXISTS = STATUS_ALREADY_EXISTS,
44 DEAD_OBJECT = STATUS_DEAD_OBJECT,
45 FAILED_TRANSACTION = STATUS_FAILED_TRANSACTION,
46 BAD_INDEX = STATUS_BAD_INDEX,
47 NOT_ENOUGH_DATA = STATUS_NOT_ENOUGH_DATA,
48 WOULD_BLOCK = STATUS_WOULD_BLOCK,
49 TIMED_OUT = STATUS_TIMED_OUT,
50 UNKNOWN_TRANSACTION = STATUS_UNKNOWN_TRANSACTION,
51 FDS_NOT_ALLOWED = STATUS_FDS_NOT_ALLOWED,
52 UNEXPECTED_NULL = STATUS_UNEXPECTED_NULL,
53};
54
55// Expose exception codes from anonymous enum in binder_status.h
56enum ExceptionCode {
57 NONE = EX_NONE,
58 SECURITY = EX_SECURITY,
59 BAD_PARCELABLE = EX_BAD_PARCELABLE,
60 ILLEGAL_ARGUMENT = EX_ILLEGAL_ARGUMENT,
61 NULL_POINTER = EX_NULL_POINTER,
62 ILLEGAL_STATE = EX_ILLEGAL_STATE,
63 NETWORK_MAIN_THREAD = EX_NETWORK_MAIN_THREAD,
64 UNSUPPORTED_OPERATION = EX_UNSUPPORTED_OPERATION,
65 SERVICE_SPECIFIC = EX_SERVICE_SPECIFIC,
66 PARCELABLE = EX_PARCELABLE,
67
68 /**
69 * This is special, and indicates to native binder proxies that the
70 * transaction has failed at a low level.
71 */
72 TRANSACTION_FAILED = EX_TRANSACTION_FAILED,
73};
74
75namespace consts {
76
77enum {
78 FIRST_CALL_TRANSACTION = FIRST_CALL_TRANSACTION,
79 LAST_CALL_TRANSACTION = LAST_CALL_TRANSACTION,
80};
81
82enum {
83 FLAG_ONEWAY = FLAG_ONEWAY,
Steven Morelandf183fdd2020-10-27 00:12:12 +000084 FLAG_CLEAR_BUF = FLAG_CLEAR_BUF,
Stephen Craneff7f03a2021-02-25 16:04:22 -080085 FLAG_PRIVATE_LOCAL = FLAG_PRIVATE_LOCAL,
Stephen Crane2a3c2502020-06-16 17:48:35 -070086};
87
88} // namespace consts
89
90} // namespace c_interface
91
92} // namespace android