diff --git a/ndk-sys/Cargo.toml b/ndk-sys/Cargo.toml index f3ddb849..6ae9e9eb 100644 --- a/ndk-sys/Cargo.toml +++ b/ndk-sys/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ndk-sys" -version = "0.5.0+25.2.9519653" +version = "0.5.0+26.1.10909125" authors = ["The Rust Windowing contributors"] edition = "2021" description = "FFI bindings for the Android NDK" diff --git a/ndk-sys/src/ffi_aarch64.rs b/ndk-sys/src/ffi_aarch64.rs index e527c0ee..2688440c 100644 --- a/ndk-sys/src/ffi_aarch64.rs +++ b/ndk-sys/src/ffi_aarch64.rs @@ -1,4 +1,4 @@ -/* automatically generated by rust-bindgen 0.66.1 */ +/* automatically generated by rust-bindgen 0.69.1 */ #[repr(C)] #[derive(Default)] @@ -34,10 +34,10 @@ pub const __BIONIC__: u32 = 1; pub const __WORDSIZE: u32 = 64; pub const __bos_level: u32 = 0; pub const __ANDROID_NDK__: u32 = 1; -pub const __NDK_MAJOR__: u32 = 25; -pub const __NDK_MINOR__: u32 = 2; +pub const __NDK_MAJOR__: u32 = 26; +pub const __NDK_MINOR__: u32 = 1; pub const __NDK_BETA__: u32 = 0; -pub const __NDK_BUILD__: u32 = 9519653; +pub const __NDK_BUILD__: u32 = 10909125; pub const __NDK_CANARY__: u32 = 0; pub const __ANDROID_API_FUTURE__: u32 = 10000; pub const __ANDROID_API__: u32 = 10000; @@ -60,6 +60,7 @@ pub const __ANDROID_API_R__: u32 = 30; pub const __ANDROID_API_S__: u32 = 31; pub const __ANDROID_API_T__: u32 = 33; pub const __ANDROID_API_U__: u32 = 34; +pub const __ANDROID_API_V__: u32 = 35; pub const WCHAR_MIN: u8 = 0u8; pub const INT8_MIN: i32 = -128; pub const INT8_MAX: u32 = 127; @@ -91,7 +92,6 @@ pub const WINT_MAX: u32 = 4294967295; pub const WINT_MIN: u32 = 0; pub const __BITS_PER_LONG: u32 = 64; pub const __FD_SETSIZE: u32 = 1024; -pub const __GNUC_VA_LIST: u32 = 1; pub const __bool_true_false_are_defined: u32 = 1; pub const true_: u32 = 1; pub const false_: u32 = 0; @@ -126,6 +126,34 @@ pub const PRIiFAST32: &[u8; 3] = b"li\0"; pub const PRIiFAST64: &[u8; 3] = b"li\0"; pub const PRIiMAX: &[u8; 3] = b"ji\0"; pub const PRIiPTR: &[u8; 3] = b"li\0"; +pub const PRIb8: &[u8; 2] = b"b\0"; +pub const PRIb16: &[u8; 2] = b"b\0"; +pub const PRIb32: &[u8; 2] = b"b\0"; +pub const PRIb64: &[u8; 3] = b"lb\0"; +pub const PRIbLEAST8: &[u8; 2] = b"b\0"; +pub const PRIbLEAST16: &[u8; 2] = b"b\0"; +pub const PRIbLEAST32: &[u8; 2] = b"b\0"; +pub const PRIbLEAST64: &[u8; 3] = b"lb\0"; +pub const PRIbFAST8: &[u8; 2] = b"b\0"; +pub const PRIbFAST16: &[u8; 3] = b"lb\0"; +pub const PRIbFAST32: &[u8; 3] = b"lb\0"; +pub const PRIbFAST64: &[u8; 3] = b"lb\0"; +pub const PRIbMAX: &[u8; 3] = b"jb\0"; +pub const PRIbPTR: &[u8; 3] = b"lb\0"; +pub const PRIB8: &[u8; 2] = b"B\0"; +pub const PRIB16: &[u8; 2] = b"B\0"; +pub const PRIB32: &[u8; 2] = b"B\0"; +pub const PRIB64: &[u8; 3] = b"lB\0"; +pub const PRIBLEAST8: &[u8; 2] = b"B\0"; +pub const PRIBLEAST16: &[u8; 2] = b"B\0"; +pub const PRIBLEAST32: &[u8; 2] = b"B\0"; +pub const PRIBLEAST64: &[u8; 3] = b"lB\0"; +pub const PRIBFAST8: &[u8; 2] = b"B\0"; +pub const PRIBFAST16: &[u8; 3] = b"lB\0"; +pub const PRIBFAST32: &[u8; 3] = b"lB\0"; +pub const PRIBFAST64: &[u8; 3] = b"lB\0"; +pub const PRIBMAX: &[u8; 3] = b"jB\0"; +pub const PRIBPTR: &[u8; 3] = b"lB\0"; pub const PRIo8: &[u8; 2] = b"o\0"; pub const PRIo16: &[u8; 2] = b"o\0"; pub const PRIo32: &[u8; 2] = b"o\0"; @@ -210,6 +238,34 @@ pub const SCNiFAST32: &[u8; 3] = b"li\0"; pub const SCNiFAST64: &[u8; 3] = b"li\0"; pub const SCNiMAX: &[u8; 3] = b"ji\0"; pub const SCNiPTR: &[u8; 3] = b"li\0"; +pub const SCNb8: &[u8; 4] = b"hhb\0"; +pub const SCNb16: &[u8; 3] = b"hb\0"; +pub const SCNb32: &[u8; 2] = b"b\0"; +pub const SCNb64: &[u8; 3] = b"lb\0"; +pub const SCNbLEAST8: &[u8; 4] = b"hhb\0"; +pub const SCNbLEAST16: &[u8; 3] = b"hb\0"; +pub const SCNbLEAST32: &[u8; 2] = b"b\0"; +pub const SCNbLEAST64: &[u8; 3] = b"lb\0"; +pub const SCNbFAST8: &[u8; 4] = b"hhb\0"; +pub const SCNbFAST16: &[u8; 3] = b"lb\0"; +pub const SCNbFAST32: &[u8; 3] = b"lb\0"; +pub const SCNbFAST64: &[u8; 3] = b"lb\0"; +pub const SCNbMAX: &[u8; 3] = b"jb\0"; +pub const SCNbPTR: &[u8; 3] = b"lb\0"; +pub const SCNB8: &[u8; 4] = b"hhB\0"; +pub const SCNB16: &[u8; 3] = b"hB\0"; +pub const SCNB32: &[u8; 2] = b"B\0"; +pub const SCNB64: &[u8; 3] = b"lB\0"; +pub const SCNBLEAST8: &[u8; 4] = b"hhB\0"; +pub const SCNBLEAST16: &[u8; 3] = b"hB\0"; +pub const SCNBLEAST32: &[u8; 2] = b"B\0"; +pub const SCNBLEAST64: &[u8; 3] = b"lB\0"; +pub const SCNBFAST8: &[u8; 4] = b"hhB\0"; +pub const SCNBFAST16: &[u8; 3] = b"lB\0"; +pub const SCNBFAST32: &[u8; 3] = b"lB\0"; +pub const SCNBFAST64: &[u8; 3] = b"lB\0"; +pub const SCNBMAX: &[u8; 3] = b"jB\0"; +pub const SCNBPTR: &[u8; 3] = b"lB\0"; pub const SCNo8: &[u8; 4] = b"hho\0"; pub const SCNo16: &[u8; 3] = b"ho\0"; pub const SCNo32: &[u8; 2] = b"o\0"; @@ -400,6 +456,7 @@ pub const SO_NETNS_COOKIE: u32 = 71; pub const SO_BUF_LOCK: u32 = 72; pub const SO_RESERVE_MEM: u32 = 73; pub const SO_TXREHASH: u32 = 74; +pub const SO_RCVMARK: u32 = 75; pub const SO_TIMESTAMP: u32 = 29; pub const SO_TIMESTAMPNS: u32 = 35; pub const SO_TIMESTAMPING: u32 = 37; @@ -722,6 +779,7 @@ pub const L_ctermid: u32 = 1024; pub const STRUCT_MALLINFO_DECLARED: u32 = 1; pub const M_DECAY_TIME: i32 = -100; pub const M_PURGE: i32 = -101; +pub const M_PURGE_ALL: i32 = -104; pub const M_MEMTAG_TUNING: i32 = -102; pub const M_MEMTAG_TUNING_BUFFER_OVERFLOW: u32 = 0; pub const M_MEMTAG_TUNING_UAF: u32 = 1; @@ -981,6 +1039,10 @@ pub const FPSIMD_MAGIC: u32 = 1179680769; pub const ESR_MAGIC: u32 = 1163088385; pub const EXTRA_MAGIC: u32 = 1163416577; pub const SVE_MAGIC: u32 = 1398162689; +pub const SVE_SIG_FLAG_SM: u32 = 1; +pub const TPIDR2_MAGIC: u32 = 1414547714; +pub const ZA_MAGIC: u32 = 1412850501; +pub const ZT_MAGIC: u32 = 1515474433; pub const __SVE_VQ_BYTES: u32 = 16; pub const __SVE_VQ_MIN: u32 = 1; pub const __SVE_VQ_MAX: u32 = 512; @@ -996,6 +1058,8 @@ pub const SVE_VL_MIN: u32 = 16; pub const SVE_VL_MAX: u32 = 8192; pub const SVE_NUM_ZREGS: u32 = 32; pub const SVE_NUM_PREGS: u32 = 16; +pub const ZT_SIG_REG_SIZE: u32 = 512; +pub const ZT_SIG_REG_BYTES: u32 = 64; pub const SA_RESTORER: u32 = 67108864; pub const MINSIGSTKSZ: u32 = 5120; pub const SIGSTKSZ: u32 = 16384; @@ -1114,6 +1178,7 @@ pub const TRAP_HWBKPT: u32 = 4; pub const TRAP_UNK: u32 = 5; pub const TRAP_PERF: u32 = 6; pub const NSIGTRAP: u32 = 6; +pub const TRAP_PERF_FLAG_ASYNC: u32 = 1; pub const CLD_EXITED: u32 = 1; pub const CLD_KILLED: u32 = 2; pub const CLD_DUMPED: u32 = 3; @@ -1150,6 +1215,9 @@ pub const NGREG: u32 = 34; pub const FD_SETSIZE: u32 = 1024; pub const CLOCKS_PER_SEC: u32 = 1000000; pub const TIME_UTC: u32 = 1; +pub const TIME_MONOTONIC: u32 = 2; +pub const TIME_ACTIVE: u32 = 3; +pub const TIME_THREAD_ACTIVE: u32 = 4; pub const AAUDIO_UNSPECIFIED: u32 = 0; pub const AAUDIO_SYSTEM_USAGE_OFFSET: u32 = 1000; pub const PROPERTY_VENDOR: &[u8; 7] = b"vendor\0"; @@ -1743,8 +1811,8 @@ extern "C" { extern "C" { pub fn AAsset_isAllocated(asset: *mut AAsset) -> ::std::os::raw::c_int; } -pub type va_list = [u64; 4usize]; pub type __gnuc_va_list = [u64; 4usize]; +pub type va_list = [u64; 4usize]; #[repr(C)] pub struct JavaVMAttachArgs { pub version: jint, @@ -2842,6 +2910,10 @@ impl android_fdsan_owner_type { pub const ANDROID_FDSAN_OWNER_TYPE_ZIPARCHIVE: android_fdsan_owner_type = android_fdsan_owner_type(12); } +impl android_fdsan_owner_type { + pub const ANDROID_FDSAN_OWNER_TYPE_NATIVE_HANDLE: android_fdsan_owner_type = + android_fdsan_owner_type(13); +} #[repr(transparent)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct android_fdsan_owner_type(pub ::std::os::raw::c_uint); @@ -3119,6 +3191,17 @@ impl AHardwareBuffer_Format { impl AHardwareBuffer_Format { pub const AHARDWAREBUFFER_FORMAT_R8_UNORM: AHardwareBuffer_Format = AHardwareBuffer_Format(56); } +impl AHardwareBuffer_Format { + pub const AHARDWAREBUFFER_FORMAT_R16_UINT: AHardwareBuffer_Format = AHardwareBuffer_Format(57); +} +impl AHardwareBuffer_Format { + pub const AHARDWAREBUFFER_FORMAT_R16G16_UINT: AHardwareBuffer_Format = + AHardwareBuffer_Format(58); +} +impl AHardwareBuffer_Format { + pub const AHARDWAREBUFFER_FORMAT_R10G10B10A10_UNORM: AHardwareBuffer_Format = + AHardwareBuffer_Format(59); +} #[repr(transparent)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct AHardwareBuffer_Format(pub ::std::os::raw::c_uint); @@ -3194,6 +3277,10 @@ impl AHardwareBuffer_UsageFlags { pub const AHARDWAREBUFFER_USAGE_GPU_MIPMAP_COMPLETE: AHardwareBuffer_UsageFlags = AHardwareBuffer_UsageFlags(67108864); } +impl AHardwareBuffer_UsageFlags { + pub const AHARDWAREBUFFER_USAGE_FRONT_BUFFER: AHardwareBuffer_UsageFlags = + AHardwareBuffer_UsageFlags(4294967296); +} impl AHardwareBuffer_UsageFlags { pub const AHARDWAREBUFFER_USAGE_VENDOR_0: AHardwareBuffer_UsageFlags = AHardwareBuffer_UsageFlags(268435456); @@ -4222,6 +4309,22 @@ pub const AKEYCODE_REFRESH: _bindgen_ty_13 = 285; pub const AKEYCODE_THUMBS_UP: _bindgen_ty_13 = 286; pub const AKEYCODE_THUMBS_DOWN: _bindgen_ty_13 = 287; pub const AKEYCODE_PROFILE_SWITCH: _bindgen_ty_13 = 288; +pub const AKEYCODE_VIDEO_APP_1: _bindgen_ty_13 = 289; +pub const AKEYCODE_VIDEO_APP_2: _bindgen_ty_13 = 290; +pub const AKEYCODE_VIDEO_APP_3: _bindgen_ty_13 = 291; +pub const AKEYCODE_VIDEO_APP_4: _bindgen_ty_13 = 292; +pub const AKEYCODE_VIDEO_APP_5: _bindgen_ty_13 = 293; +pub const AKEYCODE_VIDEO_APP_6: _bindgen_ty_13 = 294; +pub const AKEYCODE_VIDEO_APP_7: _bindgen_ty_13 = 295; +pub const AKEYCODE_VIDEO_APP_8: _bindgen_ty_13 = 296; +pub const AKEYCODE_FEATURED_APP_1: _bindgen_ty_13 = 297; +pub const AKEYCODE_FEATURED_APP_2: _bindgen_ty_13 = 298; +pub const AKEYCODE_FEATURED_APP_3: _bindgen_ty_13 = 299; +pub const AKEYCODE_FEATURED_APP_4: _bindgen_ty_13 = 300; +pub const AKEYCODE_DEMO_APP_1: _bindgen_ty_13 = 301; +pub const AKEYCODE_DEMO_APP_2: _bindgen_ty_13 = 302; +pub const AKEYCODE_DEMO_APP_3: _bindgen_ty_13 = 303; +pub const AKEYCODE_DEMO_APP_4: _bindgen_ty_13 = 304; pub type _bindgen_ty_13 = ::std::os::raw::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -9458,6 +9561,47 @@ extern "C" { extern "C" { pub fn AObbInfo_getFlags(obbInfo: *mut AObbInfo) -> i32; } +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct APerformanceHintManager { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct APerformanceHintSession { + _unused: [u8; 0], +} +extern "C" { + pub fn APerformanceHint_getManager() -> *mut APerformanceHintManager; +} +extern "C" { + pub fn APerformanceHint_createSession( + manager: *mut APerformanceHintManager, + threadIds: *const i32, + size: usize, + initialTargetWorkDurationNanos: i64, + ) -> *mut APerformanceHintSession; +} +extern "C" { + pub fn APerformanceHint_getPreferredUpdateRateNanos( + manager: *mut APerformanceHintManager, + ) -> i64; +} +extern "C" { + pub fn APerformanceHint_updateTargetWorkDuration( + session: *mut APerformanceHintSession, + targetDurationNanos: i64, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn APerformanceHint_reportActualWorkDuration( + session: *mut APerformanceHintSession, + actualDurationNanos: i64, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn APerformanceHint_closeSession(session: *mut APerformanceHintSession); +} pub const PERMISSION_MANAGER_PERMISSION_GRANTED: _bindgen_ty_38 = 0; pub const PERMISSION_MANAGER_PERMISSION_DENIED: _bindgen_ty_38 = -1; pub type _bindgen_ty_38 = ::std::os::raw::c_int; @@ -12374,6 +12518,47 @@ pub const AWINDOW_FLAG_DISMISS_KEYGUARD: _bindgen_ty_47 = 4194304; pub type _bindgen_ty_47 = ::std::os::raw::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct timespec { + pub tv_sec: time_t, + pub tv_nsec: ::std::os::raw::c_long, +} +#[test] +fn bindgen_test_layout_timespec() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(timespec)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(timespec)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(timespec), + "::", + stringify!(tv_sec) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tv_nsec) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(timespec), + "::", + stringify!(tv_nsec) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] pub struct __kernel_timespec { pub tv_sec: __kernel_time64_t, pub tv_nsec: ::std::os::raw::c_longlong, @@ -12540,47 +12725,6 @@ fn bindgen_test_layout___kernel_sock_timeval() { } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct timespec { - pub tv_sec: __kernel_old_time_t, - pub tv_nsec: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_timespec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(timespec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(timespec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timespec), - "::", - stringify!(tv_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_nsec) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(timespec), - "::", - stringify!(tv_nsec) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] pub struct timeval { pub tv_sec: __kernel_old_time_t, pub tv_usec: __kernel_suseconds_t, @@ -13044,7 +13188,8 @@ fn bindgen_test_layout_extra_context() { pub struct sve_context { pub head: _aarch64_ctx, pub vl: __u16, - pub __reserved: [__u16; 3usize], + pub flags: __u16, + pub __reserved: [__u16; 2usize], } #[test] fn bindgen_test_layout_sve_context() { @@ -13081,8 +13226,18 @@ fn bindgen_test_layout_sve_context() { ) ); assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__reserved) as usize - ptr as usize }, + unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 10usize, + concat!( + "Offset of field: ", + stringify!(sve_context), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__reserved) as usize - ptr as usize }, + 12usize, concat!( "Offset of field: ", stringify!(sve_context), @@ -13093,6 +13248,151 @@ fn bindgen_test_layout_sve_context() { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct tpidr2_context { + pub head: _aarch64_ctx, + pub tpidr2: __u64, +} +#[test] +fn bindgen_test_layout_tpidr2_context() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(tpidr2_context)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(tpidr2_context)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).head) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(tpidr2_context), + "::", + stringify!(head) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tpidr2) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(tpidr2_context), + "::", + stringify!(tpidr2) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct za_context { + pub head: _aarch64_ctx, + pub vl: __u16, + pub __reserved: [__u16; 3usize], +} +#[test] +fn bindgen_test_layout_za_context() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(za_context)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(za_context)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).head) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(za_context), + "::", + stringify!(head) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).vl) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(za_context), + "::", + stringify!(vl) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__reserved) as usize - ptr as usize }, + 10usize, + concat!( + "Offset of field: ", + stringify!(za_context), + "::", + stringify!(__reserved) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct zt_context { + pub head: _aarch64_ctx, + pub nregs: __u16, + pub __reserved: [__u16; 3usize], +} +#[test] +fn bindgen_test_layout_zt_context() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(zt_context)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(zt_context)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).head) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(zt_context), + "::", + stringify!(head) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).nregs) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(zt_context), + "::", + stringify!(nregs) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__reserved) as usize - ptr as usize }, + 10usize, + concat!( + "Offset of field: ", + stringify!(zt_context), + "::", + stringify!(__reserved) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] pub struct sigset_t { pub sig: [::std::os::raw::c_ulong; 1usize], } @@ -13656,6 +13956,7 @@ fn bindgen_test_layout___sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_2() { pub struct __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3 { pub _data: ::std::os::raw::c_ulong, pub _type: __u32, + pub _flags: __u32, } #[test] fn bindgen_test_layout___sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3() { @@ -13698,6 +13999,16 @@ fn bindgen_test_layout___sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3() { stringify!(_type) ) ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._flags) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(__sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3), + "::", + stringify!(_flags) + ) + ); } #[test] fn bindgen_test_layout___sifields__bindgen_ty_5__bindgen_ty_1() { @@ -15198,12 +15509,18 @@ extern "C" { extern "C" { pub fn localtime_r(__t: *const time_t, __tm: *mut tm) -> *mut tm; } +extern "C" { + pub fn timelocal(__tm: *mut tm) -> time_t; +} extern "C" { pub fn gmtime(__t: *const time_t) -> *mut tm; } extern "C" { pub fn gmtime_r(__t: *const time_t, __tm: *mut tm) -> *mut tm; } +extern "C" { + pub fn timegm(__tm: *mut tm) -> time_t; +} extern "C" { pub fn strptime( __s: *const ::std::os::raw::c_char, @@ -15290,19 +15607,19 @@ extern "C" { ) -> ::std::os::raw::c_int; } extern "C" { - pub fn timer_gettime(__timer: timer_t, __ts: *mut itimerspec) -> ::std::os::raw::c_int; + pub fn timer_gettime(_timer: timer_t, __ts: *mut itimerspec) -> ::std::os::raw::c_int; } extern "C" { pub fn timer_getoverrun(__timer: timer_t) -> ::std::os::raw::c_int; } extern "C" { - pub fn timelocal(__tm: *mut tm) -> time_t; -} -extern "C" { - pub fn timegm(__tm: *mut tm) -> time_t; + pub fn timespec_get( + __ts: *mut timespec, + __base: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; } extern "C" { - pub fn timespec_get( + pub fn timespec_getres( __ts: *mut timespec, __base: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; diff --git a/ndk-sys/src/ffi_arm.rs b/ndk-sys/src/ffi_arm.rs index cba531f4..c304744a 100644 --- a/ndk-sys/src/ffi_arm.rs +++ b/ndk-sys/src/ffi_arm.rs @@ -1,4 +1,4 @@ -/* automatically generated by rust-bindgen 0.66.1 */ +/* automatically generated by rust-bindgen 0.69.1 */ #[repr(C)] #[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] @@ -114,10 +114,10 @@ pub const __BIONIC__: u32 = 1; pub const __WORDSIZE: u32 = 32; pub const __bos_level: u32 = 0; pub const __ANDROID_NDK__: u32 = 1; -pub const __NDK_MAJOR__: u32 = 25; -pub const __NDK_MINOR__: u32 = 2; +pub const __NDK_MAJOR__: u32 = 26; +pub const __NDK_MINOR__: u32 = 1; pub const __NDK_BETA__: u32 = 0; -pub const __NDK_BUILD__: u32 = 9519653; +pub const __NDK_BUILD__: u32 = 10909125; pub const __NDK_CANARY__: u32 = 0; pub const __ANDROID_API_FUTURE__: u32 = 10000; pub const __ANDROID_API__: u32 = 10000; @@ -140,6 +140,7 @@ pub const __ANDROID_API_R__: u32 = 30; pub const __ANDROID_API_S__: u32 = 31; pub const __ANDROID_API_T__: u32 = 33; pub const __ANDROID_API_U__: u32 = 34; +pub const __ANDROID_API_V__: u32 = 35; pub const WCHAR_MIN: u8 = 0u8; pub const INT8_MIN: i32 = -128; pub const INT8_MAX: u32 = 127; @@ -177,7 +178,6 @@ pub const PTRDIFF_MAX: u32 = 2147483647; pub const SIZE_MAX: u32 = 4294967295; pub const __BITS_PER_LONG: u32 = 32; pub const __FD_SETSIZE: u32 = 1024; -pub const __GNUC_VA_LIST: u32 = 1; pub const __bool_true_false_are_defined: u32 = 1; pub const true_: u32 = 1; pub const false_: u32 = 0; @@ -204,6 +204,28 @@ pub const PRIiLEAST64: &[u8; 4] = b"lli\0"; pub const PRIiFAST8: &[u8; 2] = b"i\0"; pub const PRIiFAST64: &[u8; 4] = b"lli\0"; pub const PRIiMAX: &[u8; 3] = b"ji\0"; +pub const PRIb8: &[u8; 2] = b"b\0"; +pub const PRIb16: &[u8; 2] = b"b\0"; +pub const PRIb32: &[u8; 2] = b"b\0"; +pub const PRIb64: &[u8; 4] = b"llb\0"; +pub const PRIbLEAST8: &[u8; 2] = b"b\0"; +pub const PRIbLEAST16: &[u8; 2] = b"b\0"; +pub const PRIbLEAST32: &[u8; 2] = b"b\0"; +pub const PRIbLEAST64: &[u8; 4] = b"llb\0"; +pub const PRIbFAST8: &[u8; 2] = b"b\0"; +pub const PRIbFAST64: &[u8; 4] = b"llb\0"; +pub const PRIbMAX: &[u8; 3] = b"jb\0"; +pub const PRIB8: &[u8; 2] = b"B\0"; +pub const PRIB16: &[u8; 2] = b"B\0"; +pub const PRIB32: &[u8; 2] = b"B\0"; +pub const PRIB64: &[u8; 4] = b"llB\0"; +pub const PRIBLEAST8: &[u8; 2] = b"B\0"; +pub const PRIBLEAST16: &[u8; 2] = b"B\0"; +pub const PRIBLEAST32: &[u8; 2] = b"B\0"; +pub const PRIBLEAST64: &[u8; 4] = b"llB\0"; +pub const PRIBFAST8: &[u8; 2] = b"B\0"; +pub const PRIBFAST64: &[u8; 4] = b"llB\0"; +pub const PRIBMAX: &[u8; 3] = b"jB\0"; pub const PRIo8: &[u8; 2] = b"o\0"; pub const PRIo16: &[u8; 2] = b"o\0"; pub const PRIo32: &[u8; 2] = b"o\0"; @@ -270,6 +292,28 @@ pub const SCNiLEAST64: &[u8; 4] = b"lli\0"; pub const SCNiFAST8: &[u8; 4] = b"hhi\0"; pub const SCNiFAST64: &[u8; 4] = b"lli\0"; pub const SCNiMAX: &[u8; 3] = b"ji\0"; +pub const SCNb8: &[u8; 4] = b"hhb\0"; +pub const SCNb16: &[u8; 3] = b"hb\0"; +pub const SCNb32: &[u8; 2] = b"b\0"; +pub const SCNb64: &[u8; 4] = b"llb\0"; +pub const SCNbLEAST8: &[u8; 4] = b"hhb\0"; +pub const SCNbLEAST16: &[u8; 3] = b"hb\0"; +pub const SCNbLEAST32: &[u8; 2] = b"b\0"; +pub const SCNbLEAST64: &[u8; 4] = b"llb\0"; +pub const SCNbFAST8: &[u8; 4] = b"hhb\0"; +pub const SCNbFAST64: &[u8; 4] = b"llb\0"; +pub const SCNbMAX: &[u8; 3] = b"jb\0"; +pub const SCNB8: &[u8; 4] = b"hhB\0"; +pub const SCNB16: &[u8; 3] = b"hB\0"; +pub const SCNB32: &[u8; 2] = b"B\0"; +pub const SCNB64: &[u8; 4] = b"llB\0"; +pub const SCNBLEAST8: &[u8; 4] = b"hhB\0"; +pub const SCNBLEAST16: &[u8; 3] = b"hB\0"; +pub const SCNBLEAST32: &[u8; 2] = b"B\0"; +pub const SCNBLEAST64: &[u8; 4] = b"llB\0"; +pub const SCNBFAST8: &[u8; 4] = b"hhB\0"; +pub const SCNBFAST64: &[u8; 4] = b"llB\0"; +pub const SCNBMAX: &[u8; 3] = b"jB\0"; pub const SCNo8: &[u8; 4] = b"hho\0"; pub const SCNo16: &[u8; 3] = b"ho\0"; pub const SCNo32: &[u8; 2] = b"o\0"; @@ -454,6 +498,7 @@ pub const SO_NETNS_COOKIE: u32 = 71; pub const SO_BUF_LOCK: u32 = 72; pub const SO_RESERVE_MEM: u32 = 73; pub const SO_TXREHASH: u32 = 74; +pub const SO_RCVMARK: u32 = 75; pub const SOCK_IOC_TYPE: u32 = 137; pub const SIOCADDRT: u32 = 35083; pub const SIOCDELRT: u32 = 35084; @@ -766,6 +811,7 @@ pub const L_ctermid: u32 = 1024; pub const STRUCT_MALLINFO_DECLARED: u32 = 1; pub const M_DECAY_TIME: i32 = -100; pub const M_PURGE: i32 = -101; +pub const M_PURGE_ALL: i32 = -104; pub const M_MEMTAG_TUNING: i32 = -102; pub const M_MEMTAG_TUNING_BUFFER_OVERFLOW: u32 = 0; pub const M_MEMTAG_TUNING_UAF: u32 = 1; @@ -1136,6 +1182,7 @@ pub const TRAP_HWBKPT: u32 = 4; pub const TRAP_UNK: u32 = 5; pub const TRAP_PERF: u32 = 6; pub const NSIGTRAP: u32 = 6; +pub const TRAP_PERF_FLAG_ASYNC: u32 = 1; pub const CLD_EXITED: u32 = 1; pub const CLD_KILLED: u32 = 2; pub const CLD_DUMPED: u32 = 3; @@ -1173,6 +1220,9 @@ pub const NGREG: u32 = 18; pub const FD_SETSIZE: u32 = 1024; pub const CLOCKS_PER_SEC: u32 = 1000000; pub const TIME_UTC: u32 = 1; +pub const TIME_MONOTONIC: u32 = 2; +pub const TIME_ACTIVE: u32 = 3; +pub const TIME_THREAD_ACTIVE: u32 = 4; pub const AAUDIO_UNSPECIFIED: u32 = 0; pub const AAUDIO_SYSTEM_USAGE_OFFSET: u32 = 1000; pub const PROPERTY_VENDOR: &[u8; 7] = b"vendor\0"; @@ -1753,8 +1803,8 @@ extern "C" { extern "C" { pub fn AAsset_isAllocated(asset: *mut AAsset) -> ::std::os::raw::c_int; } -pub type va_list = u32; pub type __gnuc_va_list = u32; +pub type va_list = u32; #[repr(C)] pub struct JavaVMAttachArgs { pub version: jint, @@ -2852,6 +2902,10 @@ impl android_fdsan_owner_type { pub const ANDROID_FDSAN_OWNER_TYPE_ZIPARCHIVE: android_fdsan_owner_type = android_fdsan_owner_type(12); } +impl android_fdsan_owner_type { + pub const ANDROID_FDSAN_OWNER_TYPE_NATIVE_HANDLE: android_fdsan_owner_type = + android_fdsan_owner_type(13); +} #[repr(transparent)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct android_fdsan_owner_type(pub ::std::os::raw::c_uint); @@ -3129,6 +3183,17 @@ impl AHardwareBuffer_Format { impl AHardwareBuffer_Format { pub const AHARDWAREBUFFER_FORMAT_R8_UNORM: AHardwareBuffer_Format = AHardwareBuffer_Format(56); } +impl AHardwareBuffer_Format { + pub const AHARDWAREBUFFER_FORMAT_R16_UINT: AHardwareBuffer_Format = AHardwareBuffer_Format(57); +} +impl AHardwareBuffer_Format { + pub const AHARDWAREBUFFER_FORMAT_R16G16_UINT: AHardwareBuffer_Format = + AHardwareBuffer_Format(58); +} +impl AHardwareBuffer_Format { + pub const AHARDWAREBUFFER_FORMAT_R10G10B10A10_UNORM: AHardwareBuffer_Format = + AHardwareBuffer_Format(59); +} #[repr(transparent)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct AHardwareBuffer_Format(pub ::std::os::raw::c_uint); @@ -3204,6 +3269,10 @@ impl AHardwareBuffer_UsageFlags { pub const AHARDWAREBUFFER_USAGE_GPU_MIPMAP_COMPLETE: AHardwareBuffer_UsageFlags = AHardwareBuffer_UsageFlags(67108864); } +impl AHardwareBuffer_UsageFlags { + pub const AHARDWAREBUFFER_USAGE_FRONT_BUFFER: AHardwareBuffer_UsageFlags = + AHardwareBuffer_UsageFlags(2147483648); +} impl AHardwareBuffer_UsageFlags { pub const AHARDWAREBUFFER_USAGE_VENDOR_0: AHardwareBuffer_UsageFlags = AHardwareBuffer_UsageFlags(268435456); @@ -4232,6 +4301,22 @@ pub const AKEYCODE_REFRESH: _bindgen_ty_13 = 285; pub const AKEYCODE_THUMBS_UP: _bindgen_ty_13 = 286; pub const AKEYCODE_THUMBS_DOWN: _bindgen_ty_13 = 287; pub const AKEYCODE_PROFILE_SWITCH: _bindgen_ty_13 = 288; +pub const AKEYCODE_VIDEO_APP_1: _bindgen_ty_13 = 289; +pub const AKEYCODE_VIDEO_APP_2: _bindgen_ty_13 = 290; +pub const AKEYCODE_VIDEO_APP_3: _bindgen_ty_13 = 291; +pub const AKEYCODE_VIDEO_APP_4: _bindgen_ty_13 = 292; +pub const AKEYCODE_VIDEO_APP_5: _bindgen_ty_13 = 293; +pub const AKEYCODE_VIDEO_APP_6: _bindgen_ty_13 = 294; +pub const AKEYCODE_VIDEO_APP_7: _bindgen_ty_13 = 295; +pub const AKEYCODE_VIDEO_APP_8: _bindgen_ty_13 = 296; +pub const AKEYCODE_FEATURED_APP_1: _bindgen_ty_13 = 297; +pub const AKEYCODE_FEATURED_APP_2: _bindgen_ty_13 = 298; +pub const AKEYCODE_FEATURED_APP_3: _bindgen_ty_13 = 299; +pub const AKEYCODE_FEATURED_APP_4: _bindgen_ty_13 = 300; +pub const AKEYCODE_DEMO_APP_1: _bindgen_ty_13 = 301; +pub const AKEYCODE_DEMO_APP_2: _bindgen_ty_13 = 302; +pub const AKEYCODE_DEMO_APP_3: _bindgen_ty_13 = 303; +pub const AKEYCODE_DEMO_APP_4: _bindgen_ty_13 = 304; pub type _bindgen_ty_13 = ::std::os::raw::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -9456,6 +9541,47 @@ extern "C" { extern "C" { pub fn AObbInfo_getFlags(obbInfo: *mut AObbInfo) -> i32; } +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct APerformanceHintManager { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct APerformanceHintSession { + _unused: [u8; 0], +} +extern "C" { + pub fn APerformanceHint_getManager() -> *mut APerformanceHintManager; +} +extern "C" { + pub fn APerformanceHint_createSession( + manager: *mut APerformanceHintManager, + threadIds: *const i32, + size: usize, + initialTargetWorkDurationNanos: i64, + ) -> *mut APerformanceHintSession; +} +extern "C" { + pub fn APerformanceHint_getPreferredUpdateRateNanos( + manager: *mut APerformanceHintManager, + ) -> i64; +} +extern "C" { + pub fn APerformanceHint_updateTargetWorkDuration( + session: *mut APerformanceHintSession, + targetDurationNanos: i64, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn APerformanceHint_reportActualWorkDuration( + session: *mut APerformanceHintSession, + actualDurationNanos: i64, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn APerformanceHint_closeSession(session: *mut APerformanceHintSession); +} pub const PERMISSION_MANAGER_PERMISSION_GRANTED: _bindgen_ty_38 = 0; pub const PERMISSION_MANAGER_PERMISSION_DENIED: _bindgen_ty_38 = -1; pub type _bindgen_ty_38 = ::std::os::raw::c_int; @@ -12207,6 +12333,47 @@ pub const AWINDOW_FLAG_DISMISS_KEYGUARD: _bindgen_ty_47 = 4194304; pub type _bindgen_ty_47 = ::std::os::raw::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct timespec { + pub tv_sec: time_t, + pub tv_nsec: ::std::os::raw::c_long, +} +#[test] +fn bindgen_test_layout_timespec() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(timespec)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(timespec)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(timespec), + "::", + stringify!(tv_sec) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tv_nsec) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(timespec), + "::", + stringify!(tv_nsec) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] pub struct __kernel_timespec { pub tv_sec: __kernel_time64_t, pub tv_nsec: ::std::os::raw::c_longlong, @@ -12373,47 +12540,6 @@ fn bindgen_test_layout___kernel_sock_timeval() { } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct timespec { - pub tv_sec: __kernel_old_time_t, - pub tv_nsec: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_timespec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(timespec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(timespec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timespec), - "::", - stringify!(tv_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_nsec) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(timespec), - "::", - stringify!(tv_nsec) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] pub struct timeval { pub tv_sec: __kernel_old_time_t, pub tv_usec: __kernel_suseconds_t, @@ -13412,6 +13538,7 @@ fn bindgen_test_layout___sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_2() { pub struct __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3 { pub _data: ::std::os::raw::c_ulong, pub _type: __u32, + pub _flags: __u32, } #[test] fn bindgen_test_layout___sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3() { @@ -13420,7 +13547,7 @@ fn bindgen_test_layout___sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3() { let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<__sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3>(), - 8usize, + 12usize, concat!( "Size of: ", stringify!(__sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3) @@ -13454,6 +13581,16 @@ fn bindgen_test_layout___sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3() { stringify!(_type) ) ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._flags) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(__sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3), + "::", + stringify!(_flags) + ) + ); } #[test] fn bindgen_test_layout___sifields__bindgen_ty_5__bindgen_ty_1() { @@ -15473,12 +15610,18 @@ extern "C" { extern "C" { pub fn localtime_r(__t: *const time_t, __tm: *mut tm) -> *mut tm; } +extern "C" { + pub fn timelocal(__tm: *mut tm) -> time_t; +} extern "C" { pub fn gmtime(__t: *const time_t) -> *mut tm; } extern "C" { pub fn gmtime_r(__t: *const time_t, __tm: *mut tm) -> *mut tm; } +extern "C" { + pub fn timegm(__tm: *mut tm) -> time_t; +} extern "C" { pub fn strptime( __s: *const ::std::os::raw::c_char, @@ -15565,19 +15708,19 @@ extern "C" { ) -> ::std::os::raw::c_int; } extern "C" { - pub fn timer_gettime(__timer: timer_t, __ts: *mut itimerspec) -> ::std::os::raw::c_int; + pub fn timer_gettime(_timer: timer_t, __ts: *mut itimerspec) -> ::std::os::raw::c_int; } extern "C" { pub fn timer_getoverrun(__timer: timer_t) -> ::std::os::raw::c_int; } extern "C" { - pub fn timelocal(__tm: *mut tm) -> time_t; -} -extern "C" { - pub fn timegm(__tm: *mut tm) -> time_t; + pub fn timespec_get( + __ts: *mut timespec, + __base: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; } extern "C" { - pub fn timespec_get( + pub fn timespec_getres( __ts: *mut timespec, __base: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; diff --git a/ndk-sys/src/ffi_i686.rs b/ndk-sys/src/ffi_i686.rs index 2a19f1e7..f4a3de55 100644 --- a/ndk-sys/src/ffi_i686.rs +++ b/ndk-sys/src/ffi_i686.rs @@ -1,4 +1,4 @@ -/* automatically generated by rust-bindgen 0.66.1 */ +/* automatically generated by rust-bindgen 0.69.1 */ #[repr(C)] #[derive(Default)] @@ -34,10 +34,10 @@ pub const __BIONIC__: u32 = 1; pub const __WORDSIZE: u32 = 32; pub const __bos_level: u32 = 0; pub const __ANDROID_NDK__: u32 = 1; -pub const __NDK_MAJOR__: u32 = 25; -pub const __NDK_MINOR__: u32 = 2; +pub const __NDK_MAJOR__: u32 = 26; +pub const __NDK_MINOR__: u32 = 1; pub const __NDK_BETA__: u32 = 0; -pub const __NDK_BUILD__: u32 = 9519653; +pub const __NDK_BUILD__: u32 = 10909125; pub const __NDK_CANARY__: u32 = 0; pub const __ANDROID_API_FUTURE__: u32 = 10000; pub const __ANDROID_API__: u32 = 10000; @@ -60,6 +60,7 @@ pub const __ANDROID_API_R__: u32 = 30; pub const __ANDROID_API_S__: u32 = 31; pub const __ANDROID_API_T__: u32 = 33; pub const __ANDROID_API_U__: u32 = 34; +pub const __ANDROID_API_V__: u32 = 35; pub const INT8_MIN: i32 = -128; pub const INT8_MAX: u32 = 127; pub const INT_LEAST8_MIN: i32 = -128; @@ -96,7 +97,6 @@ pub const PTRDIFF_MAX: u32 = 2147483647; pub const SIZE_MAX: u32 = 4294967295; pub const __BITS_PER_LONG: u32 = 32; pub const __FD_SETSIZE: u32 = 1024; -pub const __GNUC_VA_LIST: u32 = 1; pub const __bool_true_false_are_defined: u32 = 1; pub const true_: u32 = 1; pub const false_: u32 = 0; @@ -123,6 +123,28 @@ pub const PRIiLEAST64: &[u8; 4] = b"lli\0"; pub const PRIiFAST8: &[u8; 2] = b"i\0"; pub const PRIiFAST64: &[u8; 4] = b"lli\0"; pub const PRIiMAX: &[u8; 3] = b"ji\0"; +pub const PRIb8: &[u8; 2] = b"b\0"; +pub const PRIb16: &[u8; 2] = b"b\0"; +pub const PRIb32: &[u8; 2] = b"b\0"; +pub const PRIb64: &[u8; 4] = b"llb\0"; +pub const PRIbLEAST8: &[u8; 2] = b"b\0"; +pub const PRIbLEAST16: &[u8; 2] = b"b\0"; +pub const PRIbLEAST32: &[u8; 2] = b"b\0"; +pub const PRIbLEAST64: &[u8; 4] = b"llb\0"; +pub const PRIbFAST8: &[u8; 2] = b"b\0"; +pub const PRIbFAST64: &[u8; 4] = b"llb\0"; +pub const PRIbMAX: &[u8; 3] = b"jb\0"; +pub const PRIB8: &[u8; 2] = b"B\0"; +pub const PRIB16: &[u8; 2] = b"B\0"; +pub const PRIB32: &[u8; 2] = b"B\0"; +pub const PRIB64: &[u8; 4] = b"llB\0"; +pub const PRIBLEAST8: &[u8; 2] = b"B\0"; +pub const PRIBLEAST16: &[u8; 2] = b"B\0"; +pub const PRIBLEAST32: &[u8; 2] = b"B\0"; +pub const PRIBLEAST64: &[u8; 4] = b"llB\0"; +pub const PRIBFAST8: &[u8; 2] = b"B\0"; +pub const PRIBFAST64: &[u8; 4] = b"llB\0"; +pub const PRIBMAX: &[u8; 3] = b"jB\0"; pub const PRIo8: &[u8; 2] = b"o\0"; pub const PRIo16: &[u8; 2] = b"o\0"; pub const PRIo32: &[u8; 2] = b"o\0"; @@ -189,6 +211,28 @@ pub const SCNiLEAST64: &[u8; 4] = b"lli\0"; pub const SCNiFAST8: &[u8; 4] = b"hhi\0"; pub const SCNiFAST64: &[u8; 4] = b"lli\0"; pub const SCNiMAX: &[u8; 3] = b"ji\0"; +pub const SCNb8: &[u8; 4] = b"hhb\0"; +pub const SCNb16: &[u8; 3] = b"hb\0"; +pub const SCNb32: &[u8; 2] = b"b\0"; +pub const SCNb64: &[u8; 4] = b"llb\0"; +pub const SCNbLEAST8: &[u8; 4] = b"hhb\0"; +pub const SCNbLEAST16: &[u8; 3] = b"hb\0"; +pub const SCNbLEAST32: &[u8; 2] = b"b\0"; +pub const SCNbLEAST64: &[u8; 4] = b"llb\0"; +pub const SCNbFAST8: &[u8; 4] = b"hhb\0"; +pub const SCNbFAST64: &[u8; 4] = b"llb\0"; +pub const SCNbMAX: &[u8; 3] = b"jb\0"; +pub const SCNB8: &[u8; 4] = b"hhB\0"; +pub const SCNB16: &[u8; 3] = b"hB\0"; +pub const SCNB32: &[u8; 2] = b"B\0"; +pub const SCNB64: &[u8; 4] = b"llB\0"; +pub const SCNBLEAST8: &[u8; 4] = b"hhB\0"; +pub const SCNBLEAST16: &[u8; 3] = b"hB\0"; +pub const SCNBLEAST32: &[u8; 2] = b"B\0"; +pub const SCNBLEAST64: &[u8; 4] = b"llB\0"; +pub const SCNBFAST8: &[u8; 4] = b"hhB\0"; +pub const SCNBFAST64: &[u8; 4] = b"llB\0"; +pub const SCNBMAX: &[u8; 3] = b"jB\0"; pub const SCNo8: &[u8; 4] = b"hho\0"; pub const SCNo16: &[u8; 3] = b"ho\0"; pub const SCNo32: &[u8; 2] = b"o\0"; @@ -373,6 +417,7 @@ pub const SO_NETNS_COOKIE: u32 = 71; pub const SO_BUF_LOCK: u32 = 72; pub const SO_RESERVE_MEM: u32 = 73; pub const SO_TXREHASH: u32 = 74; +pub const SO_RCVMARK: u32 = 75; pub const SOCK_IOC_TYPE: u32 = 137; pub const SIOCADDRT: u32 = 35083; pub const SIOCDELRT: u32 = 35084; @@ -685,6 +730,7 @@ pub const L_ctermid: u32 = 1024; pub const STRUCT_MALLINFO_DECLARED: u32 = 1; pub const M_DECAY_TIME: i32 = -100; pub const M_PURGE: i32 = -101; +pub const M_PURGE_ALL: i32 = -104; pub const M_MEMTAG_TUNING: i32 = -102; pub const M_MEMTAG_TUNING_BUFFER_OVERFLOW: u32 = 0; pub const M_MEMTAG_TUNING_UAF: u32 = 1; @@ -1056,6 +1102,7 @@ pub const TRAP_HWBKPT: u32 = 4; pub const TRAP_UNK: u32 = 5; pub const TRAP_PERF: u32 = 6; pub const NSIGTRAP: u32 = 6; +pub const TRAP_PERF_FLAG_ASYNC: u32 = 1; pub const CLD_EXITED: u32 = 1; pub const CLD_KILLED: u32 = 2; pub const CLD_DUMPED: u32 = 3; @@ -1093,6 +1140,9 @@ pub const UPAGES: u32 = 1; pub const FD_SETSIZE: u32 = 1024; pub const CLOCKS_PER_SEC: u32 = 1000000; pub const TIME_UTC: u32 = 1; +pub const TIME_MONOTONIC: u32 = 2; +pub const TIME_ACTIVE: u32 = 3; +pub const TIME_THREAD_ACTIVE: u32 = 4; pub const AAUDIO_UNSPECIFIED: u32 = 0; pub const AAUDIO_SYSTEM_USAGE_OFFSET: u32 = 1000; pub const PROPERTY_VENDOR: &[u8; 7] = b"vendor\0"; @@ -1674,8 +1724,8 @@ extern "C" { extern "C" { pub fn AAsset_isAllocated(asset: *mut AAsset) -> ::std::os::raw::c_int; } -pub type va_list = __builtin_va_list; pub type __gnuc_va_list = __builtin_va_list; +pub type va_list = __builtin_va_list; #[repr(C)] pub struct JavaVMAttachArgs { pub version: jint, @@ -2773,6 +2823,10 @@ impl android_fdsan_owner_type { pub const ANDROID_FDSAN_OWNER_TYPE_ZIPARCHIVE: android_fdsan_owner_type = android_fdsan_owner_type(12); } +impl android_fdsan_owner_type { + pub const ANDROID_FDSAN_OWNER_TYPE_NATIVE_HANDLE: android_fdsan_owner_type = + android_fdsan_owner_type(13); +} #[repr(transparent)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct android_fdsan_owner_type(pub ::std::os::raw::c_uint); @@ -3050,6 +3104,17 @@ impl AHardwareBuffer_Format { impl AHardwareBuffer_Format { pub const AHARDWAREBUFFER_FORMAT_R8_UNORM: AHardwareBuffer_Format = AHardwareBuffer_Format(56); } +impl AHardwareBuffer_Format { + pub const AHARDWAREBUFFER_FORMAT_R16_UINT: AHardwareBuffer_Format = AHardwareBuffer_Format(57); +} +impl AHardwareBuffer_Format { + pub const AHARDWAREBUFFER_FORMAT_R16G16_UINT: AHardwareBuffer_Format = + AHardwareBuffer_Format(58); +} +impl AHardwareBuffer_Format { + pub const AHARDWAREBUFFER_FORMAT_R10G10B10A10_UNORM: AHardwareBuffer_Format = + AHardwareBuffer_Format(59); +} #[repr(transparent)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct AHardwareBuffer_Format(pub ::std::os::raw::c_uint); @@ -3125,6 +3190,10 @@ impl AHardwareBuffer_UsageFlags { pub const AHARDWAREBUFFER_USAGE_GPU_MIPMAP_COMPLETE: AHardwareBuffer_UsageFlags = AHardwareBuffer_UsageFlags(67108864); } +impl AHardwareBuffer_UsageFlags { + pub const AHARDWAREBUFFER_USAGE_FRONT_BUFFER: AHardwareBuffer_UsageFlags = + AHardwareBuffer_UsageFlags(2147483648); +} impl AHardwareBuffer_UsageFlags { pub const AHARDWAREBUFFER_USAGE_VENDOR_0: AHardwareBuffer_UsageFlags = AHardwareBuffer_UsageFlags(268435456); @@ -4153,6 +4222,22 @@ pub const AKEYCODE_REFRESH: _bindgen_ty_13 = 285; pub const AKEYCODE_THUMBS_UP: _bindgen_ty_13 = 286; pub const AKEYCODE_THUMBS_DOWN: _bindgen_ty_13 = 287; pub const AKEYCODE_PROFILE_SWITCH: _bindgen_ty_13 = 288; +pub const AKEYCODE_VIDEO_APP_1: _bindgen_ty_13 = 289; +pub const AKEYCODE_VIDEO_APP_2: _bindgen_ty_13 = 290; +pub const AKEYCODE_VIDEO_APP_3: _bindgen_ty_13 = 291; +pub const AKEYCODE_VIDEO_APP_4: _bindgen_ty_13 = 292; +pub const AKEYCODE_VIDEO_APP_5: _bindgen_ty_13 = 293; +pub const AKEYCODE_VIDEO_APP_6: _bindgen_ty_13 = 294; +pub const AKEYCODE_VIDEO_APP_7: _bindgen_ty_13 = 295; +pub const AKEYCODE_VIDEO_APP_8: _bindgen_ty_13 = 296; +pub const AKEYCODE_FEATURED_APP_1: _bindgen_ty_13 = 297; +pub const AKEYCODE_FEATURED_APP_2: _bindgen_ty_13 = 298; +pub const AKEYCODE_FEATURED_APP_3: _bindgen_ty_13 = 299; +pub const AKEYCODE_FEATURED_APP_4: _bindgen_ty_13 = 300; +pub const AKEYCODE_DEMO_APP_1: _bindgen_ty_13 = 301; +pub const AKEYCODE_DEMO_APP_2: _bindgen_ty_13 = 302; +pub const AKEYCODE_DEMO_APP_3: _bindgen_ty_13 = 303; +pub const AKEYCODE_DEMO_APP_4: _bindgen_ty_13 = 304; pub type _bindgen_ty_13 = ::std::os::raw::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -9383,6 +9468,47 @@ extern "C" { extern "C" { pub fn AObbInfo_getFlags(obbInfo: *mut AObbInfo) -> i32; } +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct APerformanceHintManager { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct APerformanceHintSession { + _unused: [u8; 0], +} +extern "C" { + pub fn APerformanceHint_getManager() -> *mut APerformanceHintManager; +} +extern "C" { + pub fn APerformanceHint_createSession( + manager: *mut APerformanceHintManager, + threadIds: *const i32, + size: usize, + initialTargetWorkDurationNanos: i64, + ) -> *mut APerformanceHintSession; +} +extern "C" { + pub fn APerformanceHint_getPreferredUpdateRateNanos( + manager: *mut APerformanceHintManager, + ) -> i64; +} +extern "C" { + pub fn APerformanceHint_updateTargetWorkDuration( + session: *mut APerformanceHintSession, + targetDurationNanos: i64, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn APerformanceHint_reportActualWorkDuration( + session: *mut APerformanceHintSession, + actualDurationNanos: i64, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn APerformanceHint_closeSession(session: *mut APerformanceHintSession); +} pub const PERMISSION_MANAGER_PERMISSION_GRANTED: _bindgen_ty_38 = 0; pub const PERMISSION_MANAGER_PERMISSION_DENIED: _bindgen_ty_38 = -1; pub type _bindgen_ty_38 = ::std::os::raw::c_int; @@ -12134,6 +12260,47 @@ pub const AWINDOW_FLAG_DISMISS_KEYGUARD: _bindgen_ty_47 = 4194304; pub type _bindgen_ty_47 = ::std::os::raw::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct timespec { + pub tv_sec: time_t, + pub tv_nsec: ::std::os::raw::c_long, +} +#[test] +fn bindgen_test_layout_timespec() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(timespec)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(timespec)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(timespec), + "::", + stringify!(tv_sec) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tv_nsec) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(timespec), + "::", + stringify!(tv_nsec) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] pub struct __kernel_timespec { pub tv_sec: __kernel_time64_t, pub tv_nsec: ::std::os::raw::c_longlong, @@ -12300,47 +12467,6 @@ fn bindgen_test_layout___kernel_sock_timeval() { } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct timespec { - pub tv_sec: __kernel_old_time_t, - pub tv_nsec: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_timespec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(timespec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(timespec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timespec), - "::", - stringify!(tv_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_nsec) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(timespec), - "::", - stringify!(tv_nsec) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] pub struct timeval { pub tv_sec: __kernel_old_time_t, pub tv_usec: __kernel_suseconds_t, @@ -14854,6 +14980,7 @@ fn bindgen_test_layout___sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_2() { pub struct __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3 { pub _data: ::std::os::raw::c_ulong, pub _type: __u32, + pub _flags: __u32, } #[test] fn bindgen_test_layout___sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3() { @@ -14862,7 +14989,7 @@ fn bindgen_test_layout___sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3() { let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<__sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3>(), - 8usize, + 12usize, concat!( "Size of: ", stringify!(__sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3) @@ -14896,6 +15023,16 @@ fn bindgen_test_layout___sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3() { stringify!(_type) ) ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._flags) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(__sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3), + "::", + stringify!(_flags) + ) + ); } #[test] fn bindgen_test_layout___sifields__bindgen_ty_5__bindgen_ty_1() { @@ -17246,12 +17383,18 @@ extern "C" { extern "C" { pub fn localtime_r(__t: *const time_t, __tm: *mut tm) -> *mut tm; } +extern "C" { + pub fn timelocal(__tm: *mut tm) -> time_t; +} extern "C" { pub fn gmtime(__t: *const time_t) -> *mut tm; } extern "C" { pub fn gmtime_r(__t: *const time_t, __tm: *mut tm) -> *mut tm; } +extern "C" { + pub fn timegm(__tm: *mut tm) -> time_t; +} extern "C" { pub fn strptime( __s: *const ::std::os::raw::c_char, @@ -17338,19 +17481,19 @@ extern "C" { ) -> ::std::os::raw::c_int; } extern "C" { - pub fn timer_gettime(__timer: timer_t, __ts: *mut itimerspec) -> ::std::os::raw::c_int; + pub fn timer_gettime(_timer: timer_t, __ts: *mut itimerspec) -> ::std::os::raw::c_int; } extern "C" { pub fn timer_getoverrun(__timer: timer_t) -> ::std::os::raw::c_int; } extern "C" { - pub fn timelocal(__tm: *mut tm) -> time_t; -} -extern "C" { - pub fn timegm(__tm: *mut tm) -> time_t; + pub fn timespec_get( + __ts: *mut timespec, + __base: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; } extern "C" { - pub fn timespec_get( + pub fn timespec_getres( __ts: *mut timespec, __base: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; diff --git a/ndk-sys/src/ffi_x86_64.rs b/ndk-sys/src/ffi_x86_64.rs index 45e01a09..17f7ef68 100644 --- a/ndk-sys/src/ffi_x86_64.rs +++ b/ndk-sys/src/ffi_x86_64.rs @@ -1,4 +1,4 @@ -/* automatically generated by rust-bindgen 0.66.1 */ +/* automatically generated by rust-bindgen 0.69.1 */ #[repr(C)] #[derive(Default)] @@ -34,10 +34,10 @@ pub const __BIONIC__: u32 = 1; pub const __WORDSIZE: u32 = 64; pub const __bos_level: u32 = 0; pub const __ANDROID_NDK__: u32 = 1; -pub const __NDK_MAJOR__: u32 = 25; -pub const __NDK_MINOR__: u32 = 2; +pub const __NDK_MAJOR__: u32 = 26; +pub const __NDK_MINOR__: u32 = 1; pub const __NDK_BETA__: u32 = 0; -pub const __NDK_BUILD__: u32 = 9519653; +pub const __NDK_BUILD__: u32 = 10909125; pub const __NDK_CANARY__: u32 = 0; pub const __ANDROID_API_FUTURE__: u32 = 10000; pub const __ANDROID_API__: u32 = 10000; @@ -60,6 +60,7 @@ pub const __ANDROID_API_R__: u32 = 30; pub const __ANDROID_API_S__: u32 = 31; pub const __ANDROID_API_T__: u32 = 33; pub const __ANDROID_API_U__: u32 = 34; +pub const __ANDROID_API_V__: u32 = 35; pub const INT8_MIN: i32 = -128; pub const INT8_MAX: u32 = 127; pub const INT_LEAST8_MIN: i32 = -128; @@ -90,7 +91,6 @@ pub const WINT_MAX: u32 = 4294967295; pub const WINT_MIN: u32 = 0; pub const __BITS_PER_LONG: u32 = 64; pub const __FD_SETSIZE: u32 = 1024; -pub const __GNUC_VA_LIST: u32 = 1; pub const __bool_true_false_are_defined: u32 = 1; pub const true_: u32 = 1; pub const false_: u32 = 0; @@ -125,6 +125,34 @@ pub const PRIiFAST32: &[u8; 3] = b"li\0"; pub const PRIiFAST64: &[u8; 3] = b"li\0"; pub const PRIiMAX: &[u8; 3] = b"ji\0"; pub const PRIiPTR: &[u8; 3] = b"li\0"; +pub const PRIb8: &[u8; 2] = b"b\0"; +pub const PRIb16: &[u8; 2] = b"b\0"; +pub const PRIb32: &[u8; 2] = b"b\0"; +pub const PRIb64: &[u8; 3] = b"lb\0"; +pub const PRIbLEAST8: &[u8; 2] = b"b\0"; +pub const PRIbLEAST16: &[u8; 2] = b"b\0"; +pub const PRIbLEAST32: &[u8; 2] = b"b\0"; +pub const PRIbLEAST64: &[u8; 3] = b"lb\0"; +pub const PRIbFAST8: &[u8; 2] = b"b\0"; +pub const PRIbFAST16: &[u8; 3] = b"lb\0"; +pub const PRIbFAST32: &[u8; 3] = b"lb\0"; +pub const PRIbFAST64: &[u8; 3] = b"lb\0"; +pub const PRIbMAX: &[u8; 3] = b"jb\0"; +pub const PRIbPTR: &[u8; 3] = b"lb\0"; +pub const PRIB8: &[u8; 2] = b"B\0"; +pub const PRIB16: &[u8; 2] = b"B\0"; +pub const PRIB32: &[u8; 2] = b"B\0"; +pub const PRIB64: &[u8; 3] = b"lB\0"; +pub const PRIBLEAST8: &[u8; 2] = b"B\0"; +pub const PRIBLEAST16: &[u8; 2] = b"B\0"; +pub const PRIBLEAST32: &[u8; 2] = b"B\0"; +pub const PRIBLEAST64: &[u8; 3] = b"lB\0"; +pub const PRIBFAST8: &[u8; 2] = b"B\0"; +pub const PRIBFAST16: &[u8; 3] = b"lB\0"; +pub const PRIBFAST32: &[u8; 3] = b"lB\0"; +pub const PRIBFAST64: &[u8; 3] = b"lB\0"; +pub const PRIBMAX: &[u8; 3] = b"jB\0"; +pub const PRIBPTR: &[u8; 3] = b"lB\0"; pub const PRIo8: &[u8; 2] = b"o\0"; pub const PRIo16: &[u8; 2] = b"o\0"; pub const PRIo32: &[u8; 2] = b"o\0"; @@ -209,6 +237,34 @@ pub const SCNiFAST32: &[u8; 3] = b"li\0"; pub const SCNiFAST64: &[u8; 3] = b"li\0"; pub const SCNiMAX: &[u8; 3] = b"ji\0"; pub const SCNiPTR: &[u8; 3] = b"li\0"; +pub const SCNb8: &[u8; 4] = b"hhb\0"; +pub const SCNb16: &[u8; 3] = b"hb\0"; +pub const SCNb32: &[u8; 2] = b"b\0"; +pub const SCNb64: &[u8; 3] = b"lb\0"; +pub const SCNbLEAST8: &[u8; 4] = b"hhb\0"; +pub const SCNbLEAST16: &[u8; 3] = b"hb\0"; +pub const SCNbLEAST32: &[u8; 2] = b"b\0"; +pub const SCNbLEAST64: &[u8; 3] = b"lb\0"; +pub const SCNbFAST8: &[u8; 4] = b"hhb\0"; +pub const SCNbFAST16: &[u8; 3] = b"lb\0"; +pub const SCNbFAST32: &[u8; 3] = b"lb\0"; +pub const SCNbFAST64: &[u8; 3] = b"lb\0"; +pub const SCNbMAX: &[u8; 3] = b"jb\0"; +pub const SCNbPTR: &[u8; 3] = b"lb\0"; +pub const SCNB8: &[u8; 4] = b"hhB\0"; +pub const SCNB16: &[u8; 3] = b"hB\0"; +pub const SCNB32: &[u8; 2] = b"B\0"; +pub const SCNB64: &[u8; 3] = b"lB\0"; +pub const SCNBLEAST8: &[u8; 4] = b"hhB\0"; +pub const SCNBLEAST16: &[u8; 3] = b"hB\0"; +pub const SCNBLEAST32: &[u8; 2] = b"B\0"; +pub const SCNBLEAST64: &[u8; 3] = b"lB\0"; +pub const SCNBFAST8: &[u8; 4] = b"hhB\0"; +pub const SCNBFAST16: &[u8; 3] = b"lB\0"; +pub const SCNBFAST32: &[u8; 3] = b"lB\0"; +pub const SCNBFAST64: &[u8; 3] = b"lB\0"; +pub const SCNBMAX: &[u8; 3] = b"jB\0"; +pub const SCNBPTR: &[u8; 3] = b"lB\0"; pub const SCNo8: &[u8; 4] = b"hho\0"; pub const SCNo16: &[u8; 3] = b"ho\0"; pub const SCNo32: &[u8; 2] = b"o\0"; @@ -399,6 +455,7 @@ pub const SO_NETNS_COOKIE: u32 = 71; pub const SO_BUF_LOCK: u32 = 72; pub const SO_RESERVE_MEM: u32 = 73; pub const SO_TXREHASH: u32 = 74; +pub const SO_RCVMARK: u32 = 75; pub const SO_TIMESTAMP: u32 = 29; pub const SO_TIMESTAMPNS: u32 = 35; pub const SO_TIMESTAMPING: u32 = 37; @@ -721,6 +778,7 @@ pub const L_ctermid: u32 = 1024; pub const STRUCT_MALLINFO_DECLARED: u32 = 1; pub const M_DECAY_TIME: i32 = -100; pub const M_PURGE: i32 = -101; +pub const M_PURGE_ALL: i32 = -104; pub const M_MEMTAG_TUNING: i32 = -102; pub const M_MEMTAG_TUNING_BUFFER_OVERFLOW: u32 = 0; pub const M_MEMTAG_TUNING_UAF: u32 = 1; @@ -1092,6 +1150,7 @@ pub const TRAP_HWBKPT: u32 = 4; pub const TRAP_UNK: u32 = 5; pub const TRAP_PERF: u32 = 6; pub const NSIGTRAP: u32 = 6; +pub const TRAP_PERF_FLAG_ASYNC: u32 = 1; pub const CLD_EXITED: u32 = 1; pub const CLD_KILLED: u32 = 2; pub const CLD_DUMPED: u32 = 3; @@ -1128,6 +1187,9 @@ pub const PAGE_MASK: i32 = -4096; pub const FD_SETSIZE: u32 = 1024; pub const CLOCKS_PER_SEC: u32 = 1000000; pub const TIME_UTC: u32 = 1; +pub const TIME_MONOTONIC: u32 = 2; +pub const TIME_ACTIVE: u32 = 3; +pub const TIME_THREAD_ACTIVE: u32 = 4; pub const AAUDIO_UNSPECIFIED: u32 = 0; pub const AAUDIO_SYSTEM_USAGE_OFFSET: u32 = 1000; pub const PROPERTY_VENDOR: &[u8; 7] = b"vendor\0"; @@ -1721,8 +1783,8 @@ extern "C" { extern "C" { pub fn AAsset_isAllocated(asset: *mut AAsset) -> ::std::os::raw::c_int; } -pub type va_list = __builtin_va_list; pub type __gnuc_va_list = __builtin_va_list; +pub type va_list = __builtin_va_list; #[repr(C)] pub struct JavaVMAttachArgs { pub version: jint, @@ -2820,6 +2882,10 @@ impl android_fdsan_owner_type { pub const ANDROID_FDSAN_OWNER_TYPE_ZIPARCHIVE: android_fdsan_owner_type = android_fdsan_owner_type(12); } +impl android_fdsan_owner_type { + pub const ANDROID_FDSAN_OWNER_TYPE_NATIVE_HANDLE: android_fdsan_owner_type = + android_fdsan_owner_type(13); +} #[repr(transparent)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct android_fdsan_owner_type(pub ::std::os::raw::c_uint); @@ -3097,6 +3163,17 @@ impl AHardwareBuffer_Format { impl AHardwareBuffer_Format { pub const AHARDWAREBUFFER_FORMAT_R8_UNORM: AHardwareBuffer_Format = AHardwareBuffer_Format(56); } +impl AHardwareBuffer_Format { + pub const AHARDWAREBUFFER_FORMAT_R16_UINT: AHardwareBuffer_Format = AHardwareBuffer_Format(57); +} +impl AHardwareBuffer_Format { + pub const AHARDWAREBUFFER_FORMAT_R16G16_UINT: AHardwareBuffer_Format = + AHardwareBuffer_Format(58); +} +impl AHardwareBuffer_Format { + pub const AHARDWAREBUFFER_FORMAT_R10G10B10A10_UNORM: AHardwareBuffer_Format = + AHardwareBuffer_Format(59); +} #[repr(transparent)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct AHardwareBuffer_Format(pub ::std::os::raw::c_uint); @@ -3172,6 +3249,10 @@ impl AHardwareBuffer_UsageFlags { pub const AHARDWAREBUFFER_USAGE_GPU_MIPMAP_COMPLETE: AHardwareBuffer_UsageFlags = AHardwareBuffer_UsageFlags(67108864); } +impl AHardwareBuffer_UsageFlags { + pub const AHARDWAREBUFFER_USAGE_FRONT_BUFFER: AHardwareBuffer_UsageFlags = + AHardwareBuffer_UsageFlags(4294967296); +} impl AHardwareBuffer_UsageFlags { pub const AHARDWAREBUFFER_USAGE_VENDOR_0: AHardwareBuffer_UsageFlags = AHardwareBuffer_UsageFlags(268435456); @@ -4200,6 +4281,22 @@ pub const AKEYCODE_REFRESH: _bindgen_ty_13 = 285; pub const AKEYCODE_THUMBS_UP: _bindgen_ty_13 = 286; pub const AKEYCODE_THUMBS_DOWN: _bindgen_ty_13 = 287; pub const AKEYCODE_PROFILE_SWITCH: _bindgen_ty_13 = 288; +pub const AKEYCODE_VIDEO_APP_1: _bindgen_ty_13 = 289; +pub const AKEYCODE_VIDEO_APP_2: _bindgen_ty_13 = 290; +pub const AKEYCODE_VIDEO_APP_3: _bindgen_ty_13 = 291; +pub const AKEYCODE_VIDEO_APP_4: _bindgen_ty_13 = 292; +pub const AKEYCODE_VIDEO_APP_5: _bindgen_ty_13 = 293; +pub const AKEYCODE_VIDEO_APP_6: _bindgen_ty_13 = 294; +pub const AKEYCODE_VIDEO_APP_7: _bindgen_ty_13 = 295; +pub const AKEYCODE_VIDEO_APP_8: _bindgen_ty_13 = 296; +pub const AKEYCODE_FEATURED_APP_1: _bindgen_ty_13 = 297; +pub const AKEYCODE_FEATURED_APP_2: _bindgen_ty_13 = 298; +pub const AKEYCODE_FEATURED_APP_3: _bindgen_ty_13 = 299; +pub const AKEYCODE_FEATURED_APP_4: _bindgen_ty_13 = 300; +pub const AKEYCODE_DEMO_APP_1: _bindgen_ty_13 = 301; +pub const AKEYCODE_DEMO_APP_2: _bindgen_ty_13 = 302; +pub const AKEYCODE_DEMO_APP_3: _bindgen_ty_13 = 303; +pub const AKEYCODE_DEMO_APP_4: _bindgen_ty_13 = 304; pub type _bindgen_ty_13 = ::std::os::raw::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -9436,6 +9533,47 @@ extern "C" { extern "C" { pub fn AObbInfo_getFlags(obbInfo: *mut AObbInfo) -> i32; } +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct APerformanceHintManager { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct APerformanceHintSession { + _unused: [u8; 0], +} +extern "C" { + pub fn APerformanceHint_getManager() -> *mut APerformanceHintManager; +} +extern "C" { + pub fn APerformanceHint_createSession( + manager: *mut APerformanceHintManager, + threadIds: *const i32, + size: usize, + initialTargetWorkDurationNanos: i64, + ) -> *mut APerformanceHintSession; +} +extern "C" { + pub fn APerformanceHint_getPreferredUpdateRateNanos( + manager: *mut APerformanceHintManager, + ) -> i64; +} +extern "C" { + pub fn APerformanceHint_updateTargetWorkDuration( + session: *mut APerformanceHintSession, + targetDurationNanos: i64, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn APerformanceHint_reportActualWorkDuration( + session: *mut APerformanceHintSession, + actualDurationNanos: i64, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn APerformanceHint_closeSession(session: *mut APerformanceHintSession); +} pub const PERMISSION_MANAGER_PERMISSION_GRANTED: _bindgen_ty_38 = 0; pub const PERMISSION_MANAGER_PERMISSION_DENIED: _bindgen_ty_38 = -1; pub type _bindgen_ty_38 = ::std::os::raw::c_int; @@ -12352,6 +12490,47 @@ pub const AWINDOW_FLAG_DISMISS_KEYGUARD: _bindgen_ty_47 = 4194304; pub type _bindgen_ty_47 = ::std::os::raw::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct timespec { + pub tv_sec: time_t, + pub tv_nsec: ::std::os::raw::c_long, +} +#[test] +fn bindgen_test_layout_timespec() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(timespec)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(timespec)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(timespec), + "::", + stringify!(tv_sec) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tv_nsec) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(timespec), + "::", + stringify!(tv_nsec) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] pub struct __kernel_timespec { pub tv_sec: __kernel_time64_t, pub tv_nsec: ::std::os::raw::c_longlong, @@ -12518,47 +12697,6 @@ fn bindgen_test_layout___kernel_sock_timeval() { } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct timespec { - pub tv_sec: __kernel_old_time_t, - pub tv_nsec: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_timespec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(timespec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(timespec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timespec), - "::", - stringify!(tv_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_nsec) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(timespec), - "::", - stringify!(tv_nsec) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] pub struct timeval { pub tv_sec: __kernel_old_time_t, pub tv_usec: __kernel_suseconds_t, @@ -15053,6 +15191,7 @@ fn bindgen_test_layout___sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_2() { pub struct __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3 { pub _data: ::std::os::raw::c_ulong, pub _type: __u32, + pub _flags: __u32, } #[test] fn bindgen_test_layout___sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3() { @@ -15095,6 +15234,16 @@ fn bindgen_test_layout___sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3() { stringify!(_type) ) ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._flags) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(__sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3), + "::", + stringify!(_flags) + ) + ); } #[test] fn bindgen_test_layout___sifields__bindgen_ty_5__bindgen_ty_1() { @@ -17459,12 +17608,18 @@ extern "C" { extern "C" { pub fn localtime_r(__t: *const time_t, __tm: *mut tm) -> *mut tm; } +extern "C" { + pub fn timelocal(__tm: *mut tm) -> time_t; +} extern "C" { pub fn gmtime(__t: *const time_t) -> *mut tm; } extern "C" { pub fn gmtime_r(__t: *const time_t, __tm: *mut tm) -> *mut tm; } +extern "C" { + pub fn timegm(__tm: *mut tm) -> time_t; +} extern "C" { pub fn strptime( __s: *const ::std::os::raw::c_char, @@ -17551,19 +17706,19 @@ extern "C" { ) -> ::std::os::raw::c_int; } extern "C" { - pub fn timer_gettime(__timer: timer_t, __ts: *mut itimerspec) -> ::std::os::raw::c_int; + pub fn timer_gettime(_timer: timer_t, __ts: *mut itimerspec) -> ::std::os::raw::c_int; } extern "C" { pub fn timer_getoverrun(__timer: timer_t) -> ::std::os::raw::c_int; } extern "C" { - pub fn timelocal(__tm: *mut tm) -> time_t; -} -extern "C" { - pub fn timegm(__tm: *mut tm) -> time_t; + pub fn timespec_get( + __ts: *mut timespec, + __base: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; } extern "C" { - pub fn timespec_get( + pub fn timespec_getres( __ts: *mut timespec, __base: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; diff --git a/ndk-sys/wrapper.h b/ndk-sys/wrapper.h index 233a2cc8..d59e2296 100644 --- a/ndk-sys/wrapper.h +++ b/ndk-sys/wrapper.h @@ -26,22 +26,29 @@ typedef struct AFont AFont; // is broken without the following typedef in C typedef struct AFontMatcher AFontMatcher; #include +// #include #include #include #include #include #include #include +// #include +// #include +// #include +// #include #include #include #include #include +// #include #include #include #include #include #include #include +#include #include #include #include diff --git a/ndk/Cargo.toml b/ndk/Cargo.toml index 167547a3..639a0c13 100644 --- a/ndk/Cargo.toml +++ b/ndk/Cargo.toml @@ -14,7 +14,7 @@ rust-version = "1.66" [features] default = ["rwh_06"] -all = ["audio", "bitmap", "media", "sync", "api-level-31", "rwh_04", "rwh_05", "rwh_06"] +all = ["audio", "bitmap", "media", "sync", "api-level-35", "rwh_04", "rwh_05", "rwh_06"] audio = ["ffi/audio", "api-level-26"] bitmap = ["ffi/bitmap"] @@ -30,6 +30,10 @@ api-level-28 = ["api-level-27"] api-level-29 = ["api-level-28"] api-level-30 = ["api-level-29"] api-level-31 = ["api-level-30"] +api-level-32 = ["api-level-31"] +api-level-33 = ["api-level-32"] +api-level-34 = ["api-level-33"] +api-level-35 = ["api-level-34"] test = ["ffi/test", "jni", "all"] diff --git a/ndk/src/event.rs b/ndk/src/event.rs index 9920453a..3b2641e8 100644 --- a/ndk/src/event.rs +++ b/ndk/src/event.rs @@ -1366,6 +1366,39 @@ pub enum Keycode { ThumbsDown = ffi::AKEYCODE_THUMBS_DOWN as i32, ProfileSwitch = ffi::AKEYCODE_PROFILE_SWITCH as i32, + #[cfg(feature = "api-level-35")] + VideoApp1 = ffi::AKEYCODE_VIDEO_APP_1 as i32, + #[cfg(feature = "api-level-35")] + VideoApp2 = ffi::AKEYCODE_VIDEO_APP_2 as i32, + #[cfg(feature = "api-level-35")] + VideoApp3 = ffi::AKEYCODE_VIDEO_APP_3 as i32, + #[cfg(feature = "api-level-35")] + VideoApp4 = ffi::AKEYCODE_VIDEO_APP_4 as i32, + #[cfg(feature = "api-level-35")] + VideoApp5 = ffi::AKEYCODE_VIDEO_APP_5 as i32, + #[cfg(feature = "api-level-35")] + VideoApp6 = ffi::AKEYCODE_VIDEO_APP_6 as i32, + #[cfg(feature = "api-level-35")] + VideoApp7 = ffi::AKEYCODE_VIDEO_APP_7 as i32, + #[cfg(feature = "api-level-35")] + VideoApp8 = ffi::AKEYCODE_VIDEO_APP_8 as i32, + #[cfg(feature = "api-level-35")] + FeaturedApp1 = ffi::AKEYCODE_FEATURED_APP_1 as i32, + #[cfg(feature = "api-level-35")] + FeaturedApp2 = ffi::AKEYCODE_FEATURED_APP_2 as i32, + #[cfg(feature = "api-level-35")] + FeaturedApp3 = ffi::AKEYCODE_FEATURED_APP_3 as i32, + #[cfg(feature = "api-level-35")] + FeaturedApp4 = ffi::AKEYCODE_FEATURED_APP_4 as i32, + #[cfg(feature = "api-level-35")] + DemoApp1 = ffi::AKEYCODE_DEMO_APP_1 as i32, + #[cfg(feature = "api-level-35")] + DemoApp2 = ffi::AKEYCODE_DEMO_APP_2 as i32, + #[cfg(feature = "api-level-35")] + DemoApp3 = ffi::AKEYCODE_DEMO_APP_3 as i32, + #[cfg(feature = "api-level-35")] + DemoApp4 = ffi::AKEYCODE_DEMO_APP_4 as i32, + #[doc(hidden)] #[num_enum(catch_all)] __Unknown(i32), diff --git a/ndk/src/hardware_buffer.rs b/ndk/src/hardware_buffer.rs index 63849f38..0256d886 100644 --- a/ndk/src/hardware_buffer.rs +++ b/ndk/src/hardware_buffer.rs @@ -60,6 +60,10 @@ impl HardwareBufferUsage { pub const GPU_MIPMAP_COMPLETE: Self = Self(ffi::AHardwareBuffer_UsageFlags::AHARDWAREBUFFER_USAGE_GPU_MIPMAP_COMPLETE); + #[cfg(feature = "api-level-35")] + pub const FRONT_BUFFER: Self = + Self(ffi::AHardwareBuffer_UsageFlags::AHARDWAREBUFFER_USAGE_FRONT_BUFFER); + pub const VENDOR_0: Self = Self(ffi::AHardwareBuffer_UsageFlags::AHARDWAREBUFFER_USAGE_VENDOR_0); pub const VENDOR_1: Self = diff --git a/ndk/src/hardware_buffer_format.rs b/ndk/src/hardware_buffer_format.rs index 555669f5..1768232d 100644 --- a/ndk/src/hardware_buffer_format.rs +++ b/ndk/src/hardware_buffer_format.rs @@ -60,7 +60,18 @@ pub enum HardwareBufferFormat { #[doc(alias = "AHARDWAREBUFFER_FORMAT_YCbCr_P010")] YCbCr_P010 = ffi::AHardwareBuffer_Format::AHARDWAREBUFFER_FORMAT_YCbCr_P010.0 as i32, #[cfg(feature = "api-level-26")] + #[doc(alias = "AHARDWAREBUFFER_FORMAT_R8_UNORM")] R8_UNORM = ffi::AHardwareBuffer_Format::AHARDWAREBUFFER_FORMAT_R8_UNORM.0 as i32, + #[cfg(feature = "api-level-35")] + #[doc(alias = "AHARDWAREBUFFER_FORMAT_R16_UINT")] + R16_UINT = ffi::AHardwareBuffer_Format::AHARDWAREBUFFER_FORMAT_R16_UINT.0 as i32, + #[cfg(feature = "api-level-35")] + #[doc(alias = "AHARDWAREBUFFER_FORMAT_R16G16_UINT")] + R16G16_UINT = ffi::AHardwareBuffer_Format::AHARDWAREBUFFER_FORMAT_R16G16_UINT.0 as i32, + #[cfg(feature = "api-level-35")] + #[doc(alias = "AHARDWAREBUFFER_FORMAT_R10G10B10A10_UNORM")] + R10G10B10A10_UNORM = + ffi::AHardwareBuffer_Format::AHARDWAREBUFFER_FORMAT_R10G10B10A10_UNORM.0 as i32, #[doc(hidden)] #[num_enum(catch_all)] @@ -69,7 +80,8 @@ pub enum HardwareBufferFormat { impl HardwareBufferFormat { /// Returns [`None`] when there is no immediate byte size available for this format, for - /// example on planar buffer formats. + /// example on planar or packed (i.e. 10-bit). buffer formats. + // TODO: Fix this by returning bits per pixel (a more common term!) pub fn bytes_per_pixel(self) -> Option { Some(match self { Self::R8G8B8A8_UNORM | Self::R8G8B8X8_UNORM => 4, @@ -100,6 +112,12 @@ impl HardwareBufferFormat { Self::YCbCr_P010 => return None, #[cfg(feature = "api-level-26")] Self::R8_UNORM => 1, + #[cfg(feature = "api-level-35")] + Self::R16_UINT => 2, + #[cfg(feature = "api-level-35")] + Self::R16G16_UINT => 4, + #[cfg(feature = "api-level-35")] + Self::R10G10B10A10_UNORM => return None, Self::__Unknown(_) => return None, }) }