xref: /aosp_15_r20/frameworks/native/libs/binder/binder_module.h (revision 38e8c45f13ce32b0dcecb25141ffecaf386fa17f)
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