1 /* 2 * Copyright (C) 2008 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 #ifndef _BINDER_MODULE_H_ 18 #define _BINDER_MODULE_H_ 19 20 /* obtain structures and constants from the kernel header */ 21 22 // TODO(b/31559095): bionic on host 23 #ifndef __ANDROID__ 24 #define __packed __attribute__((__packed__)) 25 #endif 26 27 // TODO(b/31559095): bionic on host 28 #if defined(B_PACK_CHARS) && !defined(_UAPI_LINUX_BINDER_H) 29 #undef B_PACK_CHARS 30 #endif 31 32 #include <linux/android/binder.h> 33 #include <sys/ioctl.h> 34 35 struct binder_frozen_state_info { 36 binder_uintptr_t cookie; 37 __u32 is_frozen; 38 }; 39 40 #ifndef BR_FROZEN_BINDER 41 // Temporary definition of BR_FROZEN_BINDER until UAPI binder.h includes it. 42 #define BR_FROZEN_BINDER _IOR('r', 21, struct binder_frozen_state_info) 43 #endif // BR_FROZEN_BINDER 44 45 #ifndef BR_CLEAR_FREEZE_NOTIFICATION_DONE 46 // Temporary definition of BR_CLEAR_FREEZE_NOTIFICATION_DONE until UAPI binder.h includes it. 47 #define BR_CLEAR_FREEZE_NOTIFICATION_DONE _IOR('r', 22, binder_uintptr_t) 48 #endif // BR_CLEAR_FREEZE_NOTIFICATION_DONE 49 50 #ifndef BC_REQUEST_FREEZE_NOTIFICATION 51 // Temporary definition of BC_REQUEST_FREEZE_NOTIFICATION until UAPI binder.h includes it. 52 #define BC_REQUEST_FREEZE_NOTIFICATION _IOW('c', 19, struct binder_handle_cookie) 53 #endif // BC_REQUEST_FREEZE_NOTIFICATION 54 55 #ifndef BC_CLEAR_FREEZE_NOTIFICATION 56 // Temporary definition of BC_CLEAR_FREEZE_NOTIFICATION until UAPI binder.h includes it. 57 #define BC_CLEAR_FREEZE_NOTIFICATION _IOW('c', 20, struct binder_handle_cookie) 58 #endif // BC_CLEAR_FREEZE_NOTIFICATION 59 60 #ifndef BC_FREEZE_NOTIFICATION_DONE 61 // Temporary definition of BC_FREEZE_NOTIFICATION_DONE until UAPI binder.h includes it. 62 #define BC_FREEZE_NOTIFICATION_DONE _IOW('c', 21, binder_uintptr_t) 63 #endif // BC_FREEZE_NOTIFICATION_DONE 64 65 #endif // _BINDER_MODULE_H_ 66