User space needs to know if binder transactions occurred to frozen processes. Introduce a new BINDER_GET_FROZEN ioctl and keep track of transactions occurring to frozen proceses.
Showing the changes to include/uapi/linux/android (1 of 3 files). Show all
Unified · Split
| @@ -223,6 +223,12 @@ struct binder_freeze_info { · 222 unmodified lines | |||
| 223 | __u32 timeout_ms; | 223 | __u32 timeout_ms; |
| 224 | }; | 224 | }; |
| 225 | 225 | ||
| 226 | struct binder_frozen_status_info { | ||
| 227 | __u32 pid; | ||
| 228 | __u32 sync_recv; | ||
| 229 | __u32 async_recv; | ||
| 230 | }; | ||
| 231 | |||
| 226 | #define BINDER_WRITE_READ _IOWR('b', 1, struct binder_write_read) | 232 | #define BINDER_WRITE_READ _IOWR('b', 1, struct binder_write_read) |
| 227 | #define BINDER_SET_IDLE_TIMEOUT _IOW('b', 3, __s64) | 233 | #define BINDER_SET_IDLE_TIMEOUT _IOW('b', 3, __s64) |
| 228 | #define BINDER_SET_MAX_THREADS _IOW('b', 5, __u32) | 234 | #define BINDER_SET_MAX_THREADS _IOW('b', 5, __u32) |
| @@ -234,6 +240,7 @@ struct binder_freeze_info { · 5 unmodified lines | |||
| 234 | #define BINDER_GET_NODE_INFO_FOR_REF _IOWR('b', 12, struct binder_node_info_for_ref) | 240 | #define BINDER_GET_NODE_INFO_FOR_REF _IOWR('b', 12, struct binder_node_info_for_ref) |
| 235 | #define BINDER_SET_CONTEXT_MGR_EXT _IOW('b', 13, struct flat_binder_object) | 241 | #define BINDER_SET_CONTEXT_MGR_EXT _IOW('b', 13, struct flat_binder_object) |
| 236 | #define BINDER_FREEZE _IOW('b', 14, struct binder_freeze_info) | 242 | #define BINDER_FREEZE _IOW('b', 14, struct binder_freeze_info) |
| 243 | #define BINDER_GET_FROZEN_INFO _IOWR('b', 15, struct binder_frozen_status_info) | ||
| 237 | 244 | ||
| 238 | /* | 245 | /* |
| 239 | * NOTE: Two special error codes you should check for when calling | 246 | * NOTE: Two special error codes you should check for when calling |