Andrei Homescu | 7c0b79f | 2022-06-30 02:00:46 +0000 | [diff] [blame] | 1 | /* |
| 2 | * Copyright (C) 2022 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 | #pragma once |
| 17 | |
| 18 | #include <stddef.h> |
| 19 | #include <cstdint> |
| 20 | |
Andrei Homescu | 024727b | 2022-08-24 23:54:59 +0000 | [diff] [blame] | 21 | #include <binder/RpcTransport.h> |
Tomasz Wasilczyk | 639490b | 2023-11-01 13:49:41 -0700 | [diff] [blame] | 22 | #include <binder/unique_fd.h> |
Andrei Homescu | 7c0b79f | 2022-06-30 02:00:46 +0000 | [diff] [blame] | 23 | #include <utils/Errors.h> |
| 24 | |
Tomasz Wasilczyk | 0d9dec2 | 2023-10-06 20:28:49 +0000 | [diff] [blame] | 25 | namespace android::binder::os { |
Andrei Homescu | 7c0b79f | 2022-06-30 02:00:46 +0000 | [diff] [blame] | 26 | |
Frederick Mayle | f7b65d1 | 2024-05-14 16:55:14 -0700 | [diff] [blame] | 27 | LIBBINDER_EXPORTED void trace_begin(uint64_t tag, const char* name); |
| 28 | LIBBINDER_EXPORTED void trace_end(uint64_t tag); |
Tomasz Wasilczyk | a9e451a | 2024-05-22 12:18:42 -0700 | [diff] [blame^] | 29 | LIBBINDER_EXPORTED void trace_int(uint64_t tag, const char* name, int32_t value); |
Tomasz Wasilczyk | daf727a | 2023-11-21 13:50:09 -0800 | [diff] [blame] | 30 | |
Tomasz Wasilczyk | 639490b | 2023-11-01 13:49:41 -0700 | [diff] [blame] | 31 | status_t setNonBlocking(borrowed_fd fd); |
Andrei Homescu | 7c0b79f | 2022-06-30 02:00:46 +0000 | [diff] [blame] | 32 | |
| 33 | status_t getRandomBytes(uint8_t* data, size_t size); |
| 34 | |
Andrei Homescu | 24ad36e | 2022-08-04 01:33:33 +0000 | [diff] [blame] | 35 | status_t dupFileDescriptor(int oldFd, int* newFd); |
| 36 | |
Andrei Homescu | 024727b | 2022-08-24 23:54:59 +0000 | [diff] [blame] | 37 | std::unique_ptr<RpcTransportCtxFactory> makeDefaultRpcTransportCtxFactory(); |
| 38 | |
Frederick Mayle | f7b65d1 | 2024-05-14 16:55:14 -0700 | [diff] [blame] | 39 | LIBBINDER_INTERNAL_EXPORTED ssize_t |
| 40 | sendMessageOnSocket(const RpcTransportFd& socket, iovec* iovs, int niovs, |
| 41 | const std::vector<std::variant<unique_fd, borrowed_fd>>* ancillaryFds); |
David Brazdil | 21c887c | 2022-09-23 12:25:18 +0100 | [diff] [blame] | 42 | |
Frederick Mayle | f7b65d1 | 2024-05-14 16:55:14 -0700 | [diff] [blame] | 43 | LIBBINDER_INTERNAL_EXPORTED ssize_t |
| 44 | receiveMessageFromSocket(const RpcTransportFd& socket, iovec* iovs, int niovs, |
| 45 | std::vector<std::variant<unique_fd, borrowed_fd>>* ancillaryFds); |
David Brazdil | 21c887c | 2022-09-23 12:25:18 +0100 | [diff] [blame] | 46 | |
Tomasz Wasilczyk | 0d9dec2 | 2023-10-06 20:28:49 +0000 | [diff] [blame] | 47 | uint64_t GetThreadId(); |
| 48 | |
Tomasz Wasilczyk | 346f104 | 2023-10-09 17:02:46 +0000 | [diff] [blame] | 49 | bool report_sysprop_change(); |
| 50 | |
Tomasz Wasilczyk | 0d9dec2 | 2023-10-06 20:28:49 +0000 | [diff] [blame] | 51 | } // namespace android::binder::os |