#[repr(C)]
#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
pub struct __BindgenBitfieldUnit<Storage> {
storage: Storage,
}
impl<Storage> __BindgenBitfieldUnit<Storage> {
#[inline]
pub const fn new(storage: Storage) -> Self {
Self { storage }
}
}
impl<Storage> __BindgenBitfieldUnit<Storage>
where
Storage: AsRef<[u8]> + AsMut<[u8]>,
{
#[inline]
fn extract_bit(byte: u8, index: usize) -> bool {
let bit_index = if cfg!(target_endian = "big") {
7 - (index % 8)
} else {
index % 8
};
let mask = 1 << bit_index;
byte & mask == mask
}
#[inline]
pub fn get_bit(&self, index: usize) -> bool {
debug_assert!(index / 8 < self.storage.as_ref().len());
let byte_index = index / 8;
let byte = self.storage.as_ref()[byte_index];
Self::extract_bit(byte, index)
}
#[inline]
pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
debug_assert!(index / 8 < core::mem::size_of::<Storage>());
let byte_index = index / 8;
let byte = unsafe {
*(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize)
};
Self::extract_bit(byte, index)
}
#[inline]
fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
let bit_index = if cfg!(target_endian = "big") {
7 - (index % 8)
} else {
index % 8
};
let mask = 1 << bit_index;
if val { byte | mask } else { byte & !mask }
}
#[inline]
pub fn set_bit(&mut self, index: usize, val: bool) {
debug_assert!(index / 8 < self.storage.as_ref().len());
let byte_index = index / 8;
let byte = &mut self.storage.as_mut()[byte_index];
*byte = Self::change_bit(*byte, index, val);
}
#[inline]
pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
debug_assert!(index / 8 < core::mem::size_of::<Storage>());
let byte_index = index / 8;
let byte = unsafe {
(core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize)
};
unsafe { *byte = Self::change_bit(*byte, index, val) };
}
#[inline]
pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
debug_assert!(bit_width <= 64);
debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
debug_assert!((bit_offset + (bit_width as usize) + 7) / 8 <= self.storage.as_ref().len(),);
if bit_width == 0 {
return 0;
}
let mut val = 0u64;
let storage = self.storage.as_ref();
let start_byte = bit_offset / 8;
let bit_shift = bit_offset % 8;
let bytes_needed = (bit_width as usize + bit_shift + 7) / 8;
if cfg!(target_endian = "big") {
for i in 0..bytes_needed {
val |= (storage[start_byte + i].reverse_bits() as u64) << (i * 8);
}
} else {
for i in 0..bytes_needed {
val |= (storage[start_byte + i] as u64) << (i * 8);
}
}
val >>= bit_shift;
if bit_width < 64 {
val &= (1u64 << bit_width) - 1;
}
if cfg!(target_endian = "big") {
val = val.reverse_bits() >> (64 - bit_width as usize);
}
val
}
#[inline]
pub unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
debug_assert!(bit_width <= 64);
debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
debug_assert!(
(bit_offset + (bit_width as usize) + 7) / 8 <= core::mem::size_of::<Storage>(),
);
if bit_width == 0 {
return 0;
}
let mut val = 0u64;
let start_byte = bit_offset / 8;
let bit_shift = bit_offset % 8;
let bytes_needed = (bit_width as usize + bit_shift + 7) / 8;
let storage_ptr = unsafe { core::ptr::addr_of!((*this).storage) as *const u8 };
if cfg!(target_endian = "big") {
for i in 0..bytes_needed {
let byte = unsafe { *storage_ptr.add(start_byte + i) };
val |= (byte.reverse_bits() as u64) << (i * 8);
}
} else {
for i in 0..bytes_needed {
let byte = unsafe { *storage_ptr.add(start_byte + i) };
val |= (byte as u64) << (i * 8);
}
}
val >>= bit_shift;
if bit_width < 64 {
val &= (1u64 << bit_width) - 1;
}
if cfg!(target_endian = "big") {
val = val.reverse_bits() >> (64 - bit_width as usize);
}
val
}
#[inline]
pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
debug_assert!(bit_width <= 64);
debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
debug_assert!((bit_offset + (bit_width as usize) + 7) / 8 <= self.storage.as_ref().len(),);
if bit_width == 0 {
return;
}
let mut val = val;
if bit_width < 64 {
val &= (1u64 << bit_width) - 1;
}
if cfg!(target_endian = "big") {
val = val.reverse_bits() >> (64 - bit_width as usize);
}
let storage = self.storage.as_mut();
let start_byte = bit_offset / 8;
let bit_shift = bit_offset % 8;
let bytes_needed = (bit_width as usize + bit_shift + 7) / 8;
val <<= bit_shift;
let field_mask = if bit_width as usize + bit_shift >= 64 {
!0u64 << bit_shift
} else {
((1u64 << bit_width) - 1) << bit_shift
};
for i in 0..bytes_needed {
let byte_val = (val >> (i * 8)) as u8;
let byte_mask = (field_mask >> (i * 8)) as u8;
if cfg!(target_endian = "big") {
let byte = storage[start_byte + i].reverse_bits();
let new_byte = (byte & !byte_mask) | (byte_val & byte_mask);
storage[start_byte + i] = new_byte.reverse_bits();
} else {
storage[start_byte + i] =
(storage[start_byte + i] & !byte_mask) | (byte_val & byte_mask);
}
}
}
#[inline]
pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
debug_assert!(bit_width <= 64);
debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
debug_assert!(
(bit_offset + (bit_width as usize) + 7) / 8 <= core::mem::size_of::<Storage>(),
);
if bit_width == 0 {
return;
}
let mut val = val;
if bit_width < 64 {
val &= (1u64 << bit_width) - 1;
}
if cfg!(target_endian = "big") {
val = val.reverse_bits() >> (64 - bit_width as usize);
}
let start_byte = bit_offset / 8;
let bit_shift = bit_offset % 8;
let bytes_needed = (bit_width as usize + bit_shift + 7) / 8;
val <<= bit_shift;
let field_mask = if bit_width as usize + bit_shift >= 64 {
!0u64 << bit_shift
} else {
((1u64 << bit_width) - 1) << bit_shift
};
let storage_ptr = unsafe { core::ptr::addr_of_mut!((*this).storage) as *mut u8 };
for i in 0..bytes_needed {
let byte_val = (val >> (i * 8)) as u8;
let byte_mask = (field_mask >> (i * 8)) as u8;
let byte_ptr = unsafe { storage_ptr.add(start_byte + i) };
if cfg!(target_endian = "big") {
let byte = unsafe { (*byte_ptr).reverse_bits() };
let new_byte = (byte & !byte_mask) | (byte_val & byte_mask);
unsafe { *byte_ptr = new_byte.reverse_bits() };
} else {
unsafe { *byte_ptr = (*byte_ptr & !byte_mask) | (byte_val & byte_mask) };
}
}
}
}
impl<const N: usize> __BindgenBitfieldUnit<[u8; N]> {
#[inline]
pub const fn get_const<const BIT_OFFSET: usize, const BIT_WIDTH: u8>(&self) -> u64 {
debug_assert!(BIT_WIDTH <= 64);
debug_assert!(BIT_OFFSET / 8 < N);
debug_assert!((BIT_OFFSET + (BIT_WIDTH as usize) + 7) / 8 <= N);
if BIT_WIDTH == 0 {
return 0;
}
let start_byte = BIT_OFFSET / 8;
let bit_shift = BIT_OFFSET % 8;
let bytes_needed = (BIT_WIDTH as usize + bit_shift + 7) / 8;
if BIT_WIDTH as usize + bit_shift <= usize::BITS as usize {
let mut val = 0usize;
if cfg!(target_endian = "big") {
let mut i = 0;
while i < bytes_needed {
val |= (self.storage[start_byte + i].reverse_bits() as usize) << (i * 8);
i += 1;
}
} else {
let mut i = 0;
while i < bytes_needed {
val |= (self.storage[start_byte + i] as usize) << (i * 8);
i += 1;
}
}
val >>= bit_shift;
if (BIT_WIDTH as u32) < usize::BITS {
val &= (1usize << BIT_WIDTH) - 1;
}
if cfg!(target_endian = "big") {
val = val.reverse_bits() >> (usize::BITS as usize - BIT_WIDTH as usize);
}
val as u64
} else {
let mut val = 0u64;
if cfg!(target_endian = "big") {
let mut i = 0;
while i < bytes_needed {
val |= (self.storage[start_byte + i].reverse_bits() as u64) << (i * 8);
i += 1;
}
} else {
let mut i = 0;
while i < bytes_needed {
val |= (self.storage[start_byte + i] as u64) << (i * 8);
i += 1;
}
}
val >>= bit_shift;
if BIT_WIDTH < 64 {
val &= (1u64 << BIT_WIDTH) - 1;
}
if cfg!(target_endian = "big") {
val = val.reverse_bits() >> (64 - BIT_WIDTH as usize);
}
val
}
}
#[inline]
pub fn set_const<const BIT_OFFSET: usize, const BIT_WIDTH: u8>(&mut self, val: u64) {
debug_assert!(BIT_WIDTH <= 64);
debug_assert!(BIT_OFFSET / 8 < N);
debug_assert!((BIT_OFFSET + (BIT_WIDTH as usize) + 7) / 8 <= N);
if BIT_WIDTH == 0 {
return;
}
let start_byte = BIT_OFFSET / 8;
let bit_shift = BIT_OFFSET % 8;
let bytes_needed = (BIT_WIDTH as usize + bit_shift + 7) / 8;
if BIT_WIDTH as usize + bit_shift <= usize::BITS as usize {
let mut val = val as usize;
if (BIT_WIDTH as u32) < usize::BITS {
val &= (1usize << BIT_WIDTH) - 1;
}
if cfg!(target_endian = "big") {
val = val.reverse_bits() >> (usize::BITS as usize - BIT_WIDTH as usize);
}
val <<= bit_shift;
let field_mask = if BIT_WIDTH as usize + bit_shift >= usize::BITS as usize {
!0usize << bit_shift
} else {
((1usize << BIT_WIDTH) - 1) << bit_shift
};
let mut i = 0;
while i < bytes_needed {
let byte_val = (val >> (i * 8)) as u8;
let byte_mask = (field_mask >> (i * 8)) as u8;
if cfg!(target_endian = "big") {
let byte = self.storage[start_byte + i].reverse_bits();
let new_byte = (byte & !byte_mask) | (byte_val & byte_mask);
self.storage[start_byte + i] = new_byte.reverse_bits();
} else {
self.storage[start_byte + i] =
(self.storage[start_byte + i] & !byte_mask) | (byte_val & byte_mask);
}
i += 1;
}
} else {
let mut val = val;
if BIT_WIDTH < 64 {
val &= (1u64 << BIT_WIDTH) - 1;
}
if cfg!(target_endian = "big") {
val = val.reverse_bits() >> (64 - BIT_WIDTH as usize);
}
val <<= bit_shift;
let field_mask = if BIT_WIDTH as usize + bit_shift >= 64 {
!0u64 << bit_shift
} else {
((1u64 << BIT_WIDTH) - 1) << bit_shift
};
let mut i = 0;
while i < bytes_needed {
let byte_val = (val >> (i * 8)) as u8;
let byte_mask = (field_mask >> (i * 8)) as u8;
if cfg!(target_endian = "big") {
let byte = self.storage[start_byte + i].reverse_bits();
let new_byte = (byte & !byte_mask) | (byte_val & byte_mask);
self.storage[start_byte + i] = new_byte.reverse_bits();
} else {
self.storage[start_byte + i] =
(self.storage[start_byte + i] & !byte_mask) | (byte_val & byte_mask);
}
i += 1;
}
}
}
#[inline]
pub const unsafe fn raw_get_const<const BIT_OFFSET: usize, const BIT_WIDTH: u8>(
this: *const Self,
) -> u64 {
debug_assert!(BIT_WIDTH <= 64);
debug_assert!(BIT_OFFSET / 8 < N);
debug_assert!((BIT_OFFSET + (BIT_WIDTH as usize) + 7) / 8 <= N);
if BIT_WIDTH == 0 {
return 0;
}
let start_byte = BIT_OFFSET / 8;
let bit_shift = BIT_OFFSET % 8;
let bytes_needed = (BIT_WIDTH as usize + bit_shift + 7) / 8;
let storage_ptr = unsafe { core::ptr::addr_of!((*this).storage) as *const u8 };
if BIT_WIDTH as usize + bit_shift <= usize::BITS as usize {
let mut val = 0usize;
if cfg!(target_endian = "big") {
let mut i = 0;
while i < bytes_needed {
let byte = unsafe { *storage_ptr.add(start_byte + i) };
val |= (byte.reverse_bits() as usize) << (i * 8);
i += 1;
}
} else {
let mut i = 0;
while i < bytes_needed {
let byte = unsafe { *storage_ptr.add(start_byte + i) };
val |= (byte as usize) << (i * 8);
i += 1;
}
}
val >>= bit_shift;
if (BIT_WIDTH as u32) < usize::BITS {
val &= (1usize << BIT_WIDTH) - 1;
}
if cfg!(target_endian = "big") {
val = val.reverse_bits() >> (usize::BITS as usize - BIT_WIDTH as usize);
}
val as u64
} else {
let mut val = 0u64;
if cfg!(target_endian = "big") {
let mut i = 0;
while i < bytes_needed {
let byte = unsafe { *storage_ptr.add(start_byte + i) };
val |= (byte.reverse_bits() as u64) << (i * 8);
i += 1;
}
} else {
let mut i = 0;
while i < bytes_needed {
let byte = unsafe { *storage_ptr.add(start_byte + i) };
val |= (byte as u64) << (i * 8);
i += 1;
}
}
val >>= bit_shift;
if BIT_WIDTH < 64 {
val &= (1u64 << BIT_WIDTH) - 1;
}
if cfg!(target_endian = "big") {
val = val.reverse_bits() >> (64 - BIT_WIDTH as usize);
}
val
}
}
#[inline]
pub unsafe fn raw_set_const<const BIT_OFFSET: usize, const BIT_WIDTH: u8>(
this: *mut Self,
val: u64,
) {
debug_assert!(BIT_WIDTH <= 64);
debug_assert!(BIT_OFFSET / 8 < N);
debug_assert!((BIT_OFFSET + (BIT_WIDTH as usize) + 7) / 8 <= N);
if BIT_WIDTH == 0 {
return;
}
let start_byte = BIT_OFFSET / 8;
let bit_shift = BIT_OFFSET % 8;
let bytes_needed = (BIT_WIDTH as usize + bit_shift + 7) / 8;
let storage_ptr = this.cast::<[u8; N]>().cast::<u8>();
if BIT_WIDTH as usize + bit_shift <= usize::BITS as usize {
let mut val = val as usize;
if (BIT_WIDTH as u32) < usize::BITS {
val &= (1usize << BIT_WIDTH) - 1;
}
if cfg!(target_endian = "big") {
val = val.reverse_bits() >> (usize::BITS as usize - BIT_WIDTH as usize);
}
val <<= bit_shift;
let field_mask = if BIT_WIDTH as usize + bit_shift >= usize::BITS as usize {
!0usize << bit_shift
} else {
((1usize << BIT_WIDTH) - 1) << bit_shift
};
let mut i = 0;
while i < bytes_needed {
let byte_val = (val >> (i * 8)) as u8;
let byte_mask = (field_mask >> (i * 8)) as u8;
let byte_ptr = unsafe { storage_ptr.add(start_byte + i) };
if cfg!(target_endian = "big") {
let byte = unsafe { (*byte_ptr).reverse_bits() };
let new_byte = (byte & !byte_mask) | (byte_val & byte_mask);
unsafe { *byte_ptr = new_byte.reverse_bits() };
} else {
unsafe { *byte_ptr = (*byte_ptr & !byte_mask) | (byte_val & byte_mask) };
}
i += 1;
}
} else {
let mut val = val;
if BIT_WIDTH < 64 {
val &= (1u64 << BIT_WIDTH) - 1;
}
if cfg!(target_endian = "big") {
val = val.reverse_bits() >> (64 - BIT_WIDTH as usize);
}
val <<= bit_shift;
let field_mask = if BIT_WIDTH as usize + bit_shift >= 64 {
!0u64 << bit_shift
} else {
((1u64 << BIT_WIDTH) - 1) << bit_shift
};
let mut i = 0;
while i < bytes_needed {
let byte_val = (val >> (i * 8)) as u8;
let byte_mask = (field_mask >> (i * 8)) as u8;
let byte_ptr = unsafe { storage_ptr.add(start_byte + i) };
if cfg!(target_endian = "big") {
let byte = unsafe { (*byte_ptr).reverse_bits() };
let new_byte = (byte & !byte_mask) | (byte_val & byte_mask);
unsafe { *byte_ptr = new_byte.reverse_bits() };
} else {
unsafe { *byte_ptr = (*byte_ptr & !byte_mask) | (byte_val & byte_mask) };
}
i += 1;
}
}
}
}
#[repr(C)]
#[derive(Default)]
pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
impl<T> __IncompleteArrayField<T> {
#[inline]
pub const fn new() -> Self {
__IncompleteArrayField(::core::marker::PhantomData, [])
}
#[inline]
pub fn as_ptr(&self) -> *const T {
self as *const _ as *const T
}
#[inline]
pub fn as_mut_ptr(&mut self) -> *mut T {
self as *mut _ as *mut T
}
#[inline]
pub unsafe fn as_slice(&self, len: usize) -> &[T] {
::core::slice::from_raw_parts(self.as_ptr(), len)
}
#[inline]
pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
}
}
impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
fmt.write_str("__IncompleteArrayField")
}
}
#[repr(C)]
pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
impl<T> __BindgenUnionField<T> {
#[inline]
pub const fn new() -> Self {
__BindgenUnionField(::core::marker::PhantomData)
}
#[inline]
pub const unsafe fn as_ref(&self) -> &T {
unsafe { ::core::mem::transmute(self) }
}
#[inline]
pub const unsafe fn as_mut(&mut self) -> &mut T {
unsafe { ::core::mem::transmute(self) }
}
}
impl<T> ::core::default::Default for __BindgenUnionField<T> {
#[inline]
fn default() -> Self {
Self::new()
}
}
impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
#[inline]
fn clone(&self) -> Self {
*self
}
}
impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
fmt.write_str("__BindgenUnionField")
}
}
impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
}
impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
true
}
}
impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
pub const FONT_KEY_FONT_FALLBACK_INTERNAL: &::core::ffi::CStr =
c"RESOURCE_ID_FONT_FALLBACK_INTERNAL";
pub const FONT_KEY_GOTHIC_18_BOLD: &::core::ffi::CStr = c"RESOURCE_ID_GOTHIC_18_BOLD";
pub const FONT_KEY_GOTHIC_24: &::core::ffi::CStr = c"RESOURCE_ID_GOTHIC_24";
pub const FONT_KEY_GOTHIC_09: &::core::ffi::CStr = c"RESOURCE_ID_GOTHIC_09";
pub const FONT_KEY_GOTHIC_14: &::core::ffi::CStr = c"RESOURCE_ID_GOTHIC_14";
pub const FONT_KEY_GOTHIC_14_BOLD: &::core::ffi::CStr = c"RESOURCE_ID_GOTHIC_14_BOLD";
pub const FONT_KEY_GOTHIC_18: &::core::ffi::CStr = c"RESOURCE_ID_GOTHIC_18";
pub const FONT_KEY_GOTHIC_24_BOLD: &::core::ffi::CStr = c"RESOURCE_ID_GOTHIC_24_BOLD";
pub const FONT_KEY_GOTHIC_28: &::core::ffi::CStr = c"RESOURCE_ID_GOTHIC_28";
pub const FONT_KEY_GOTHIC_28_BOLD: &::core::ffi::CStr = c"RESOURCE_ID_GOTHIC_28_BOLD";
pub const FONT_KEY_BITHAM_30_BLACK: &::core::ffi::CStr = c"RESOURCE_ID_BITHAM_30_BLACK";
pub const FONT_KEY_BITHAM_42_BOLD: &::core::ffi::CStr = c"RESOURCE_ID_BITHAM_42_BOLD";
pub const FONT_KEY_BITHAM_42_LIGHT: &::core::ffi::CStr = c"RESOURCE_ID_BITHAM_42_LIGHT";
pub const FONT_KEY_BITHAM_42_MEDIUM_NUMBERS: &::core::ffi::CStr =
c"RESOURCE_ID_BITHAM_42_MEDIUM_NUMBERS";
pub const FONT_KEY_BITHAM_34_MEDIUM_NUMBERS: &::core::ffi::CStr =
c"RESOURCE_ID_BITHAM_34_MEDIUM_NUMBERS";
pub const FONT_KEY_BITHAM_34_LIGHT_SUBSET: &::core::ffi::CStr =
c"RESOURCE_ID_BITHAM_34_LIGHT_SUBSET";
pub const FONT_KEY_BITHAM_18_LIGHT_SUBSET: &::core::ffi::CStr =
c"RESOURCE_ID_BITHAM_18_LIGHT_SUBSET";
pub const FONT_KEY_ROBOTO_CONDENSED_21: &::core::ffi::CStr = c"RESOURCE_ID_ROBOTO_CONDENSED_21";
pub const FONT_KEY_ROBOTO_BOLD_SUBSET_49: &::core::ffi::CStr = c"RESOURCE_ID_ROBOTO_BOLD_SUBSET_49";
pub const FONT_KEY_DROID_SERIF_28_BOLD: &::core::ffi::CStr = c"RESOURCE_ID_DROID_SERIF_28_BOLD";
pub const FONT_KEY_LECO_20_BOLD_NUMBERS: &::core::ffi::CStr = c"RESOURCE_ID_LECO_20_BOLD_NUMBERS";
pub const FONT_KEY_LECO_26_BOLD_NUMBERS_AM_PM: &::core::ffi::CStr =
c"RESOURCE_ID_LECO_26_BOLD_NUMBERS_AM_PM";
pub const FONT_KEY_LECO_32_BOLD_NUMBERS: &::core::ffi::CStr = c"RESOURCE_ID_LECO_32_BOLD_NUMBERS";
pub const FONT_KEY_LECO_36_BOLD_NUMBERS: &::core::ffi::CStr = c"RESOURCE_ID_LECO_36_BOLD_NUMBERS";
pub const FONT_KEY_LECO_38_BOLD_NUMBERS: &::core::ffi::CStr = c"RESOURCE_ID_LECO_38_BOLD_NUMBERS";
pub const FONT_KEY_LECO_42_NUMBERS: &::core::ffi::CStr = c"RESOURCE_ID_LECO_42_NUMBERS";
pub const FONT_KEY_LECO_28_LIGHT_NUMBERS: &::core::ffi::CStr = c"RESOURCE_ID_LECO_28_LIGHT_NUMBERS";
pub const FONT_KEY_LECO_60_NUMBERS_AM_PM: &::core::ffi::CStr = c"RESOURCE_ID_LECO_60_NUMBERS_AM_PM";
pub const FONT_KEY_LECO_60_BOLD_NUMBERS_AM_PM: &::core::ffi::CStr =
c"RESOURCE_ID_LECO_60_BOLD_NUMBERS_AM_PM";
pub const FONT_KEY_FONT_FALLBACK: &::core::ffi::CStr = c"RESOURCE_ID_FONT_FALLBACK";
pub const __bool_true_false_are_defined: u32 = 1;
pub const true_: u32 = 1;
pub const false_: u32 = 0;
pub const TRIG_MAX_RATIO: u32 = 65535;
pub const TRIG_MAX_ANGLE: u32 = 65536;
pub const TIMEZONE_NAME_LENGTH: u32 = 32;
pub const UUID_SIZE: u32 = 16;
pub const UUID_STRING_BUFFER_LENGTH: u32 = 39;
pub const APP_MESSAGE_INBOX_SIZE_MINIMUM: u32 = 124;
pub const APP_MESSAGE_OUTBOX_SIZE_MINIMUM: u32 = 636;
pub const kModdableCreationFlagLogInstrumentation: u32 = 1;
pub const kModdableCreationFlagDebug: u32 = 2;
pub const PERSIST_DATA_MAX_LENGTH: u32 = 256;
pub const PERSIST_STRING_MAX_LENGTH: u32 = 256;
pub const SMARTSTRAP_TIMEOUT_DEFAULT: u32 = 250;
pub const SMARTSTRAP_RAW_DATA_SERVICE_ID: u32 = 0;
pub const SMARTSTRAP_RAW_DATA_ATTRIBUTE_ID: u32 = 0;
pub const ANIMATION_NORMALIZED_MIN: u32 = 0;
pub const ANIMATION_NORMALIZED_MAX: u32 = 65535;
pub const NUM_ACTION_BAR_ITEMS: u32 = 3;
pub const SPEAKER_MAX_NOTES: u32 = 256;
pub const SPEAKER_MAX_TRACKS: u32 = 4;
pub const SPEAKER_MAX_SAMPLE_BYTES_TOTAL: u32 = 16384;
pub const TZ_LEN: u32 = 6;
pub const SECONDS_PER_MINUTE: u32 = 60;
pub const MINUTES_PER_HOUR: u32 = 60;
pub const SECONDS_PER_HOUR: u32 = 3600;
pub const HOURS_PER_DAY: u32 = 24;
pub const MINUTES_PER_DAY: u32 = 1440;
pub const SECONDS_PER_DAY: u32 = 86400;
pub type wchar_t = ::core::ffi::c_uint;
pub type int_least64_t = i64;
pub type uint_least64_t = u64;
pub type int_fast64_t = i64;
pub type uint_fast64_t = u64;
pub type int_least32_t = i32;
pub type uint_least32_t = u32;
pub type int_fast32_t = i32;
pub type uint_fast32_t = u32;
pub type int_least16_t = i16;
pub type uint_least16_t = u16;
pub type int_fast16_t = i16;
pub type uint_fast16_t = u16;
pub type int_least8_t = i8;
pub type uint_least8_t = u8;
pub type int_fast8_t = i8;
pub type uint_fast8_t = u8;
pub type intmax_t = ::core::ffi::c_longlong;
pub type uintmax_t = ::core::ffi::c_ulonglong;
#[unsafe(naked)]
#[unsafe(link_section = ".text.malloc")]
pub unsafe extern "C" fn malloc(arg1: ::core::ffi::c_uint) -> *mut ::core::ffi::c_void {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =644", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.free")]
pub unsafe extern "C" fn free(arg1: *mut ::core::ffi::c_void) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =396", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.realloc")]
pub unsafe extern "C" fn realloc(
arg1: *mut ::core::ffi::c_void,
arg2: ::core::ffi::c_uint,
) -> *mut ::core::ffi::c_void {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1292", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.memcpy")]
pub unsafe extern "C" fn memcpy(
arg1: *mut ::core::ffi::c_void,
arg2: *const ::core::ffi::c_void,
arg3: ::core::ffi::c_uint,
) -> *mut ::core::ffi::c_void {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =648", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.memmove")]
pub unsafe extern "C" fn memmove(
arg1: *mut ::core::ffi::c_void,
arg2: *const ::core::ffi::c_void,
arg3: ::core::ffi::c_uint,
) -> *mut ::core::ffi::c_void {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =652", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.memset")]
pub unsafe extern "C" fn memset(
arg1: *mut ::core::ffi::c_void,
arg2: ::core::ffi::c_int,
arg3: ::core::ffi::c_uint,
) -> *mut ::core::ffi::c_void {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =656", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub type time_t = ::core::ffi::c_long;
pub const ButtonId_BUTTON_ID_BACK: ButtonId = 0;
pub const ButtonId_BUTTON_ID_UP: ButtonId = 1;
pub const ButtonId_BUTTON_ID_SELECT: ButtonId = 2;
pub const ButtonId_BUTTON_ID_DOWN: ButtonId = 3;
pub const ButtonId_NUM_BUTTONS: ButtonId = 4;
pub type ButtonId = ::core::ffi::c_uchar;
#[unsafe(naked)]
#[unsafe(link_section = ".text.i18n_get_system_locale")]
pub unsafe extern "C" fn i18n_get_system_locale() -> *const ::core::ffi::c_char {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1440", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub const WatchInfoModel_WATCH_INFO_MODEL_UNKNOWN: WatchInfoModel = 0;
pub const WatchInfoModel_WATCH_INFO_MODEL_PEBBLE_ORIGINAL: WatchInfoModel = 1;
pub const WatchInfoModel_WATCH_INFO_MODEL_PEBBLE_STEEL: WatchInfoModel = 2;
pub const WatchInfoModel_WATCH_INFO_MODEL_PEBBLE_TIME: WatchInfoModel = 3;
pub const WatchInfoModel_WATCH_INFO_MODEL_PEBBLE_TIME_STEEL: WatchInfoModel = 4;
pub const WatchInfoModel_WATCH_INFO_MODEL_PEBBLE_TIME_ROUND_14: WatchInfoModel = 5;
pub const WatchInfoModel_WATCH_INFO_MODEL_PEBBLE_TIME_ROUND_20: WatchInfoModel = 6;
pub const WatchInfoModel_WATCH_INFO_MODEL_PEBBLE_2_HR: WatchInfoModel = 7;
pub const WatchInfoModel_WATCH_INFO_MODEL_PEBBLE_2_SE: WatchInfoModel = 8;
pub const WatchInfoModel_WATCH_INFO_MODEL_PEBBLE_TIME_2: WatchInfoModel = 9;
pub const WatchInfoModel_WATCH_INFO_MODEL_COREDEVICES_P2D: WatchInfoModel = 10;
pub const WatchInfoModel_WATCH_INFO_MODEL_COREDEVICES_PT2: WatchInfoModel = 11;
pub const WatchInfoModel_WATCH_INFO_MODEL_COREDEVICES_PR2: WatchInfoModel = 12;
pub const WatchInfoModel_WATCH_INFO_MODEL__MAX: WatchInfoModel = 13;
pub type WatchInfoModel = ::core::ffi::c_uchar;
pub const WatchInfoColor_WATCH_INFO_COLOR_UNKNOWN: WatchInfoColor = 0;
pub const WatchInfoColor_WATCH_INFO_COLOR_BLACK: WatchInfoColor = 1;
pub const WatchInfoColor_WATCH_INFO_COLOR_WHITE: WatchInfoColor = 2;
pub const WatchInfoColor_WATCH_INFO_COLOR_RED: WatchInfoColor = 3;
pub const WatchInfoColor_WATCH_INFO_COLOR_ORANGE: WatchInfoColor = 4;
pub const WatchInfoColor_WATCH_INFO_COLOR_GRAY: WatchInfoColor = 5;
pub const WatchInfoColor_WATCH_INFO_COLOR_STAINLESS_STEEL: WatchInfoColor = 6;
pub const WatchInfoColor_WATCH_INFO_COLOR_MATTE_BLACK: WatchInfoColor = 7;
pub const WatchInfoColor_WATCH_INFO_COLOR_BLUE: WatchInfoColor = 8;
pub const WatchInfoColor_WATCH_INFO_COLOR_GREEN: WatchInfoColor = 9;
pub const WatchInfoColor_WATCH_INFO_COLOR_PINK: WatchInfoColor = 10;
pub const WatchInfoColor_WATCH_INFO_COLOR_TIME_WHITE: WatchInfoColor = 11;
pub const WatchInfoColor_WATCH_INFO_COLOR_TIME_BLACK: WatchInfoColor = 12;
pub const WatchInfoColor_WATCH_INFO_COLOR_TIME_RED: WatchInfoColor = 13;
pub const WatchInfoColor_WATCH_INFO_COLOR_TIME_STEEL_SILVER: WatchInfoColor = 14;
pub const WatchInfoColor_WATCH_INFO_COLOR_TIME_STEEL_BLACK: WatchInfoColor = 15;
pub const WatchInfoColor_WATCH_INFO_COLOR_TIME_STEEL_GOLD: WatchInfoColor = 16;
pub const WatchInfoColor_WATCH_INFO_COLOR_TIME_ROUND_SILVER_14: WatchInfoColor = 17;
pub const WatchInfoColor_WATCH_INFO_COLOR_TIME_ROUND_BLACK_14: WatchInfoColor = 18;
pub const WatchInfoColor_WATCH_INFO_COLOR_TIME_ROUND_SILVER_20: WatchInfoColor = 19;
pub const WatchInfoColor_WATCH_INFO_COLOR_TIME_ROUND_BLACK_20: WatchInfoColor = 20;
pub const WatchInfoColor_WATCH_INFO_COLOR_TIME_ROUND_ROSE_GOLD_14: WatchInfoColor = 21;
pub const WatchInfoColor_WATCH_INFO_COLOR_PEBBLE_2_HR_BLACK: WatchInfoColor = 25;
pub const WatchInfoColor_WATCH_INFO_COLOR_PEBBLE_2_HR_LIME: WatchInfoColor = 27;
pub const WatchInfoColor_WATCH_INFO_COLOR_PEBBLE_2_HR_FLAME: WatchInfoColor = 28;
pub const WatchInfoColor_WATCH_INFO_COLOR_PEBBLE_2_HR_WHITE: WatchInfoColor = 29;
pub const WatchInfoColor_WATCH_INFO_COLOR_PEBBLE_2_HR_AQUA: WatchInfoColor = 30;
pub const WatchInfoColor_WATCH_INFO_COLOR_PEBBLE_2_SE_BLACK: WatchInfoColor = 24;
pub const WatchInfoColor_WATCH_INFO_COLOR_PEBBLE_2_SE_WHITE: WatchInfoColor = 26;
pub const WatchInfoColor_WATCH_INFO_COLOR_PEBBLE_TIME_2_BLACK: WatchInfoColor = 31;
pub const WatchInfoColor_WATCH_INFO_COLOR_PEBBLE_TIME_2_SILVER: WatchInfoColor = 32;
pub const WatchInfoColor_WATCH_INFO_COLOR_PEBBLE_TIME_2_GOLD: WatchInfoColor = 33;
pub const WatchInfoColor_WATCH_INFO_COLOR_COREDEVICES_P2D_BLACK: WatchInfoColor = 34;
pub const WatchInfoColor_WATCH_INFO_COLOR_COREDEVICES_P2D_WHITE: WatchInfoColor = 35;
pub const WatchInfoColor_WATCH_INFO_COLOR_COREDEVICES_PT2_BLACK_GREY: WatchInfoColor = 36;
pub const WatchInfoColor_WATCH_INFO_COLOR_COREDEVICES_PT2_BLACK_RED: WatchInfoColor = 37;
pub const WatchInfoColor_WATCH_INFO_COLOR_COREDEVICES_PT2_SILVER_BLUE: WatchInfoColor = 38;
pub const WatchInfoColor_WATCH_INFO_COLOR_COREDEVICES_PT2_SILVER_GREY: WatchInfoColor = 39;
pub const WatchInfoColor_WATCH_INFO_COLOR_COREDEVICES_PR2_BLACK_20: WatchInfoColor = 40;
pub const WatchInfoColor_WATCH_INFO_COLOR_COREDEVICES_PR2_SILVER_20: WatchInfoColor = 41;
pub const WatchInfoColor_WATCH_INFO_COLOR_COREDEVICES_PR2_GOLD_14: WatchInfoColor = 42;
pub const WatchInfoColor_WATCH_INFO_COLOR_COREDEVICES_PR2_SILVER_14: WatchInfoColor = 43;
pub const WatchInfoColor_WATCH_INFO_COLOR__MAX: WatchInfoColor = 44;
pub type WatchInfoColor = ::core::ffi::c_uchar;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct WatchInfoVersion {
pub major: u8,
pub minor: u8,
pub patch: u8,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of WatchInfoVersion"][::core::mem::size_of::<WatchInfoVersion>() - 3usize];
["Alignment of WatchInfoVersion"][::core::mem::align_of::<WatchInfoVersion>() - 1usize];
["Offset of field: WatchInfoVersion::major"]
[::core::mem::offset_of!(WatchInfoVersion, major) - 0usize];
["Offset of field: WatchInfoVersion::minor"]
[::core::mem::offset_of!(WatchInfoVersion, minor) - 1usize];
["Offset of field: WatchInfoVersion::patch"]
[::core::mem::offset_of!(WatchInfoVersion, patch) - 2usize];
};
#[unsafe(naked)]
#[unsafe(link_section = ".text.watch_info_get_model")]
pub unsafe extern "C" fn watch_info_get_model() -> WatchInfoModel {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1388", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.watch_info_get_firmware_version")]
pub unsafe extern "C" fn watch_info_get_firmware_version() -> WatchInfoVersion {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1384", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.watch_info_get_color")]
pub unsafe extern "C" fn watch_info_get_color() -> WatchInfoColor {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1380", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.sin_lookup")]
pub unsafe extern "C" fn sin_lookup(angle: i32) -> i32 {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =952", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.cos_lookup")]
pub unsafe extern "C" fn cos_lookup(angle: i32) -> i32 {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =280", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.atan2_lookup")]
pub unsafe extern "C" fn atan2_lookup(y: i16, x: i16) -> i32 {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =200", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub const WeekDay_TODAY: WeekDay = 0;
pub const WeekDay_SUNDAY: WeekDay = 1;
pub const WeekDay_MONDAY: WeekDay = 2;
pub const WeekDay_TUESDAY: WeekDay = 3;
pub const WeekDay_WEDNESDAY: WeekDay = 4;
pub const WeekDay_THURSDAY: WeekDay = 5;
pub const WeekDay_FRIDAY: WeekDay = 6;
pub const WeekDay_SATURDAY: WeekDay = 7;
pub type WeekDay = ::core::ffi::c_uchar;
#[unsafe(naked)]
#[unsafe(link_section = ".text.clock_copy_time_string")]
pub unsafe extern "C" fn clock_copy_time_string(buffer: *mut ::core::ffi::c_char, size: u8) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =272", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.clock_is_24h_style")]
pub unsafe extern "C" fn clock_is_24h_style() -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =276", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.clock_to_timestamp")]
pub unsafe extern "C" fn clock_to_timestamp(
day: WeekDay,
hour: ::core::ffi::c_int,
minute: ::core::ffi::c_int,
) -> time_t {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1404", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.clock_is_timezone_set")]
pub unsafe extern "C" fn clock_is_timezone_set() -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1436", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.clock_get_timezone")]
pub unsafe extern "C" fn clock_get_timezone(
timezone: *mut ::core::ffi::c_char,
buffer_size: usize,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1512", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub const PlatformType_PlatformTypeAplite: PlatformType = 0;
pub const PlatformType_PlatformTypeBasalt: PlatformType = 1;
pub const PlatformType_PlatformTypeChalk: PlatformType = 2;
pub const PlatformType_PlatformTypeDiorite: PlatformType = 3;
pub const PlatformType_PlatformTypeEmery: PlatformType = 4;
pub const PlatformType_PlatformTypeFlint: PlatformType = 5;
pub const PlatformType_PlatformTypeGabbro: PlatformType = 6;
pub type PlatformType = ::core::ffi::c_uchar;
#[unsafe(naked)]
#[unsafe(link_section = ".text.alarm_service_peek_next")]
pub unsafe extern "C" fn alarm_service_peek_next(timestamp_out: *mut time_t) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2628", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub type ConnectionHandler = ::core::option::Option<unsafe extern "C" fn(connected: bool)>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ConnectionHandlers {
pub pebble_app_connection_handler: ConnectionHandler,
pub pebblekit_connection_handler: ConnectionHandler,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of ConnectionHandlers"][::core::mem::size_of::<ConnectionHandlers>() - 8usize];
["Alignment of ConnectionHandlers"][::core::mem::align_of::<ConnectionHandlers>() - 4usize];
["Offset of field: ConnectionHandlers::pebble_app_connection_handler"]
[::core::mem::offset_of!(ConnectionHandlers, pebble_app_connection_handler) - 0usize];
["Offset of field: ConnectionHandlers::pebblekit_connection_handler"]
[::core::mem::offset_of!(ConnectionHandlers, pebblekit_connection_handler) - 4usize];
};
#[unsafe(naked)]
#[unsafe(link_section = ".text.connection_service_peek_pebble_app_connection")]
pub unsafe extern "C" fn connection_service_peek_pebble_app_connection() -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2264", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.connection_service_peek_pebblekit_connection")]
pub unsafe extern "C" fn connection_service_peek_pebblekit_connection() -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2268", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.connection_service_subscribe")]
pub unsafe extern "C" fn connection_service_subscribe(conn_handlers: ConnectionHandlers) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2272", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.connection_service_unsubscribe")]
pub unsafe extern "C" fn connection_service_unsubscribe() {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2276", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub type BluetoothConnectionHandler = ConnectionHandler;
#[unsafe(naked)]
#[unsafe(link_section = ".text.bluetooth_connection_service_peek")]
pub unsafe extern "C" fn bluetooth_connection_service_peek() -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =252", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.bluetooth_connection_service_subscribe")]
pub unsafe extern "C" fn bluetooth_connection_service_subscribe(handler: ConnectionHandler) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =256", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.bluetooth_connection_service_unsubscribe")]
pub unsafe extern "C" fn bluetooth_connection_service_unsubscribe() {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =260", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub type AppFocusHandler = ::core::option::Option<unsafe extern "C" fn(in_focus: bool)>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AppFocusHandlers {
pub will_focus: AppFocusHandler,
pub did_focus: AppFocusHandler,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of AppFocusHandlers"][::core::mem::size_of::<AppFocusHandlers>() - 8usize];
["Alignment of AppFocusHandlers"][::core::mem::align_of::<AppFocusHandlers>() - 4usize];
["Offset of field: AppFocusHandlers::will_focus"]
[::core::mem::offset_of!(AppFocusHandlers, will_focus) - 0usize];
["Offset of field: AppFocusHandlers::did_focus"]
[::core::mem::offset_of!(AppFocusHandlers, did_focus) - 4usize];
};
#[unsafe(naked)]
#[unsafe(link_section = ".text.app_focus_service_subscribe_handlers")]
pub unsafe extern "C" fn app_focus_service_subscribe_handlers(handlers: AppFocusHandlers) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2140", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.app_focus_service_subscribe")]
pub unsafe extern "C" fn app_focus_service_subscribe(handler: AppFocusHandler) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1156", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.app_focus_service_unsubscribe")]
pub unsafe extern "C" fn app_focus_service_unsubscribe() {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1160", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BatteryChargeState {
pub charge_percent: u8,
pub is_charging: bool,
pub is_plugged: bool,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BatteryChargeState"][::core::mem::size_of::<BatteryChargeState>() - 3usize];
["Alignment of BatteryChargeState"][::core::mem::align_of::<BatteryChargeState>() - 1usize];
["Offset of field: BatteryChargeState::charge_percent"]
[::core::mem::offset_of!(BatteryChargeState, charge_percent) - 0usize];
["Offset of field: BatteryChargeState::is_charging"]
[::core::mem::offset_of!(BatteryChargeState, is_charging) - 1usize];
["Offset of field: BatteryChargeState::is_plugged"]
[::core::mem::offset_of!(BatteryChargeState, is_plugged) - 2usize];
};
pub type BatteryStateHandler =
::core::option::Option<unsafe extern "C" fn(charge: BatteryChargeState)>;
#[unsafe(naked)]
#[unsafe(link_section = ".text.battery_state_service_subscribe")]
pub unsafe extern "C" fn battery_state_service_subscribe(handler: BatteryStateHandler) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =216", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.battery_state_service_unsubscribe")]
pub unsafe extern "C" fn battery_state_service_unsubscribe() {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =220", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.battery_state_service_peek")]
pub unsafe extern "C" fn battery_state_service_peek() -> BatteryChargeState {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =212", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub type BacklightHandler = ::core::option::Option<unsafe extern "C" fn(on: bool)>;
#[unsafe(naked)]
#[unsafe(link_section = ".text.backlight_service_subscribe")]
pub unsafe extern "C" fn backlight_service_subscribe(handler: BacklightHandler) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2612", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.backlight_service_unsubscribe")]
pub unsafe extern "C" fn backlight_service_unsubscribe() {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2616", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct AccelData {
pub x: i16,
pub y: i16,
pub z: i16,
pub did_vibrate: bool,
pub timestamp: u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of AccelData"][::core::mem::size_of::<AccelData>() - 15usize];
["Alignment of AccelData"][::core::mem::align_of::<AccelData>() - 1usize];
["Offset of field: AccelData::x"][::core::mem::offset_of!(AccelData, x) - 0usize];
["Offset of field: AccelData::y"][::core::mem::offset_of!(AccelData, y) - 2usize];
["Offset of field: AccelData::z"][::core::mem::offset_of!(AccelData, z) - 4usize];
["Offset of field: AccelData::did_vibrate"]
[::core::mem::offset_of!(AccelData, did_vibrate) - 6usize];
["Offset of field: AccelData::timestamp"]
[::core::mem::offset_of!(AccelData, timestamp) - 7usize];
};
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct AccelRawData {
pub x: i16,
pub y: i16,
pub z: i16,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of AccelRawData"][::core::mem::size_of::<AccelRawData>() - 6usize];
["Alignment of AccelRawData"][::core::mem::align_of::<AccelRawData>() - 1usize];
["Offset of field: AccelRawData::x"][::core::mem::offset_of!(AccelRawData, x) - 0usize];
["Offset of field: AccelRawData::y"][::core::mem::offset_of!(AccelRawData, y) - 2usize];
["Offset of field: AccelRawData::z"][::core::mem::offset_of!(AccelRawData, z) - 4usize];
};
pub const AccelAxisType_ACCEL_AXIS_X: AccelAxisType = 0;
pub const AccelAxisType_ACCEL_AXIS_Y: AccelAxisType = 1;
pub const AccelAxisType_ACCEL_AXIS_Z: AccelAxisType = 2;
pub type AccelAxisType = ::core::ffi::c_uchar;
pub type AccelDataHandler =
::core::option::Option<unsafe extern "C" fn(data: *mut AccelData, num_samples: u32)>;
pub type AccelRawDataHandler = ::core::option::Option<
unsafe extern "C" fn(data: *mut AccelRawData, num_samples: u32, timestamp: u64),
>;
pub type AccelTapHandler =
::core::option::Option<unsafe extern "C" fn(axis: AccelAxisType, direction: i32)>;
pub const AccelSamplingRate_ACCEL_SAMPLING_10HZ: AccelSamplingRate = 10;
pub const AccelSamplingRate_ACCEL_SAMPLING_25HZ: AccelSamplingRate = 25;
pub const AccelSamplingRate_ACCEL_SAMPLING_50HZ: AccelSamplingRate = 50;
pub const AccelSamplingRate_ACCEL_SAMPLING_100HZ: AccelSamplingRate = 100;
pub type AccelSamplingRate = ::core::ffi::c_uchar;
#[unsafe(naked)]
#[unsafe(link_section = ".text.accel_service_peek")]
pub unsafe extern "C" fn accel_service_peek(data: *mut AccelData) -> ::core::ffi::c_int {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =8", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.accel_service_set_sampling_rate")]
pub unsafe extern "C" fn accel_service_set_sampling_rate(
rate: AccelSamplingRate,
) -> ::core::ffi::c_int {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =16", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.accel_service_set_samples_per_update")]
pub unsafe extern "C" fn accel_service_set_samples_per_update(
num_samples: u32,
) -> ::core::ffi::c_int {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =12", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.accel_data_service_subscribe")]
pub unsafe extern "C" fn accel_data_service_subscribe(
samples_per_update: u32,
handler: AccelDataHandler,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1268", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.accel_data_service_unsubscribe")]
pub unsafe extern "C" fn accel_data_service_unsubscribe() {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =4", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.accel_tap_service_subscribe")]
pub unsafe extern "C" fn accel_tap_service_subscribe(handler: AccelTapHandler) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =20", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.accel_tap_service_unsubscribe")]
pub unsafe extern "C" fn accel_tap_service_unsubscribe() {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =24", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.accel_raw_data_service_subscribe")]
pub unsafe extern "C" fn accel_raw_data_service_subscribe(
samples_per_update: u32,
handler: AccelRawDataHandler,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1304", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub const CompassStatus_CompassStatusUnavailable: CompassStatus = -1;
pub const CompassStatus_CompassStatusDataInvalid: CompassStatus = 0;
pub const CompassStatus_CompassStatusCalibrating: CompassStatus = 1;
pub const CompassStatus_CompassStatusCalibrated: CompassStatus = 2;
pub type CompassStatus = ::core::ffi::c_schar;
pub type CompassHeading = i32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CompassHeadingData {
pub magnetic_heading: CompassHeading,
pub true_heading: CompassHeading,
pub compass_status: CompassStatus,
pub is_declination_valid: bool,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of CompassHeadingData"][::core::mem::size_of::<CompassHeadingData>() - 12usize];
["Alignment of CompassHeadingData"][::core::mem::align_of::<CompassHeadingData>() - 4usize];
["Offset of field: CompassHeadingData::magnetic_heading"]
[::core::mem::offset_of!(CompassHeadingData, magnetic_heading) - 0usize];
["Offset of field: CompassHeadingData::true_heading"]
[::core::mem::offset_of!(CompassHeadingData, true_heading) - 4usize];
["Offset of field: CompassHeadingData::compass_status"]
[::core::mem::offset_of!(CompassHeadingData, compass_status) - 8usize];
["Offset of field: CompassHeadingData::is_declination_valid"]
[::core::mem::offset_of!(CompassHeadingData, is_declination_valid) - 9usize];
};
pub type CompassHeadingHandler =
::core::option::Option<unsafe extern "C" fn(heading: CompassHeadingData)>;
#[unsafe(naked)]
#[unsafe(link_section = ".text.compass_service_set_heading_filter")]
pub unsafe extern "C" fn compass_service_set_heading_filter(
filter: CompassHeading,
) -> ::core::ffi::c_int {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1352", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.compass_service_subscribe")]
pub unsafe extern "C" fn compass_service_subscribe(handler: CompassHeadingHandler) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1356", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.compass_service_unsubscribe")]
pub unsafe extern "C" fn compass_service_unsubscribe() {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1360", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.compass_service_peek")]
pub unsafe extern "C" fn compass_service_peek(data: *mut CompassHeadingData) -> ::core::ffi::c_int {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1348", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub const TimeUnits_SECOND_UNIT: TimeUnits = 1;
pub const TimeUnits_MINUTE_UNIT: TimeUnits = 2;
pub const TimeUnits_HOUR_UNIT: TimeUnits = 4;
pub const TimeUnits_DAY_UNIT: TimeUnits = 8;
pub const TimeUnits_MONTH_UNIT: TimeUnits = 16;
pub const TimeUnits_YEAR_UNIT: TimeUnits = 32;
pub type TimeUnits = ::core::ffi::c_uchar;
pub type TickHandler =
::core::option::Option<unsafe extern "C" fn(tick_time: *mut tm, units_changed: TimeUnits)>;
#[unsafe(naked)]
#[unsafe(link_section = ".text.tick_timer_service_subscribe")]
pub unsafe extern "C" fn tick_timer_service_subscribe(tick_units: TimeUnits, handler: TickHandler) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1048", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.tick_timer_service_unsubscribe")]
pub unsafe extern "C" fn tick_timer_service_unsubscribe() {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1052", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub const TouchEventType_TouchEvent_Touchdown: TouchEventType = 0;
pub const TouchEventType_TouchEvent_Liftoff: TouchEventType = 1;
pub const TouchEventType_TouchEvent_PositionUpdate: TouchEventType = 2;
pub type TouchEventType = ::core::ffi::c_uchar;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct TouchEvent {
pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
pub non_navigational: bool,
pub x: i16,
pub y: i16,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of TouchEvent"][::core::mem::size_of::<TouchEvent>() - 6usize];
["Alignment of TouchEvent"][::core::mem::align_of::<TouchEvent>() - 2usize];
["Offset of field: TouchEvent::non_navigational"]
[::core::mem::offset_of!(TouchEvent, non_navigational) - 1usize];
["Offset of field: TouchEvent::x"][::core::mem::offset_of!(TouchEvent, x) - 2usize];
["Offset of field: TouchEvent::y"][::core::mem::offset_of!(TouchEvent, y) - 4usize];
};
impl TouchEvent {
#[inline]
#[allow(unnecessary_transmutes)]
pub fn type_(&self) -> TouchEventType {
unsafe { ::core::mem::transmute(self._bitfield_1.get_const::<0usize, 8u8>() as u8) }
}
#[inline]
#[allow(unnecessary_transmutes)]
pub fn set_type(&mut self, val: TouchEventType) {
unsafe {
let val: u8 = ::core::mem::transmute(val);
self._bitfield_1.set_const::<0usize, 8u8>(val as u64)
}
}
#[inline]
#[allow(unnecessary_transmutes)]
pub unsafe fn type__raw(this: *const Self) -> TouchEventType {
unsafe {
::core::mem::transmute(
<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get_const::<0usize, 8u8>(
::core::ptr::addr_of!((*this)._bitfield_1),
) as u8,
)
}
}
#[inline]
#[allow(unnecessary_transmutes)]
pub unsafe fn set_type_raw(this: *mut Self, val: TouchEventType) {
unsafe {
let val: u8 = ::core::mem::transmute(val);
<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set_const::<0usize, 8u8>(
::core::ptr::addr_of_mut!((*this)._bitfield_1),
val as u64,
)
}
}
#[inline]
#[allow(unnecessary_transmutes)]
pub fn new_bitfield_1(type_: TouchEventType) -> __BindgenBitfieldUnit<[u8; 1usize]> {
let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
__bindgen_bitfield_unit.set_const::<0usize, 8u8>({
let type_: u8 = unsafe { ::core::mem::transmute(type_) };
type_ as u64
});
__bindgen_bitfield_unit
}
}
pub type TouchServiceHandler = ::core::option::Option<
unsafe extern "C" fn(event: *const TouchEvent, context: *mut ::core::ffi::c_void),
>;
#[unsafe(naked)]
#[unsafe(link_section = ".text.touch_service_subscribe")]
pub unsafe extern "C" fn touch_service_subscribe(
handler: TouchServiceHandler,
context: *mut ::core::ffi::c_void,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2552", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.touch_service_unsubscribe")]
pub unsafe extern "C" fn touch_service_unsubscribe() {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2556", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.touch_service_is_enabled")]
pub unsafe extern "C" fn touch_service_is_enabled() -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2548", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.app_touch_navigation_enable")]
pub unsafe extern "C" fn app_touch_navigation_enable(enable: bool) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2696", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub const HealthMetric_HealthMetricStepCount: HealthMetric = 0;
pub const HealthMetric_HealthMetricActiveSeconds: HealthMetric = 1;
pub const HealthMetric_HealthMetricWalkedDistanceMeters: HealthMetric = 2;
pub const HealthMetric_HealthMetricSleepSeconds: HealthMetric = 3;
pub const HealthMetric_HealthMetricSleepRestfulSeconds: HealthMetric = 4;
pub const HealthMetric_HealthMetricRestingKCalories: HealthMetric = 5;
pub const HealthMetric_HealthMetricActiveKCalories: HealthMetric = 6;
pub const HealthMetric_HealthMetricHeartRateBPM: HealthMetric = 7;
pub const HealthMetric_HealthMetricHeartRateRawBPM: HealthMetric = 8;
pub type HealthMetric = ::core::ffi::c_uchar;
pub type HealthValue = i32;
#[repr(C)]
#[derive(Debug)]
pub struct HealthMetricAlert {
_unused: [u8; 0],
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.health_service_sum")]
pub unsafe extern "C" fn health_service_sum(
metric: HealthMetric,
time_start: time_t,
time_end: time_t,
) -> HealthValue {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2424", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.health_service_sum_today")]
pub unsafe extern "C" fn health_service_sum_today(metric: HealthMetric) -> HealthValue {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2428", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.health_service_peek_current_value")]
pub unsafe extern "C" fn health_service_peek_current_value(metric: HealthMetric) -> HealthValue {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2480", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub const HealthServiceTimeScope_HealthServiceTimeScopeOnce: HealthServiceTimeScope = 0;
pub const HealthServiceTimeScope_HealthServiceTimeScopeWeekly: HealthServiceTimeScope = 1;
pub const HealthServiceTimeScope_HealthServiceTimeScopeDailyWeekdayOrWeekend:
HealthServiceTimeScope = 2;
pub const HealthServiceTimeScope_HealthServiceTimeScopeDaily: HealthServiceTimeScope = 3;
pub type HealthServiceTimeScope = ::core::ffi::c_uchar;
#[unsafe(naked)]
#[unsafe(link_section = ".text.health_service_sum_averaged")]
pub unsafe extern "C" fn health_service_sum_averaged(
metric: HealthMetric,
time_start: time_t,
time_end: time_t,
scope: HealthServiceTimeScope,
) -> HealthValue {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2440", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub const HealthAggregation_HealthAggregationSum: HealthAggregation = 0;
pub const HealthAggregation_HealthAggregationAvg: HealthAggregation = 1;
pub const HealthAggregation_HealthAggregationMin: HealthAggregation = 2;
pub const HealthAggregation_HealthAggregationMax: HealthAggregation = 3;
pub type HealthAggregation = ::core::ffi::c_uchar;
#[unsafe(naked)]
#[unsafe(link_section = ".text.health_service_aggregate_averaged")]
pub unsafe extern "C" fn health_service_aggregate_averaged(
metric: HealthMetric,
time_start: time_t,
time_end: time_t,
aggregation: HealthAggregation,
scope: HealthServiceTimeScope,
) -> HealthValue {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2468", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub type HealthActivityMask = u32;
pub const HealthActivity_HealthActivityNone: HealthActivity = 0;
pub const HealthActivity_HealthActivitySleep: HealthActivity = 1;
pub const HealthActivity_HealthActivityRestfulSleep: HealthActivity = 2;
pub const HealthActivity_HealthActivityWalk: HealthActivity = 4;
pub const HealthActivity_HealthActivityRun: HealthActivity = 8;
pub const HealthActivity_HealthActivityOpenWorkout: HealthActivity = 16;
pub type HealthActivity = ::core::ffi::c_uchar;
#[unsafe(naked)]
#[unsafe(link_section = ".text.health_service_peek_current_activities")]
pub unsafe extern "C" fn health_service_peek_current_activities() -> HealthActivityMask {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2420", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub type HealthActivityIteratorCB = ::core::option::Option<
unsafe extern "C" fn(
activity: HealthActivity,
time_start: time_t,
time_end: time_t,
context: *mut ::core::ffi::c_void,
) -> bool,
>;
pub const HealthIterationDirection_HealthIterationDirectionPast: HealthIterationDirection = 0;
pub const HealthIterationDirection_HealthIterationDirectionFuture: HealthIterationDirection = 1;
pub type HealthIterationDirection = ::core::ffi::c_uchar;
#[unsafe(naked)]
#[unsafe(link_section = ".text.health_service_activities_iterate")]
pub unsafe extern "C" fn health_service_activities_iterate(
activity_mask: HealthActivityMask,
time_start: time_t,
time_end: time_t,
direction: HealthIterationDirection,
callback: HealthActivityIteratorCB,
context: *mut ::core::ffi::c_void,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2396", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub const HealthServiceAccessibilityMask_HealthServiceAccessibilityMaskAvailable:
HealthServiceAccessibilityMask = 1;
pub const HealthServiceAccessibilityMask_HealthServiceAccessibilityMaskNoPermission:
HealthServiceAccessibilityMask = 2;
pub const HealthServiceAccessibilityMask_HealthServiceAccessibilityMaskNotSupported:
HealthServiceAccessibilityMask = 4;
pub const HealthServiceAccessibilityMask_HealthServiceAccessibilityMaskNotAvailable:
HealthServiceAccessibilityMask = 8;
pub type HealthServiceAccessibilityMask = ::core::ffi::c_uchar;
#[unsafe(naked)]
#[unsafe(link_section = ".text.health_service_metric_accessible")]
pub unsafe extern "C" fn health_service_metric_accessible(
metric: HealthMetric,
time_start: time_t,
time_end: time_t,
) -> HealthServiceAccessibilityMask {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2416", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.health_service_metric_averaged_accessible")]
pub unsafe extern "C" fn health_service_metric_averaged_accessible(
metric: HealthMetric,
time_start: time_t,
time_end: time_t,
scope: HealthServiceTimeScope,
) -> HealthServiceAccessibilityMask {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2436", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.health_service_metric_aggregate_averaged_accessible")]
pub unsafe extern "C" fn health_service_metric_aggregate_averaged_accessible(
metric: HealthMetric,
time_start: time_t,
time_end: time_t,
aggregation: HealthAggregation,
scope: HealthServiceTimeScope,
) -> HealthServiceAccessibilityMask {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2476", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.health_service_any_activity_accessible")]
pub unsafe extern "C" fn health_service_any_activity_accessible(
activity_mask: HealthActivityMask,
time_start: time_t,
time_end: time_t,
) -> HealthServiceAccessibilityMask {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2400", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub const HealthEventType_HealthEventSignificantUpdate: HealthEventType = 0;
pub const HealthEventType_HealthEventMovementUpdate: HealthEventType = 1;
pub const HealthEventType_HealthEventSleepUpdate: HealthEventType = 2;
pub const HealthEventType_HealthEventMetricAlert: HealthEventType = 3;
pub const HealthEventType_HealthEventHeartRateUpdate: HealthEventType = 4;
pub const HealthEventType_HealthEventHRVUpdate: HealthEventType = 5;
pub type HealthEventType = ::core::ffi::c_uchar;
pub type HealthEventHandler = ::core::option::Option<
unsafe extern "C" fn(event: HealthEventType, context: *mut ::core::ffi::c_void),
>;
#[unsafe(naked)]
#[unsafe(link_section = ".text.health_service_events_subscribe")]
pub unsafe extern "C" fn health_service_events_subscribe(
handler: HealthEventHandler,
context: *mut ::core::ffi::c_void,
) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2404", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.health_service_events_unsubscribe")]
pub unsafe extern "C" fn health_service_events_unsubscribe() -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2408", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.health_service_set_heart_rate_sample_period")]
pub unsafe extern "C" fn health_service_set_heart_rate_sample_period(interval_sec: u16) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2516", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.health_service_get_heart_rate_sample_period_expiration_sec")]
pub unsafe extern "C" fn health_service_get_heart_rate_sample_period_expiration_sec() -> u16 {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2512", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.health_service_register_metric_alert")]
pub unsafe extern "C" fn health_service_register_metric_alert(
metric: HealthMetric,
threshold: HealthValue,
) -> *mut HealthMetricAlert {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2484", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.health_service_cancel_metric_alert")]
pub unsafe extern "C" fn health_service_cancel_metric_alert(alert: *mut HealthMetricAlert) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2472", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub const AmbientLightLevel_AmbientLightLevelUnknown: AmbientLightLevel = 0;
pub const AmbientLightLevel_AmbientLightLevelVeryDark: AmbientLightLevel = 1;
pub const AmbientLightLevel_AmbientLightLevelDark: AmbientLightLevel = 2;
pub const AmbientLightLevel_AmbientLightLevelLight: AmbientLightLevel = 3;
pub const AmbientLightLevel_AmbientLightLevelVeryLight: AmbientLightLevel = 4;
pub type AmbientLightLevel = ::core::ffi::c_uchar;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HealthMinuteData {
pub steps: u8,
pub orientation: u8,
pub vmc: u16,
pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
pub heart_rate_bpm: u8,
pub reserved: [u8; 6usize],
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of HealthMinuteData"][::core::mem::size_of::<HealthMinuteData>() - 12usize];
["Alignment of HealthMinuteData"][::core::mem::align_of::<HealthMinuteData>() - 2usize];
["Offset of field: HealthMinuteData::steps"]
[::core::mem::offset_of!(HealthMinuteData, steps) - 0usize];
["Offset of field: HealthMinuteData::orientation"]
[::core::mem::offset_of!(HealthMinuteData, orientation) - 1usize];
["Offset of field: HealthMinuteData::vmc"]
[::core::mem::offset_of!(HealthMinuteData, vmc) - 2usize];
["Offset of field: HealthMinuteData::heart_rate_bpm"]
[::core::mem::offset_of!(HealthMinuteData, heart_rate_bpm) - 5usize];
["Offset of field: HealthMinuteData::reserved"]
[::core::mem::offset_of!(HealthMinuteData, reserved) - 6usize];
};
impl HealthMinuteData {
#[inline]
#[allow(unnecessary_transmutes)]
pub fn is_invalid(&self) -> bool {
unsafe { ::core::mem::transmute(self._bitfield_1.get_const::<0usize, 1u8>() as u8) }
}
#[inline]
#[allow(unnecessary_transmutes)]
pub fn set_is_invalid(&mut self, val: bool) {
unsafe {
let val: u8 = ::core::mem::transmute(val);
self._bitfield_1.set_const::<0usize, 1u8>(val as u64)
}
}
#[inline]
#[allow(unnecessary_transmutes)]
pub unsafe fn is_invalid_raw(this: *const Self) -> bool {
unsafe {
::core::mem::transmute(
<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get_const::<0usize, 1u8>(
::core::ptr::addr_of!((*this)._bitfield_1),
) as u8,
)
}
}
#[inline]
#[allow(unnecessary_transmutes)]
pub unsafe fn set_is_invalid_raw(this: *mut Self, val: bool) {
unsafe {
let val: u8 = ::core::mem::transmute(val);
<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set_const::<0usize, 1u8>(
::core::ptr::addr_of_mut!((*this)._bitfield_1),
val as u64,
)
}
}
#[inline]
#[allow(unnecessary_transmutes)]
pub fn light(&self) -> AmbientLightLevel {
unsafe { ::core::mem::transmute(self._bitfield_1.get_const::<1usize, 3u8>() as u8) }
}
#[inline]
#[allow(unnecessary_transmutes)]
pub fn set_light(&mut self, val: AmbientLightLevel) {
unsafe {
let val: u8 = ::core::mem::transmute(val);
self._bitfield_1.set_const::<1usize, 3u8>(val as u64)
}
}
#[inline]
#[allow(unnecessary_transmutes)]
pub unsafe fn light_raw(this: *const Self) -> AmbientLightLevel {
unsafe {
::core::mem::transmute(
<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get_const::<1usize, 3u8>(
::core::ptr::addr_of!((*this)._bitfield_1),
) as u8,
)
}
}
#[inline]
#[allow(unnecessary_transmutes)]
pub unsafe fn set_light_raw(this: *mut Self, val: AmbientLightLevel) {
unsafe {
let val: u8 = ::core::mem::transmute(val);
<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set_const::<1usize, 3u8>(
::core::ptr::addr_of_mut!((*this)._bitfield_1),
val as u64,
)
}
}
#[inline]
#[allow(unnecessary_transmutes)]
pub fn padding(&self) -> u8 {
unsafe { ::core::mem::transmute(self._bitfield_1.get_const::<4usize, 4u8>() as u8) }
}
#[inline]
#[allow(unnecessary_transmutes)]
pub fn set_padding(&mut self, val: u8) {
unsafe {
let val: u8 = ::core::mem::transmute(val);
self._bitfield_1.set_const::<4usize, 4u8>(val as u64)
}
}
#[inline]
#[allow(unnecessary_transmutes)]
pub unsafe fn padding_raw(this: *const Self) -> u8 {
unsafe {
::core::mem::transmute(
<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get_const::<4usize, 4u8>(
::core::ptr::addr_of!((*this)._bitfield_1),
) as u8,
)
}
}
#[inline]
#[allow(unnecessary_transmutes)]
pub unsafe fn set_padding_raw(this: *mut Self, val: u8) {
unsafe {
let val: u8 = ::core::mem::transmute(val);
<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set_const::<4usize, 4u8>(
::core::ptr::addr_of_mut!((*this)._bitfield_1),
val as u64,
)
}
}
#[inline]
#[allow(unnecessary_transmutes)]
pub fn new_bitfield_1(
is_invalid: bool,
light: AmbientLightLevel,
padding: u8,
) -> __BindgenBitfieldUnit<[u8; 1usize]> {
let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
__bindgen_bitfield_unit.set_const::<0usize, 1u8>({
let is_invalid: u8 = unsafe { ::core::mem::transmute(is_invalid) };
is_invalid as u64
});
__bindgen_bitfield_unit.set_const::<1usize, 3u8>({
let light: u8 = unsafe { ::core::mem::transmute(light) };
light as u64
});
__bindgen_bitfield_unit.set_const::<4usize, 4u8>({
let padding: u8 = unsafe { ::core::mem::transmute(padding) };
padding as u64
});
__bindgen_bitfield_unit
}
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.health_service_get_minute_history")]
pub unsafe extern "C" fn health_service_get_minute_history(
minute_data: *mut HealthMinuteData,
max_records: u32,
time_start: *mut time_t,
time_end: *mut time_t,
) -> u32 {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2412", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub const MeasurementSystem_MeasurementSystemUnknown: MeasurementSystem = 0;
pub const MeasurementSystem_MeasurementSystemMetric: MeasurementSystem = 1;
pub const MeasurementSystem_MeasurementSystemImperial: MeasurementSystem = 2;
pub type MeasurementSystem = ::core::ffi::c_uchar;
#[unsafe(naked)]
#[unsafe(link_section = ".text.health_service_get_measurement_system_for_display")]
pub unsafe extern "C" fn health_service_get_measurement_system_for_display(
metric: HealthMetric,
) -> MeasurementSystem {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2444", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub type DataLoggingSessionRef = *mut ::core::ffi::c_void;
pub const DataLoggingItemType_DATA_LOGGING_BYTE_ARRAY: DataLoggingItemType = 0;
pub const DataLoggingItemType_DATA_LOGGING_UINT: DataLoggingItemType = 2;
pub const DataLoggingItemType_DATA_LOGGING_INT: DataLoggingItemType = 3;
pub type DataLoggingItemType = ::core::ffi::c_uchar;
pub const DataLoggingResult_DATA_LOGGING_SUCCESS: DataLoggingResult = 0;
pub const DataLoggingResult_DATA_LOGGING_BUSY: DataLoggingResult = 1;
pub const DataLoggingResult_DATA_LOGGING_FULL: DataLoggingResult = 2;
pub const DataLoggingResult_DATA_LOGGING_NOT_FOUND: DataLoggingResult = 3;
pub const DataLoggingResult_DATA_LOGGING_CLOSED: DataLoggingResult = 4;
pub const DataLoggingResult_DATA_LOGGING_INVALID_PARAMS: DataLoggingResult = 5;
pub const DataLoggingResult_DATA_LOGGING_INTERNAL_ERR: DataLoggingResult = 6;
pub type DataLoggingResult = ::core::ffi::c_uchar;
#[unsafe(naked)]
#[unsafe(link_section = ".text.data_logging_create")]
pub unsafe extern "C" fn data_logging_create(
tag: u32,
item_type: DataLoggingItemType,
item_length: u16,
resume: bool,
) -> DataLoggingSessionRef {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =284", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.data_logging_finish")]
pub unsafe extern "C" fn data_logging_finish(logging_session: DataLoggingSessionRef) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =288", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.data_logging_log")]
pub unsafe extern "C" fn data_logging_log(
logging_session: DataLoggingSessionRef,
data: *const ::core::ffi::c_void,
num_items: u32,
) -> DataLoggingResult {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =292", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct Uuid {
pub byte0: u8,
pub byte1: u8,
pub byte2: u8,
pub byte3: u8,
pub byte4: u8,
pub byte5: u8,
pub byte6: u8,
pub byte7: u8,
pub byte8: u8,
pub byte9: u8,
pub byte10: u8,
pub byte11: u8,
pub byte12: u8,
pub byte13: u8,
pub byte14: u8,
pub byte15: u8,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of Uuid"][::core::mem::size_of::<Uuid>() - 16usize];
["Alignment of Uuid"][::core::mem::align_of::<Uuid>() - 1usize];
["Offset of field: Uuid::byte0"][::core::mem::offset_of!(Uuid, byte0) - 0usize];
["Offset of field: Uuid::byte1"][::core::mem::offset_of!(Uuid, byte1) - 1usize];
["Offset of field: Uuid::byte2"][::core::mem::offset_of!(Uuid, byte2) - 2usize];
["Offset of field: Uuid::byte3"][::core::mem::offset_of!(Uuid, byte3) - 3usize];
["Offset of field: Uuid::byte4"][::core::mem::offset_of!(Uuid, byte4) - 4usize];
["Offset of field: Uuid::byte5"][::core::mem::offset_of!(Uuid, byte5) - 5usize];
["Offset of field: Uuid::byte6"][::core::mem::offset_of!(Uuid, byte6) - 6usize];
["Offset of field: Uuid::byte7"][::core::mem::offset_of!(Uuid, byte7) - 7usize];
["Offset of field: Uuid::byte8"][::core::mem::offset_of!(Uuid, byte8) - 8usize];
["Offset of field: Uuid::byte9"][::core::mem::offset_of!(Uuid, byte9) - 9usize];
["Offset of field: Uuid::byte10"][::core::mem::offset_of!(Uuid, byte10) - 10usize];
["Offset of field: Uuid::byte11"][::core::mem::offset_of!(Uuid, byte11) - 11usize];
["Offset of field: Uuid::byte12"][::core::mem::offset_of!(Uuid, byte12) - 12usize];
["Offset of field: Uuid::byte13"][::core::mem::offset_of!(Uuid, byte13) - 13usize];
["Offset of field: Uuid::byte14"][::core::mem::offset_of!(Uuid, byte14) - 14usize];
["Offset of field: Uuid::byte15"][::core::mem::offset_of!(Uuid, byte15) - 15usize];
};
#[unsafe(naked)]
#[unsafe(link_section = ".text.uuid_equal")]
pub unsafe extern "C" fn uuid_equal(uu1: *const Uuid, uu2: *const Uuid) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1364", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.uuid_to_string")]
pub unsafe extern "C" fn uuid_to_string(uuid: *const Uuid, buffer: *mut ::core::ffi::c_char) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1368", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.app_log")]
pub unsafe extern "C" fn app_log(
log_level: u8,
src_filename: *const ::core::ffi::c_char,
src_line_number: ::core::ffi::c_int,
fmt: *const ::core::ffi::c_char,
args: ...
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =136", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub const AppLogLevel_APP_LOG_LEVEL_ERROR: AppLogLevel = 1;
pub const AppLogLevel_APP_LOG_LEVEL_WARNING: AppLogLevel = 50;
pub const AppLogLevel_APP_LOG_LEVEL_INFO: AppLogLevel = 100;
pub const AppLogLevel_APP_LOG_LEVEL_DEBUG: AppLogLevel = 200;
pub const AppLogLevel_APP_LOG_LEVEL_DEBUG_VERBOSE: AppLogLevel = 255;
pub type AppLogLevel = ::core::ffi::c_uchar;
pub const DictionaryResult_DICT_OK: DictionaryResult = 0;
pub const DictionaryResult_DICT_NOT_ENOUGH_STORAGE: DictionaryResult = 2;
pub const DictionaryResult_DICT_INVALID_ARGS: DictionaryResult = 4;
pub const DictionaryResult_DICT_INTERNAL_INCONSISTENCY: DictionaryResult = 8;
pub const DictionaryResult_DICT_MALLOC_FAILED: DictionaryResult = 16;
pub type DictionaryResult = ::core::ffi::c_uchar;
pub const TupleType_TUPLE_BYTE_ARRAY: TupleType = 0;
pub const TupleType_TUPLE_CSTRING: TupleType = 1;
pub const TupleType_TUPLE_UINT: TupleType = 2;
pub const TupleType_TUPLE_INT: TupleType = 3;
pub type TupleType = ::core::ffi::c_uchar;
#[repr(C, packed)]
pub struct Tuple {
pub key: u32,
pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
pub length: u16,
pub value: __IncompleteArrayField<Tuple__bindgen_ty_1>,
}
#[repr(C)]
pub struct Tuple__bindgen_ty_1 {
pub data: __BindgenUnionField<[u8; 0usize]>,
pub cstring: __BindgenUnionField<[::core::ffi::c_char; 0usize]>,
pub uint8: __BindgenUnionField<u8>,
pub uint16: __BindgenUnionField<u16>,
pub uint32: __BindgenUnionField<u32>,
pub int8: __BindgenUnionField<i8>,
pub int16: __BindgenUnionField<i16>,
pub int32: __BindgenUnionField<i32>,
pub bindgen_union_field: u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of Tuple__bindgen_ty_1"][::core::mem::size_of::<Tuple__bindgen_ty_1>() - 4usize];
["Alignment of Tuple__bindgen_ty_1"][::core::mem::align_of::<Tuple__bindgen_ty_1>() - 4usize];
["Offset of field: Tuple__bindgen_ty_1::data"]
[::core::mem::offset_of!(Tuple__bindgen_ty_1, data) - 0usize];
["Offset of field: Tuple__bindgen_ty_1::cstring"]
[::core::mem::offset_of!(Tuple__bindgen_ty_1, cstring) - 0usize];
["Offset of field: Tuple__bindgen_ty_1::uint8"]
[::core::mem::offset_of!(Tuple__bindgen_ty_1, uint8) - 0usize];
["Offset of field: Tuple__bindgen_ty_1::uint16"]
[::core::mem::offset_of!(Tuple__bindgen_ty_1, uint16) - 0usize];
["Offset of field: Tuple__bindgen_ty_1::uint32"]
[::core::mem::offset_of!(Tuple__bindgen_ty_1, uint32) - 0usize];
["Offset of field: Tuple__bindgen_ty_1::int8"]
[::core::mem::offset_of!(Tuple__bindgen_ty_1, int8) - 0usize];
["Offset of field: Tuple__bindgen_ty_1::int16"]
[::core::mem::offset_of!(Tuple__bindgen_ty_1, int16) - 0usize];
["Offset of field: Tuple__bindgen_ty_1::int32"]
[::core::mem::offset_of!(Tuple__bindgen_ty_1, int32) - 0usize];
};
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of Tuple"][::core::mem::size_of::<Tuple>() - 7usize];
["Alignment of Tuple"][::core::mem::align_of::<Tuple>() - 1usize];
["Offset of field: Tuple::key"][::core::mem::offset_of!(Tuple, key) - 0usize];
["Offset of field: Tuple::length"][::core::mem::offset_of!(Tuple, length) - 5usize];
["Offset of field: Tuple::value"][::core::mem::offset_of!(Tuple, value) - 7usize];
};
impl Tuple {
#[inline]
#[allow(unnecessary_transmutes)]
pub fn type_(&self) -> TupleType {
unsafe { ::core::mem::transmute(self._bitfield_1.get_const::<0usize, 8u8>() as u8) }
}
#[inline]
#[allow(unnecessary_transmutes)]
pub fn set_type(&mut self, val: TupleType) {
unsafe {
let val: u8 = ::core::mem::transmute(val);
self._bitfield_1.set_const::<0usize, 8u8>(val as u64)
}
}
#[inline]
#[allow(unnecessary_transmutes)]
pub unsafe fn type__raw(this: *const Self) -> TupleType {
unsafe {
::core::mem::transmute(
<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get_const::<0usize, 8u8>(
::core::ptr::addr_of!((*this)._bitfield_1),
) as u8,
)
}
}
#[inline]
#[allow(unnecessary_transmutes)]
pub unsafe fn set_type_raw(this: *mut Self, val: TupleType) {
unsafe {
let val: u8 = ::core::mem::transmute(val);
<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set_const::<0usize, 8u8>(
::core::ptr::addr_of_mut!((*this)._bitfield_1),
val as u64,
)
}
}
#[inline]
#[allow(unnecessary_transmutes)]
pub fn new_bitfield_1(type_: TupleType) -> __BindgenBitfieldUnit<[u8; 1usize]> {
let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
__bindgen_bitfield_unit.set_const::<0usize, 8u8>({
let type_: u8 = unsafe { ::core::mem::transmute(type_) };
type_ as u64
});
__bindgen_bitfield_unit
}
}
#[repr(C)]
#[derive(Debug)]
pub struct Dictionary {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct DictionaryIterator {
pub dictionary: *mut Dictionary,
pub end: *const ::core::ffi::c_void,
pub cursor: *mut Tuple,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of DictionaryIterator"][::core::mem::size_of::<DictionaryIterator>() - 12usize];
["Alignment of DictionaryIterator"][::core::mem::align_of::<DictionaryIterator>() - 4usize];
["Offset of field: DictionaryIterator::dictionary"]
[::core::mem::offset_of!(DictionaryIterator, dictionary) - 0usize];
["Offset of field: DictionaryIterator::end"]
[::core::mem::offset_of!(DictionaryIterator, end) - 4usize];
["Offset of field: DictionaryIterator::cursor"]
[::core::mem::offset_of!(DictionaryIterator, cursor) - 8usize];
};
#[unsafe(naked)]
#[unsafe(link_section = ".text.dict_calc_buffer_size")]
pub unsafe extern "C" fn dict_calc_buffer_size(tuple_count: u8, args: ...) -> u32 {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =296", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.dict_size")]
pub unsafe extern "C" fn dict_size(iter: *mut DictionaryIterator) -> u32 {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1256", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.dict_write_begin")]
pub unsafe extern "C" fn dict_write_begin(
iter: *mut DictionaryIterator,
buffer: *mut u8,
size: u16,
) -> DictionaryResult {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =336", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.dict_write_data")]
pub unsafe extern "C" fn dict_write_data(
iter: *mut DictionaryIterator,
key: u32,
data: *const u8,
size: u16,
) -> DictionaryResult {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =344", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.dict_write_cstring")]
pub unsafe extern "C" fn dict_write_cstring(
iter: *mut DictionaryIterator,
key: u32,
cstring: *const ::core::ffi::c_char,
) -> DictionaryResult {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =340", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.dict_write_int")]
pub unsafe extern "C" fn dict_write_int(
iter: *mut DictionaryIterator,
key: u32,
integer: *const ::core::ffi::c_void,
width_bytes: u8,
is_signed: bool,
) -> DictionaryResult {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =352", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.dict_write_uint8")]
pub unsafe extern "C" fn dict_write_uint8(
iter: *mut DictionaryIterator,
key: u32,
value: u8,
) -> DictionaryResult {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =380", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.dict_write_uint16")]
pub unsafe extern "C" fn dict_write_uint16(
iter: *mut DictionaryIterator,
key: u32,
value: u16,
) -> DictionaryResult {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =372", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.dict_write_uint32")]
pub unsafe extern "C" fn dict_write_uint32(
iter: *mut DictionaryIterator,
key: u32,
value: u32,
) -> DictionaryResult {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =376", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.dict_write_int8")]
pub unsafe extern "C" fn dict_write_int8(
iter: *mut DictionaryIterator,
key: u32,
value: i8,
) -> DictionaryResult {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =364", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.dict_write_int16")]
pub unsafe extern "C" fn dict_write_int16(
iter: *mut DictionaryIterator,
key: u32,
value: i16,
) -> DictionaryResult {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =356", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.dict_write_int32")]
pub unsafe extern "C" fn dict_write_int32(
iter: *mut DictionaryIterator,
key: u32,
value: i32,
) -> DictionaryResult {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =360", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.dict_write_end")]
pub unsafe extern "C" fn dict_write_end(iter: *mut DictionaryIterator) -> u32 {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =348", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.dict_read_begin_from_buffer")]
pub unsafe extern "C" fn dict_read_begin_from_buffer(
iter: *mut DictionaryIterator,
buffer: *const u8,
size: u16,
) -> *mut Tuple {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =312", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.dict_read_next")]
pub unsafe extern "C" fn dict_read_next(iter: *mut DictionaryIterator) -> *mut Tuple {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =320", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.dict_read_first")]
pub unsafe extern "C" fn dict_read_first(iter: *mut DictionaryIterator) -> *mut Tuple {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =316", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct Tuplet {
pub type_: TupleType,
pub key: u32,
pub __bindgen_anon_1: Tuplet__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union Tuplet__bindgen_ty_1 {
pub bytes: Tuplet__bindgen_ty_1__bindgen_ty_1,
pub cstring: Tuplet__bindgen_ty_1__bindgen_ty_2,
pub integer: Tuplet__bindgen_ty_1__bindgen_ty_3,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Tuplet__bindgen_ty_1__bindgen_ty_1 {
pub data: *const u8,
pub length: u16,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of Tuplet__bindgen_ty_1__bindgen_ty_1"]
[::core::mem::size_of::<Tuplet__bindgen_ty_1__bindgen_ty_1>() - 8usize];
["Alignment of Tuplet__bindgen_ty_1__bindgen_ty_1"]
[::core::mem::align_of::<Tuplet__bindgen_ty_1__bindgen_ty_1>() - 4usize];
["Offset of field: Tuplet__bindgen_ty_1__bindgen_ty_1::data"]
[::core::mem::offset_of!(Tuplet__bindgen_ty_1__bindgen_ty_1, data) - 0usize];
["Offset of field: Tuplet__bindgen_ty_1__bindgen_ty_1::length"]
[::core::mem::offset_of!(Tuplet__bindgen_ty_1__bindgen_ty_1, length) - 4usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Tuplet__bindgen_ty_1__bindgen_ty_2 {
pub data: *const ::core::ffi::c_char,
pub length: u16,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of Tuplet__bindgen_ty_1__bindgen_ty_2"]
[::core::mem::size_of::<Tuplet__bindgen_ty_1__bindgen_ty_2>() - 8usize];
["Alignment of Tuplet__bindgen_ty_1__bindgen_ty_2"]
[::core::mem::align_of::<Tuplet__bindgen_ty_1__bindgen_ty_2>() - 4usize];
["Offset of field: Tuplet__bindgen_ty_1__bindgen_ty_2::data"]
[::core::mem::offset_of!(Tuplet__bindgen_ty_1__bindgen_ty_2, data) - 0usize];
["Offset of field: Tuplet__bindgen_ty_1__bindgen_ty_2::length"]
[::core::mem::offset_of!(Tuplet__bindgen_ty_1__bindgen_ty_2, length) - 4usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Tuplet__bindgen_ty_1__bindgen_ty_3 {
pub storage: u32,
pub width: u16,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of Tuplet__bindgen_ty_1__bindgen_ty_3"]
[::core::mem::size_of::<Tuplet__bindgen_ty_1__bindgen_ty_3>() - 8usize];
["Alignment of Tuplet__bindgen_ty_1__bindgen_ty_3"]
[::core::mem::align_of::<Tuplet__bindgen_ty_1__bindgen_ty_3>() - 4usize];
["Offset of field: Tuplet__bindgen_ty_1__bindgen_ty_3::storage"]
[::core::mem::offset_of!(Tuplet__bindgen_ty_1__bindgen_ty_3, storage) - 0usize];
["Offset of field: Tuplet__bindgen_ty_1__bindgen_ty_3::width"]
[::core::mem::offset_of!(Tuplet__bindgen_ty_1__bindgen_ty_3, width) - 4usize];
};
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of Tuplet__bindgen_ty_1"][::core::mem::size_of::<Tuplet__bindgen_ty_1>() - 8usize];
["Alignment of Tuplet__bindgen_ty_1"][::core::mem::align_of::<Tuplet__bindgen_ty_1>() - 4usize];
["Offset of field: Tuplet__bindgen_ty_1::bytes"]
[::core::mem::offset_of!(Tuplet__bindgen_ty_1, bytes) - 0usize];
["Offset of field: Tuplet__bindgen_ty_1::cstring"]
[::core::mem::offset_of!(Tuplet__bindgen_ty_1, cstring) - 0usize];
["Offset of field: Tuplet__bindgen_ty_1::integer"]
[::core::mem::offset_of!(Tuplet__bindgen_ty_1, integer) - 0usize];
};
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of Tuplet"][::core::mem::size_of::<Tuplet>() - 16usize];
["Alignment of Tuplet"][::core::mem::align_of::<Tuplet>() - 4usize];
["Offset of field: Tuplet::type_"][::core::mem::offset_of!(Tuplet, type_) - 0usize];
["Offset of field: Tuplet::key"][::core::mem::offset_of!(Tuplet, key) - 4usize];
};
pub type DictionarySerializeCallback = ::core::option::Option<
unsafe extern "C" fn(data: *const u8, size: u16, context: *mut ::core::ffi::c_void),
>;
#[unsafe(naked)]
#[unsafe(link_section = ".text.dict_serialize_tuplets")]
pub unsafe extern "C" fn dict_serialize_tuplets(
callback: DictionarySerializeCallback,
context: *mut ::core::ffi::c_void,
tuplets: *const Tuplet,
tuplets_count: u8,
) -> DictionaryResult {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =324", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.dict_serialize_tuplets_to_buffer")]
pub unsafe extern "C" fn dict_serialize_tuplets_to_buffer(
tuplets: *const Tuplet,
tuplets_count: u8,
buffer: *mut u8,
size_in_out: *mut u32,
) -> DictionaryResult {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1240", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.dict_serialize_tuplets_to_buffer_with_iter")]
pub unsafe extern "C" fn dict_serialize_tuplets_to_buffer_with_iter(
iter: *mut DictionaryIterator,
tuplets: *const Tuplet,
tuplets_count: u8,
buffer: *mut u8,
size_in_out: *mut u32,
) -> DictionaryResult {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =332", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.dict_write_tuplet")]
pub unsafe extern "C" fn dict_write_tuplet(
iter: *mut DictionaryIterator,
tuplet: *const Tuplet,
) -> DictionaryResult {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =368", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.dict_calc_buffer_size_from_tuplets")]
pub unsafe extern "C" fn dict_calc_buffer_size_from_tuplets(
tuplets: *const Tuplet,
tuplets_count: u8,
) -> u32 {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =300", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub type DictionaryKeyUpdatedCallback = ::core::option::Option<
unsafe extern "C" fn(
key: u32,
new_tuple: *const Tuple,
old_tuple: *const Tuple,
context: *mut ::core::ffi::c_void,
),
>;
#[unsafe(naked)]
#[unsafe(link_section = ".text.dict_merge")]
pub unsafe extern "C" fn dict_merge(
dest: *mut DictionaryIterator,
dest_max_size_in_out: *mut u32,
source: *mut DictionaryIterator,
update_existing_keys_only: bool,
key_callback: DictionaryKeyUpdatedCallback,
context: *mut ::core::ffi::c_void,
) -> DictionaryResult {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =308", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.dict_find")]
pub unsafe extern "C" fn dict_find(iter: *const DictionaryIterator, key: u32) -> *mut Tuple {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =304", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[repr(C)]
#[derive(Debug)]
pub struct DictationSession {
_unused: [u8; 0],
}
pub const DictationSessionStatus_DictationSessionStatusSuccess: DictationSessionStatus = 0;
pub const DictationSessionStatus_DictationSessionStatusFailureTranscriptionRejected:
DictationSessionStatus = 1;
pub const DictationSessionStatus_DictationSessionStatusFailureTranscriptionRejectedWithError:
DictationSessionStatus = 2;
pub const DictationSessionStatus_DictationSessionStatusFailureSystemAborted:
DictationSessionStatus = 3;
pub const DictationSessionStatus_DictationSessionStatusFailureNoSpeechDetected:
DictationSessionStatus = 4;
pub const DictationSessionStatus_DictationSessionStatusFailureConnectivityError:
DictationSessionStatus = 5;
pub const DictationSessionStatus_DictationSessionStatusFailureDisabled: DictationSessionStatus = 6;
pub const DictationSessionStatus_DictationSessionStatusFailureInternalError:
DictationSessionStatus = 7;
pub const DictationSessionStatus_DictationSessionStatusFailureRecognizerError:
DictationSessionStatus = 8;
pub type DictationSessionStatus = ::core::ffi::c_uchar;
pub type DictationSessionStatusCallback = ::core::option::Option<
unsafe extern "C" fn(
session: *mut DictationSession,
status: DictationSessionStatus,
transcription: *mut ::core::ffi::c_char,
context: *mut ::core::ffi::c_void,
),
>;
#[unsafe(naked)]
#[unsafe(link_section = ".text.dictation_session_create")]
pub unsafe extern "C" fn dictation_session_create(
buffer_size: u32,
callback: DictationSessionStatusCallback,
callback_context: *mut ::core::ffi::c_void,
) -> *mut DictationSession {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2200", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.dictation_session_destroy")]
pub unsafe extern "C" fn dictation_session_destroy(session: *mut DictationSession) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2204", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.dictation_session_start")]
pub unsafe extern "C" fn dictation_session_start(
session: *mut DictationSession,
) -> DictationSessionStatus {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2212", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.dictation_session_stop")]
pub unsafe extern "C" fn dictation_session_stop(
session: *mut DictationSession,
) -> DictationSessionStatus {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2216", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.dictation_session_enable_confirmation")]
pub unsafe extern "C" fn dictation_session_enable_confirmation(
session: *mut DictationSession,
is_enabled: bool,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2208", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.dictation_session_enable_error_dialogs")]
pub unsafe extern "C" fn dictation_session_enable_error_dialogs(
session: *mut DictationSession,
is_enabled: bool,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2280", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub const AppMessageResult_APP_MSG_OK: AppMessageResult = 0;
pub const AppMessageResult_APP_MSG_SEND_TIMEOUT: AppMessageResult = 2;
pub const AppMessageResult_APP_MSG_SEND_REJECTED: AppMessageResult = 4;
pub const AppMessageResult_APP_MSG_NOT_CONNECTED: AppMessageResult = 8;
pub const AppMessageResult_APP_MSG_APP_NOT_RUNNING: AppMessageResult = 16;
pub const AppMessageResult_APP_MSG_INVALID_ARGS: AppMessageResult = 32;
pub const AppMessageResult_APP_MSG_BUSY: AppMessageResult = 64;
pub const AppMessageResult_APP_MSG_BUFFER_OVERFLOW: AppMessageResult = 128;
pub const AppMessageResult_APP_MSG_ALREADY_RELEASED: AppMessageResult = 512;
pub const AppMessageResult_APP_MSG_CALLBACK_ALREADY_REGISTERED: AppMessageResult = 1024;
pub const AppMessageResult_APP_MSG_CALLBACK_NOT_REGISTERED: AppMessageResult = 2048;
pub const AppMessageResult_APP_MSG_OUT_OF_MEMORY: AppMessageResult = 4096;
pub const AppMessageResult_APP_MSG_CLOSED: AppMessageResult = 8192;
pub const AppMessageResult_APP_MSG_INTERNAL_ERROR: AppMessageResult = 16384;
pub const AppMessageResult_APP_MSG_INVALID_STATE: AppMessageResult = 32768;
pub type AppMessageResult = ::core::ffi::c_ushort;
#[unsafe(naked)]
#[unsafe(link_section = ".text.app_message_open")]
pub unsafe extern "C" fn app_message_open(
size_inbound: u32,
size_outbound: u32,
) -> AppMessageResult {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =144", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.app_message_deregister_callbacks")]
pub unsafe extern "C" fn app_message_deregister_callbacks() {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =140", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub type AppMessageInboxReceived = ::core::option::Option<
unsafe extern "C" fn(iterator: *mut DictionaryIterator, context: *mut ::core::ffi::c_void),
>;
pub type AppMessageInboxDropped = ::core::option::Option<
unsafe extern "C" fn(reason: AppMessageResult, context: *mut ::core::ffi::c_void),
>;
pub type AppMessageOutboxSent = ::core::option::Option<
unsafe extern "C" fn(iterator: *mut DictionaryIterator, context: *mut ::core::ffi::c_void),
>;
pub type AppMessageOutboxFailed = ::core::option::Option<
unsafe extern "C" fn(
iterator: *mut DictionaryIterator,
reason: AppMessageResult,
context: *mut ::core::ffi::c_void,
),
>;
#[unsafe(naked)]
#[unsafe(link_section = ".text.app_message_get_context")]
pub unsafe extern "C" fn app_message_get_context() -> *mut ::core::ffi::c_void {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1172", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.app_message_set_context")]
pub unsafe extern "C" fn app_message_set_context(
context: *mut ::core::ffi::c_void,
) -> *mut ::core::ffi::c_void {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1208", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.app_message_register_inbox_received")]
pub unsafe extern "C" fn app_message_register_inbox_received(
received_callback: AppMessageInboxReceived,
) -> AppMessageInboxReceived {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1196", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.app_message_register_inbox_dropped")]
pub unsafe extern "C" fn app_message_register_inbox_dropped(
dropped_callback: AppMessageInboxDropped,
) -> AppMessageInboxDropped {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1192", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.app_message_register_outbox_sent")]
pub unsafe extern "C" fn app_message_register_outbox_sent(
sent_callback: AppMessageOutboxSent,
) -> AppMessageOutboxSent {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1204", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.app_message_register_outbox_failed")]
pub unsafe extern "C" fn app_message_register_outbox_failed(
failed_callback: AppMessageOutboxFailed,
) -> AppMessageOutboxFailed {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1200", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.app_message_inbox_size_maximum")]
pub unsafe extern "C" fn app_message_inbox_size_maximum() -> u32 {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1176", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.app_message_outbox_size_maximum")]
pub unsafe extern "C" fn app_message_outbox_size_maximum() -> u32 {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1188", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.app_message_outbox_begin")]
pub unsafe extern "C" fn app_message_outbox_begin(
iterator: *mut *mut DictionaryIterator,
) -> AppMessageResult {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1180", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.app_message_outbox_send")]
pub unsafe extern "C" fn app_message_outbox_send() -> AppMessageResult {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1184", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub type AppSyncTupleChangedCallback = ::core::option::Option<
unsafe extern "C" fn(
key: u32,
new_tuple: *const Tuple,
old_tuple: *const Tuple,
context: *mut ::core::ffi::c_void,
),
>;
pub type AppSyncErrorCallback = ::core::option::Option<
unsafe extern "C" fn(
dict_error: DictionaryResult,
app_message_error: AppMessageResult,
context: *mut ::core::ffi::c_void,
),
>;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct AppSync {
pub current_iter: DictionaryIterator,
pub __bindgen_anon_1: AppSync__bindgen_ty_1,
pub buffer_size: u16,
pub callback: AppSync__bindgen_ty_2,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union AppSync__bindgen_ty_1 {
pub current: *mut Dictionary,
pub buffer: *mut u8,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of AppSync__bindgen_ty_1"][::core::mem::size_of::<AppSync__bindgen_ty_1>() - 4usize];
["Alignment of AppSync__bindgen_ty_1"]
[::core::mem::align_of::<AppSync__bindgen_ty_1>() - 4usize];
["Offset of field: AppSync__bindgen_ty_1::current"]
[::core::mem::offset_of!(AppSync__bindgen_ty_1, current) - 0usize];
["Offset of field: AppSync__bindgen_ty_1::buffer"]
[::core::mem::offset_of!(AppSync__bindgen_ty_1, buffer) - 0usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AppSync__bindgen_ty_2 {
pub value_changed: AppSyncTupleChangedCallback,
pub error: AppSyncErrorCallback,
pub context: *mut ::core::ffi::c_void,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of AppSync__bindgen_ty_2"][::core::mem::size_of::<AppSync__bindgen_ty_2>() - 12usize];
["Alignment of AppSync__bindgen_ty_2"]
[::core::mem::align_of::<AppSync__bindgen_ty_2>() - 4usize];
["Offset of field: AppSync__bindgen_ty_2::value_changed"]
[::core::mem::offset_of!(AppSync__bindgen_ty_2, value_changed) - 0usize];
["Offset of field: AppSync__bindgen_ty_2::error"]
[::core::mem::offset_of!(AppSync__bindgen_ty_2, error) - 4usize];
["Offset of field: AppSync__bindgen_ty_2::context"]
[::core::mem::offset_of!(AppSync__bindgen_ty_2, context) - 8usize];
};
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of AppSync"][::core::mem::size_of::<AppSync>() - 32usize];
["Alignment of AppSync"][::core::mem::align_of::<AppSync>() - 4usize];
["Offset of field: AppSync::current_iter"]
[::core::mem::offset_of!(AppSync, current_iter) - 0usize];
["Offset of field: AppSync::buffer_size"]
[::core::mem::offset_of!(AppSync, buffer_size) - 16usize];
["Offset of field: AppSync::callback"][::core::mem::offset_of!(AppSync, callback) - 20usize];
};
#[unsafe(naked)]
#[unsafe(link_section = ".text.app_sync_init")]
pub unsafe extern "C" fn app_sync_init(
s: *mut AppSync,
buffer: *mut u8,
buffer_size: u16,
keys_and_initial_values: *const Tuplet,
count: u8,
tuple_changed_callback: AppSyncTupleChangedCallback,
error_callback: AppSyncErrorCallback,
context: *mut ::core::ffi::c_void,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =180", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.app_sync_deinit")]
pub unsafe extern "C" fn app_sync_deinit(s: *mut AppSync) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =172", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.app_sync_set")]
pub unsafe extern "C" fn app_sync_set(
s: *mut AppSync,
keys_and_values_to_update: *const Tuplet,
count: u8,
) -> AppMessageResult {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =184", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.app_sync_get")]
pub unsafe extern "C" fn app_sync_get(s: *const AppSync, key: u32) -> *const Tuple {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =176", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub type ResHandle = *mut ::core::ffi::c_void;
#[unsafe(naked)]
#[unsafe(link_section = ".text.resource_get_handle")]
pub unsafe extern "C" fn resource_get_handle(resource_id: u32) -> ResHandle {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =824", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.resource_size")]
pub unsafe extern "C" fn resource_size(h: ResHandle) -> usize {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =836", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.resource_load")]
pub unsafe extern "C" fn resource_load(h: ResHandle, buffer: *mut u8, max_length: usize) -> usize {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =828", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.resource_load_byte_range")]
pub unsafe extern "C" fn resource_load_byte_range(
h: ResHandle,
start_offset: u32,
buffer: *mut u8,
num_bytes: usize,
) -> usize {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =832", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.app_event_loop")]
pub unsafe extern "C" fn app_event_loop() {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =124", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ModdableCreationRecord {
pub recordSize: u32,
pub stack: u32,
pub slot: u32,
pub chunk: u32,
pub flags: u32,
pub fxBuildFFI: *mut ::core::ffi::c_void,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of ModdableCreationRecord"][::core::mem::size_of::<ModdableCreationRecord>() - 24usize];
["Alignment of ModdableCreationRecord"]
[::core::mem::align_of::<ModdableCreationRecord>() - 4usize];
["Offset of field: ModdableCreationRecord::recordSize"]
[::core::mem::offset_of!(ModdableCreationRecord, recordSize) - 0usize];
["Offset of field: ModdableCreationRecord::stack"]
[::core::mem::offset_of!(ModdableCreationRecord, stack) - 4usize];
["Offset of field: ModdableCreationRecord::slot"]
[::core::mem::offset_of!(ModdableCreationRecord, slot) - 8usize];
["Offset of field: ModdableCreationRecord::chunk"]
[::core::mem::offset_of!(ModdableCreationRecord, chunk) - 12usize];
["Offset of field: ModdableCreationRecord::flags"]
[::core::mem::offset_of!(ModdableCreationRecord, flags) - 16usize];
["Offset of field: ModdableCreationRecord::fxBuildFFI"]
[::core::mem::offset_of!(ModdableCreationRecord, fxBuildFFI) - 20usize];
};
#[unsafe(naked)]
#[unsafe(link_section = ".text.moddable_createMachine")]
pub unsafe extern "C" fn moddable_createMachine(creation: *mut ModdableCreationRecord) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2528", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub const AppWorkerResult_APP_WORKER_RESULT_SUCCESS: AppWorkerResult = 0;
pub const AppWorkerResult_APP_WORKER_RESULT_NO_WORKER: AppWorkerResult = 1;
pub const AppWorkerResult_APP_WORKER_RESULT_DIFFERENT_APP: AppWorkerResult = 2;
pub const AppWorkerResult_APP_WORKER_RESULT_NOT_RUNNING: AppWorkerResult = 3;
pub const AppWorkerResult_APP_WORKER_RESULT_ALREADY_RUNNING: AppWorkerResult = 4;
pub const AppWorkerResult_APP_WORKER_RESULT_ASKING_CONFIRMATION: AppWorkerResult = 5;
pub type AppWorkerResult = ::core::ffi::c_uchar;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AppWorkerMessage {
pub data0: u16,
pub data1: u16,
pub data2: u16,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of AppWorkerMessage"][::core::mem::size_of::<AppWorkerMessage>() - 6usize];
["Alignment of AppWorkerMessage"][::core::mem::align_of::<AppWorkerMessage>() - 2usize];
["Offset of field: AppWorkerMessage::data0"]
[::core::mem::offset_of!(AppWorkerMessage, data0) - 0usize];
["Offset of field: AppWorkerMessage::data1"]
[::core::mem::offset_of!(AppWorkerMessage, data1) - 2usize];
["Offset of field: AppWorkerMessage::data2"]
[::core::mem::offset_of!(AppWorkerMessage, data2) - 4usize];
};
#[unsafe(naked)]
#[unsafe(link_section = ".text.app_worker_is_running")]
pub unsafe extern "C" fn app_worker_is_running() -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1308", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.app_worker_launch")]
pub unsafe extern "C" fn app_worker_launch() -> AppWorkerResult {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1316", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.app_worker_kill")]
pub unsafe extern "C" fn app_worker_kill() -> AppWorkerResult {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1312", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub type AppWorkerMessageHandler =
::core::option::Option<unsafe extern "C" fn(type_: u16, data: *mut AppWorkerMessage)>;
#[unsafe(naked)]
#[unsafe(link_section = ".text.app_worker_message_subscribe")]
pub unsafe extern "C" fn app_worker_message_subscribe(handler: AppWorkerMessageHandler) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1320", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.app_worker_message_unsubscribe")]
pub unsafe extern "C" fn app_worker_message_unsubscribe() -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1324", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.app_worker_send_message")]
pub unsafe extern "C" fn app_worker_send_message(type_: u8, data: *mut AppWorkerMessage) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1328", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub const SniffInterval_SNIFF_INTERVAL_NORMAL: SniffInterval = 0;
pub const SniffInterval_SNIFF_INTERVAL_REDUCED: SniffInterval = 1;
pub type SniffInterval = ::core::ffi::c_uchar;
#[unsafe(naked)]
#[unsafe(link_section = ".text.app_comm_set_sniff_interval")]
pub unsafe extern "C" fn app_comm_set_sniff_interval(interval: SniffInterval) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =120", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.app_comm_get_sniff_interval")]
pub unsafe extern "C" fn app_comm_get_sniff_interval() -> SniffInterval {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =116", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.psleep")]
pub unsafe extern "C" fn psleep(millis: ::core::ffi::c_int) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =816", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[repr(C)]
#[derive(Debug)]
pub struct AppTimer {
_unused: [u8; 0],
}
pub type AppTimerCallback =
::core::option::Option<unsafe extern "C" fn(data: *mut ::core::ffi::c_void)>;
#[unsafe(naked)]
#[unsafe(link_section = ".text.app_timer_register")]
pub unsafe extern "C" fn app_timer_register(
timeout_ms: u32,
callback: AppTimerCallback,
callback_data: *mut ::core::ffi::c_void,
) -> *mut AppTimer {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =192", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.app_timer_reschedule")]
pub unsafe extern "C" fn app_timer_reschedule(
timer_handle: *mut AppTimer,
new_timeout_ms: u32,
) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =196", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.app_timer_cancel")]
pub unsafe extern "C" fn app_timer_cancel(timer_handle: *mut AppTimer) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =188", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.heap_bytes_free")]
pub unsafe extern "C" fn heap_bytes_free() -> usize {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1340", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.heap_bytes_used")]
pub unsafe extern "C" fn heap_bytes_used() -> usize {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1344", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.memory_cache_flush")]
pub unsafe extern "C" fn memory_cache_flush(start: *mut ::core::ffi::c_void, size: usize) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2504", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub const StatusCode_S_SUCCESS: StatusCode = 0;
pub const StatusCode_E_ERROR: StatusCode = -1;
pub const StatusCode_E_UNKNOWN: StatusCode = -2;
pub const StatusCode_E_INTERNAL: StatusCode = -3;
pub const StatusCode_E_INVALID_ARGUMENT: StatusCode = -4;
pub const StatusCode_E_OUT_OF_MEMORY: StatusCode = -5;
pub const StatusCode_E_OUT_OF_STORAGE: StatusCode = -6;
pub const StatusCode_E_OUT_OF_RESOURCES: StatusCode = -7;
pub const StatusCode_E_RANGE: StatusCode = -8;
pub const StatusCode_E_DOES_NOT_EXIST: StatusCode = -9;
pub const StatusCode_E_INVALID_OPERATION: StatusCode = -10;
pub const StatusCode_E_BUSY: StatusCode = -11;
pub const StatusCode_E_AGAIN: StatusCode = -12;
pub const StatusCode_S_TRUE: StatusCode = 1;
pub const StatusCode_S_FALSE: StatusCode = 0;
pub const StatusCode_S_NO_MORE_ITEMS: StatusCode = 2;
pub const StatusCode_S_NO_ACTION_REQUIRED: StatusCode = 3;
pub type StatusCode = ::core::ffi::c_schar;
pub type status_t = i32;
#[unsafe(naked)]
#[unsafe(link_section = ".text.persist_exists")]
pub unsafe extern "C" fn persist_exists(key: u32) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =752", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.persist_get_max_size")]
pub unsafe extern "C" fn persist_get_max_size() -> usize {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2604", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.persist_get_size")]
pub unsafe extern "C" fn persist_get_size(key: u32) -> ::core::ffi::c_int {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =756", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.persist_read_bool")]
pub unsafe extern "C" fn persist_read_bool(key: u32) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =760", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.persist_read_int")]
pub unsafe extern "C" fn persist_read_int(key: u32) -> i32 {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =768", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.persist_read_data")]
pub unsafe extern "C" fn persist_read_data(
key: u32,
buffer: *mut ::core::ffi::c_void,
buffer_size: usize,
) -> ::core::ffi::c_int {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1244", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.persist_read_string")]
pub unsafe extern "C" fn persist_read_string(
key: u32,
buffer: *mut ::core::ffi::c_char,
buffer_size: usize,
) -> ::core::ffi::c_int {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1248", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.persist_write_bool")]
pub unsafe extern "C" fn persist_write_bool(key: u32, value: bool) -> status_t {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =776", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.persist_write_int")]
pub unsafe extern "C" fn persist_write_int(key: u32, value: i32) -> status_t {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =784", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.persist_write_data")]
pub unsafe extern "C" fn persist_write_data(
key: u32,
data: *const ::core::ffi::c_void,
size: usize,
) -> ::core::ffi::c_int {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1252", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.persist_write_string")]
pub unsafe extern "C" fn persist_write_string(
key: u32,
cstring: *const ::core::ffi::c_char,
) -> ::core::ffi::c_int {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =788", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.persist_delete")]
pub unsafe extern "C" fn persist_delete(key: u32) -> status_t {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =748", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub type WakeupId = i32;
pub type WakeupHandler =
::core::option::Option<unsafe extern "C" fn(wakeup_id: WakeupId, cookie: i32)>;
#[unsafe(naked)]
#[unsafe(link_section = ".text.wakeup_service_subscribe")]
pub unsafe extern "C" fn wakeup_service_subscribe(handler: WakeupHandler) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1432", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.wakeup_schedule")]
pub unsafe extern "C" fn wakeup_schedule(
timestamp: time_t,
cookie: i32,
notify_if_missed: bool,
) -> WakeupId {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1428", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.wakeup_cancel")]
pub unsafe extern "C" fn wakeup_cancel(wakeup_id: WakeupId) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1412", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.wakeup_cancel_all")]
pub unsafe extern "C" fn wakeup_cancel_all() {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1416", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.wakeup_get_launch_event")]
pub unsafe extern "C" fn wakeup_get_launch_event(
wakeup_id: *mut WakeupId,
cookie: *mut i32,
) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1420", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.wakeup_query")]
pub unsafe extern "C" fn wakeup_query(wakeup_id: WakeupId, timestamp: *mut time_t) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1424", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub const AppLaunchReason_APP_LAUNCH_SYSTEM: AppLaunchReason = 0;
pub const AppLaunchReason_APP_LAUNCH_USER: AppLaunchReason = 1;
pub const AppLaunchReason_APP_LAUNCH_PHONE: AppLaunchReason = 2;
pub const AppLaunchReason_APP_LAUNCH_WAKEUP: AppLaunchReason = 3;
pub const AppLaunchReason_APP_LAUNCH_WORKER: AppLaunchReason = 4;
pub const AppLaunchReason_APP_LAUNCH_QUICK_LAUNCH: AppLaunchReason = 5;
pub const AppLaunchReason_APP_LAUNCH_TIMELINE_ACTION: AppLaunchReason = 6;
pub const AppLaunchReason_APP_LAUNCH_SMARTSTRAP: AppLaunchReason = 7;
pub type AppLaunchReason = ::core::ffi::c_uchar;
pub const AppQuickLaunchAction_APP_QUICK_LAUNCH_ACTION_NONE: AppQuickLaunchAction = 0;
pub const AppQuickLaunchAction_APP_QUICK_LAUNCH_ACTION_HOLD: AppQuickLaunchAction = 1;
pub const AppQuickLaunchAction_APP_QUICK_LAUNCH_ACTION_TAP: AppQuickLaunchAction = 2;
pub const AppQuickLaunchAction_APP_QUICK_LAUNCH_ACTION_COMBO: AppQuickLaunchAction = 3;
pub type AppQuickLaunchAction = ::core::ffi::c_uchar;
#[unsafe(naked)]
#[unsafe(link_section = ".text.launch_reason")]
pub unsafe extern "C" fn launch_reason() -> AppLaunchReason {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1408", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.launch_get_args")]
pub unsafe extern "C" fn launch_get_args() -> u32 {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1752", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.launch_button")]
pub unsafe extern "C" fn launch_button() -> ButtonId {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2620", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.launch_get_quick_launch_action")]
pub unsafe extern "C" fn launch_get_quick_launch_action() -> AppQuickLaunchAction {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2624", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub const AppExitReason_APP_EXIT_NOT_SPECIFIED: AppExitReason = 0;
pub const AppExitReason_APP_EXIT_ACTION_PERFORMED_SUCCESSFULLY: AppExitReason = 1;
pub const AppExitReason_NUM_EXIT_REASONS: AppExitReason = 2;
pub type AppExitReason = ::core::ffi::c_uchar;
#[unsafe(naked)]
#[unsafe(link_section = ".text.exit_reason_set")]
pub unsafe extern "C" fn exit_reason_set(exit_reason: AppExitReason) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2464", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub type PublishedId = u32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AppGlanceSliceLayout {
pub icon: PublishedId,
pub subtitle_template_string: *const ::core::ffi::c_char,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of AppGlanceSliceLayout"][::core::mem::size_of::<AppGlanceSliceLayout>() - 8usize];
["Alignment of AppGlanceSliceLayout"][::core::mem::align_of::<AppGlanceSliceLayout>() - 4usize];
["Offset of field: AppGlanceSliceLayout::icon"]
[::core::mem::offset_of!(AppGlanceSliceLayout, icon) - 0usize];
["Offset of field: AppGlanceSliceLayout::subtitle_template_string"]
[::core::mem::offset_of!(AppGlanceSliceLayout, subtitle_template_string) - 4usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AppGlanceSlice {
pub layout: AppGlanceSliceLayout,
pub expiration_time: time_t,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of AppGlanceSlice"][::core::mem::size_of::<AppGlanceSlice>() - 12usize];
["Alignment of AppGlanceSlice"][::core::mem::align_of::<AppGlanceSlice>() - 4usize];
["Offset of field: AppGlanceSlice::layout"]
[::core::mem::offset_of!(AppGlanceSlice, layout) - 0usize];
["Offset of field: AppGlanceSlice::expiration_time"]
[::core::mem::offset_of!(AppGlanceSlice, expiration_time) - 8usize];
};
pub const AppGlanceResult_APP_GLANCE_RESULT_SUCCESS: AppGlanceResult = 0;
pub const AppGlanceResult_APP_GLANCE_RESULT_INVALID_TEMPLATE_STRING: AppGlanceResult = 1;
pub const AppGlanceResult_APP_GLANCE_RESULT_TEMPLATE_STRING_TOO_LONG: AppGlanceResult = 2;
pub const AppGlanceResult_APP_GLANCE_RESULT_INVALID_ICON: AppGlanceResult = 4;
pub const AppGlanceResult_APP_GLANCE_RESULT_SLICE_CAPACITY_EXCEEDED: AppGlanceResult = 8;
pub const AppGlanceResult_APP_GLANCE_RESULT_EXPIRES_IN_THE_PAST: AppGlanceResult = 16;
pub const AppGlanceResult_APP_GLANCE_RESULT_INVALID_SESSION: AppGlanceResult = 32;
pub type AppGlanceResult = ::core::ffi::c_uchar;
#[repr(C)]
#[derive(Debug)]
pub struct AppGlanceReloadSession {
_unused: [u8; 0],
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.app_glance_add_slice")]
pub unsafe extern "C" fn app_glance_add_slice(
session: *mut AppGlanceReloadSession,
slice: AppGlanceSlice,
) -> AppGlanceResult {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2456", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub type AppGlanceReloadCallback = ::core::option::Option<
unsafe extern "C" fn(
session: *mut AppGlanceReloadSession,
limit: usize,
context: *mut ::core::ffi::c_void,
),
>;
#[unsafe(naked)]
#[unsafe(link_section = ".text.app_glance_reload")]
pub unsafe extern "C" fn app_glance_reload(
callback: AppGlanceReloadCallback,
context: *mut ::core::ffi::c_void,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2460", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union GColor8 {
pub argb: u8,
pub __bindgen_anon_1: GColor8__bindgen_ty_1,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct GColor8__bindgen_ty_1 {
pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of GColor8__bindgen_ty_1"][::core::mem::size_of::<GColor8__bindgen_ty_1>() - 1usize];
["Alignment of GColor8__bindgen_ty_1"]
[::core::mem::align_of::<GColor8__bindgen_ty_1>() - 1usize];
};
impl GColor8__bindgen_ty_1 {
#[inline]
#[allow(unnecessary_transmutes)]
pub fn b(&self) -> u8 {
unsafe { ::core::mem::transmute(self._bitfield_1.get_const::<0usize, 2u8>() as u8) }
}
#[inline]
#[allow(unnecessary_transmutes)]
pub fn set_b(&mut self, val: u8) {
unsafe {
let val: u8 = ::core::mem::transmute(val);
self._bitfield_1.set_const::<0usize, 2u8>(val as u64)
}
}
#[inline]
#[allow(unnecessary_transmutes)]
pub unsafe fn b_raw(this: *const Self) -> u8 {
unsafe {
::core::mem::transmute(
<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get_const::<0usize, 2u8>(
::core::ptr::addr_of!((*this)._bitfield_1),
) as u8,
)
}
}
#[inline]
#[allow(unnecessary_transmutes)]
pub unsafe fn set_b_raw(this: *mut Self, val: u8) {
unsafe {
let val: u8 = ::core::mem::transmute(val);
<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set_const::<0usize, 2u8>(
::core::ptr::addr_of_mut!((*this)._bitfield_1),
val as u64,
)
}
}
#[inline]
#[allow(unnecessary_transmutes)]
pub fn g(&self) -> u8 {
unsafe { ::core::mem::transmute(self._bitfield_1.get_const::<2usize, 2u8>() as u8) }
}
#[inline]
#[allow(unnecessary_transmutes)]
pub fn set_g(&mut self, val: u8) {
unsafe {
let val: u8 = ::core::mem::transmute(val);
self._bitfield_1.set_const::<2usize, 2u8>(val as u64)
}
}
#[inline]
#[allow(unnecessary_transmutes)]
pub unsafe fn g_raw(this: *const Self) -> u8 {
unsafe {
::core::mem::transmute(
<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get_const::<2usize, 2u8>(
::core::ptr::addr_of!((*this)._bitfield_1),
) as u8,
)
}
}
#[inline]
#[allow(unnecessary_transmutes)]
pub unsafe fn set_g_raw(this: *mut Self, val: u8) {
unsafe {
let val: u8 = ::core::mem::transmute(val);
<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set_const::<2usize, 2u8>(
::core::ptr::addr_of_mut!((*this)._bitfield_1),
val as u64,
)
}
}
#[inline]
#[allow(unnecessary_transmutes)]
pub fn r(&self) -> u8 {
unsafe { ::core::mem::transmute(self._bitfield_1.get_const::<4usize, 2u8>() as u8) }
}
#[inline]
#[allow(unnecessary_transmutes)]
pub fn set_r(&mut self, val: u8) {
unsafe {
let val: u8 = ::core::mem::transmute(val);
self._bitfield_1.set_const::<4usize, 2u8>(val as u64)
}
}
#[inline]
#[allow(unnecessary_transmutes)]
pub unsafe fn r_raw(this: *const Self) -> u8 {
unsafe {
::core::mem::transmute(
<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get_const::<4usize, 2u8>(
::core::ptr::addr_of!((*this)._bitfield_1),
) as u8,
)
}
}
#[inline]
#[allow(unnecessary_transmutes)]
pub unsafe fn set_r_raw(this: *mut Self, val: u8) {
unsafe {
let val: u8 = ::core::mem::transmute(val);
<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set_const::<4usize, 2u8>(
::core::ptr::addr_of_mut!((*this)._bitfield_1),
val as u64,
)
}
}
#[inline]
#[allow(unnecessary_transmutes)]
pub fn a(&self) -> u8 {
unsafe { ::core::mem::transmute(self._bitfield_1.get_const::<6usize, 2u8>() as u8) }
}
#[inline]
#[allow(unnecessary_transmutes)]
pub fn set_a(&mut self, val: u8) {
unsafe {
let val: u8 = ::core::mem::transmute(val);
self._bitfield_1.set_const::<6usize, 2u8>(val as u64)
}
}
#[inline]
#[allow(unnecessary_transmutes)]
pub unsafe fn a_raw(this: *const Self) -> u8 {
unsafe {
::core::mem::transmute(
<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get_const::<6usize, 2u8>(
::core::ptr::addr_of!((*this)._bitfield_1),
) as u8,
)
}
}
#[inline]
#[allow(unnecessary_transmutes)]
pub unsafe fn set_a_raw(this: *mut Self, val: u8) {
unsafe {
let val: u8 = ::core::mem::transmute(val);
<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set_const::<6usize, 2u8>(
::core::ptr::addr_of_mut!((*this)._bitfield_1),
val as u64,
)
}
}
#[inline]
#[allow(unnecessary_transmutes)]
pub fn new_bitfield_1(b: u8, g: u8, r: u8, a: u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
__bindgen_bitfield_unit.set_const::<0usize, 2u8>({
let b: u8 = unsafe { ::core::mem::transmute(b) };
b as u64
});
__bindgen_bitfield_unit.set_const::<2usize, 2u8>({
let g: u8 = unsafe { ::core::mem::transmute(g) };
g as u64
});
__bindgen_bitfield_unit.set_const::<4usize, 2u8>({
let r: u8 = unsafe { ::core::mem::transmute(r) };
r as u64
});
__bindgen_bitfield_unit.set_const::<6usize, 2u8>({
let a: u8 = unsafe { ::core::mem::transmute(a) };
a as u64
});
__bindgen_bitfield_unit
}
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of GColor8"][::core::mem::size_of::<GColor8>() - 1usize];
["Alignment of GColor8"][::core::mem::align_of::<GColor8>() - 1usize];
["Offset of field: GColor8::argb"][::core::mem::offset_of!(GColor8, argb) - 0usize];
};
pub type GColor = GColor8;
#[unsafe(naked)]
#[unsafe(link_section = ".text.gcolor_equal")]
pub unsafe extern "C" fn gcolor_equal(x: GColor8, y: GColor8) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2452", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gcolor_legible_over")]
pub unsafe extern "C" fn gcolor_legible_over(background_color: GColor8) -> GColor8 {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2132", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct GPoint {
pub x: i16,
pub y: i16,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of GPoint"][::core::mem::size_of::<GPoint>() - 4usize];
["Alignment of GPoint"][::core::mem::align_of::<GPoint>() - 2usize];
["Offset of field: GPoint::x"][::core::mem::offset_of!(GPoint, x) - 0usize];
["Offset of field: GPoint::y"][::core::mem::offset_of!(GPoint, y) - 2usize];
};
#[unsafe(naked)]
#[unsafe(link_section = ".text.gpoint_equal")]
pub unsafe extern "C" fn gpoint_equal(point_a: *const GPoint, point_b: *const GPoint) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =444", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct GSize {
pub w: i16,
pub h: i16,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of GSize"][::core::mem::size_of::<GSize>() - 4usize];
["Alignment of GSize"][::core::mem::align_of::<GSize>() - 2usize];
["Offset of field: GSize::w"][::core::mem::offset_of!(GSize, w) - 0usize];
["Offset of field: GSize::h"][::core::mem::offset_of!(GSize, h) - 2usize];
};
#[unsafe(naked)]
#[unsafe(link_section = ".text.gsize_equal")]
pub unsafe extern "C" fn gsize_equal(size_a: *const GSize, size_b: *const GSize) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =536", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct GRect {
pub origin: GPoint,
pub size: GSize,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of GRect"][::core::mem::size_of::<GRect>() - 8usize];
["Alignment of GRect"][::core::mem::align_of::<GRect>() - 2usize];
["Offset of field: GRect::origin"][::core::mem::offset_of!(GRect, origin) - 0usize];
["Offset of field: GRect::size"][::core::mem::offset_of!(GRect, size) - 4usize];
};
#[unsafe(naked)]
#[unsafe(link_section = ".text.grect_equal")]
pub unsafe extern "C" fn grect_equal(rect_a: *const GRect, rect_b: *const GRect) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =524", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.grect_is_empty")]
pub unsafe extern "C" fn grect_is_empty(rect: *const GRect) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =528", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.grect_standardize")]
pub unsafe extern "C" fn grect_standardize(rect: *mut GRect) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =532", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.grect_clip")]
pub unsafe extern "C" fn grect_clip(rect_to_clip: *mut GRect, rect_clipper: *const GRect) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =512", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.grect_contains_point")]
pub unsafe extern "C" fn grect_contains_point(rect: *const GRect, point: *const GPoint) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =516", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.grect_center_point")]
pub unsafe extern "C" fn grect_center_point(rect: *const GRect) -> GPoint {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =508", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.grect_crop")]
pub unsafe extern "C" fn grect_crop(rect: GRect, crop_size_px: i32) -> GRect {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =520", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub const GBitmapFormat_GBitmapFormat1Bit: GBitmapFormat = 0;
pub const GBitmapFormat_GBitmapFormat8Bit: GBitmapFormat = 1;
pub const GBitmapFormat_GBitmapFormat1BitPalette: GBitmapFormat = 2;
pub const GBitmapFormat_GBitmapFormat2BitPalette: GBitmapFormat = 3;
pub const GBitmapFormat_GBitmapFormat4BitPalette: GBitmapFormat = 4;
pub const GBitmapFormat_GBitmapFormat8BitCircular: GBitmapFormat = 5;
pub type GBitmapFormat = ::core::ffi::c_uchar;
#[repr(C)]
#[derive(Debug)]
pub struct GBitmap {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug)]
pub struct GBitmapSequence {
_unused: [u8; 0],
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gbitmap_get_bytes_per_row")]
pub unsafe extern "C" fn gbitmap_get_bytes_per_row(bitmap: *const GBitmap) -> u16 {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1632", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gbitmap_get_format")]
pub unsafe extern "C" fn gbitmap_get_format(bitmap: *const GBitmap) -> GBitmapFormat {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1640", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gbitmap_get_data")]
pub unsafe extern "C" fn gbitmap_get_data(bitmap: *const GBitmap) -> *mut u8 {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1636", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gbitmap_set_data")]
pub unsafe extern "C" fn gbitmap_set_data(
bitmap: *mut GBitmap,
data: *mut u8,
format: GBitmapFormat,
row_size_bytes: u16,
free_on_destroy: bool,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1652", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gbitmap_get_bounds")]
pub unsafe extern "C" fn gbitmap_get_bounds(bitmap: *const GBitmap) -> GRect {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1628", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gbitmap_set_bounds")]
pub unsafe extern "C" fn gbitmap_set_bounds(bitmap: *mut GBitmap, bounds: GRect) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1648", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gbitmap_get_palette")]
pub unsafe extern "C" fn gbitmap_get_palette(bitmap: *const GBitmap) -> *mut GColor {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1644", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gbitmap_set_palette")]
pub unsafe extern "C" fn gbitmap_set_palette(
bitmap: *mut GBitmap,
palette: *mut GColor,
free_on_destroy: bool,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1656", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gbitmap_create_with_resource")]
pub unsafe extern "C" fn gbitmap_create_with_resource(resource_id: u32) -> *mut GBitmap {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =408", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gbitmap_create_with_data")]
pub unsafe extern "C" fn gbitmap_create_with_data(data: *const u8) -> *mut GBitmap {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =404", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gbitmap_create_as_sub_bitmap")]
pub unsafe extern "C" fn gbitmap_create_as_sub_bitmap(
base_bitmap: *const GBitmap,
sub_rect: GRect,
) -> *mut GBitmap {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =400", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gbitmap_create_from_png_data")]
pub unsafe extern "C" fn gbitmap_create_from_png_data(
png_data: *const u8,
png_data_size: usize,
) -> *mut GBitmap {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1684", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gbitmap_create_blank")]
pub unsafe extern "C" fn gbitmap_create_blank(size: GSize, format: GBitmapFormat) -> *mut GBitmap {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1572", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gbitmap_create_blank_with_palette")]
pub unsafe extern "C" fn gbitmap_create_blank_with_palette(
size: GSize,
format: GBitmapFormat,
palette: *mut GColor,
free_on_destroy: bool,
) -> *mut GBitmap {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1624", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gbitmap_create_palettized_from_1bit")]
pub unsafe extern "C" fn gbitmap_create_palettized_from_1bit(
src_bitmap: *const GBitmap,
) -> *mut GBitmap {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1832", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gbitmap_destroy")]
pub unsafe extern "C" fn gbitmap_destroy(bitmap: *mut GBitmap) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =412", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gbitmap_sequence_create_with_resource")]
pub unsafe extern "C" fn gbitmap_sequence_create_with_resource(
resource_id: u32,
) -> *mut GBitmapSequence {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1660", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gbitmap_sequence_update_bitmap_next_frame")]
pub unsafe extern "C" fn gbitmap_sequence_update_bitmap_next_frame(
bitmap_sequence: *mut GBitmapSequence,
bitmap: *mut GBitmap,
delay_ms: *mut u32,
) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1680", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gbitmap_sequence_update_bitmap_by_elapsed")]
pub unsafe extern "C" fn gbitmap_sequence_update_bitmap_by_elapsed(
bitmap_sequence: *mut GBitmapSequence,
bitmap: *mut GBitmap,
elapsed_ms: u32,
) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1828", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gbitmap_sequence_destroy")]
pub unsafe extern "C" fn gbitmap_sequence_destroy(bitmap_sequence: *mut GBitmapSequence) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1664", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gbitmap_sequence_restart")]
pub unsafe extern "C" fn gbitmap_sequence_restart(bitmap_sequence: *mut GBitmapSequence) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1768", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gbitmap_sequence_get_current_frame_idx")]
pub unsafe extern "C" fn gbitmap_sequence_get_current_frame_idx(
bitmap_sequence: *mut GBitmapSequence,
) -> i32 {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1672", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gbitmap_sequence_get_total_num_frames")]
pub unsafe extern "C" fn gbitmap_sequence_get_total_num_frames(
bitmap_sequence: *mut GBitmapSequence,
) -> u32 {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1676", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gbitmap_sequence_get_play_count")]
pub unsafe extern "C" fn gbitmap_sequence_get_play_count(
bitmap_sequence: *mut GBitmapSequence,
) -> u32 {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1764", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gbitmap_sequence_set_play_count")]
pub unsafe extern "C" fn gbitmap_sequence_set_play_count(
bitmap_sequence: *mut GBitmapSequence,
play_count: u32,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1772", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gbitmap_sequence_get_bitmap_size")]
pub unsafe extern "C" fn gbitmap_sequence_get_bitmap_size(
bitmap_sequence: *mut GBitmapSequence,
) -> GSize {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1668", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct GBitmapDataRowInfo {
pub data: *mut u8,
pub min_x: i16,
pub max_x: i16,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of GBitmapDataRowInfo"][::core::mem::size_of::<GBitmapDataRowInfo>() - 8usize];
["Alignment of GBitmapDataRowInfo"][::core::mem::align_of::<GBitmapDataRowInfo>() - 4usize];
["Offset of field: GBitmapDataRowInfo::data"]
[::core::mem::offset_of!(GBitmapDataRowInfo, data) - 0usize];
["Offset of field: GBitmapDataRowInfo::min_x"]
[::core::mem::offset_of!(GBitmapDataRowInfo, min_x) - 4usize];
["Offset of field: GBitmapDataRowInfo::max_x"]
[::core::mem::offset_of!(GBitmapDataRowInfo, max_x) - 6usize];
};
#[unsafe(naked)]
#[unsafe(link_section = ".text.gbitmap_get_data_row_info")]
pub unsafe extern "C" fn gbitmap_get_data_row_info(
bitmap: *const GBitmap,
y: u16,
) -> GBitmapDataRowInfo {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2284", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub const GAlign_GAlignCenter: GAlign = 0;
pub const GAlign_GAlignTopLeft: GAlign = 1;
pub const GAlign_GAlignTopRight: GAlign = 2;
pub const GAlign_GAlignTop: GAlign = 3;
pub const GAlign_GAlignLeft: GAlign = 4;
pub const GAlign_GAlignBottom: GAlign = 5;
pub const GAlign_GAlignRight: GAlign = 6;
pub const GAlign_GAlignBottomRight: GAlign = 7;
pub const GAlign_GAlignBottomLeft: GAlign = 8;
pub type GAlign = ::core::ffi::c_uchar;
#[unsafe(naked)]
#[unsafe(link_section = ".text.grect_align")]
pub unsafe extern "C" fn grect_align(
rect: *mut GRect,
inside_rect: *const GRect,
alignment: GAlign,
clip: bool,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =504", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub const GCompOp_GCompOpAssign: GCompOp = 0;
pub const GCompOp_GCompOpAssignInverted: GCompOp = 1;
pub const GCompOp_GCompOpOr: GCompOp = 2;
pub const GCompOp_GCompOpAnd: GCompOp = 3;
pub const GCompOp_GCompOpClear: GCompOp = 4;
pub const GCompOp_GCompOpSet: GCompOp = 5;
pub type GCompOp = ::core::ffi::c_uchar;
#[repr(C)]
#[derive(Debug)]
pub struct GContext {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct GEdgeInsets {
pub top: i16,
pub right: i16,
pub bottom: i16,
pub left: i16,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of GEdgeInsets"][::core::mem::size_of::<GEdgeInsets>() - 8usize];
["Alignment of GEdgeInsets"][::core::mem::align_of::<GEdgeInsets>() - 2usize];
["Offset of field: GEdgeInsets::top"][::core::mem::offset_of!(GEdgeInsets, top) - 0usize];
["Offset of field: GEdgeInsets::right"][::core::mem::offset_of!(GEdgeInsets, right) - 2usize];
["Offset of field: GEdgeInsets::bottom"][::core::mem::offset_of!(GEdgeInsets, bottom) - 4usize];
["Offset of field: GEdgeInsets::left"][::core::mem::offset_of!(GEdgeInsets, left) - 6usize];
};
#[unsafe(naked)]
#[unsafe(link_section = ".text.grect_inset")]
pub unsafe extern "C" fn grect_inset(rect: GRect, insets: GEdgeInsets) -> GRect {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2320", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.graphics_context_set_stroke_color")]
pub unsafe extern "C" fn graphics_context_set_stroke_color(ctx: *mut GContext, color: GColor) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1488", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.graphics_context_set_fill_color")]
pub unsafe extern "C" fn graphics_context_set_fill_color(ctx: *mut GContext, color: GColor) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1484", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.graphics_context_set_text_color")]
pub unsafe extern "C" fn graphics_context_set_text_color(ctx: *mut GContext, color: GColor) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1492", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.graphics_context_set_compositing_mode")]
pub unsafe extern "C" fn graphics_context_set_compositing_mode(ctx: *mut GContext, mode: GCompOp) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =448", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.graphics_context_set_antialiased")]
pub unsafe extern "C" fn graphics_context_set_antialiased(ctx: *mut GContext, enable: bool) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1776", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.graphics_context_set_stroke_width")]
pub unsafe extern "C" fn graphics_context_set_stroke_width(ctx: *mut GContext, stroke_width: u8) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1780", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub const GCornerMask_GCornerNone: GCornerMask = 0;
pub const GCornerMask_GCornerTopLeft: GCornerMask = 1;
pub const GCornerMask_GCornerTopRight: GCornerMask = 2;
pub const GCornerMask_GCornerBottomLeft: GCornerMask = 4;
pub const GCornerMask_GCornerBottomRight: GCornerMask = 8;
pub const GCornerMask_GCornersAll: GCornerMask = 15;
pub const GCornerMask_GCornersTop: GCornerMask = 3;
pub const GCornerMask_GCornersBottom: GCornerMask = 12;
pub const GCornerMask_GCornersLeft: GCornerMask = 5;
pub const GCornerMask_GCornersRight: GCornerMask = 10;
pub type GCornerMask = ::core::ffi::c_uchar;
#[unsafe(naked)]
#[unsafe(link_section = ".text.graphics_draw_pixel")]
pub unsafe extern "C" fn graphics_draw_pixel(ctx: *mut GContext, point: GPoint) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =476", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.graphics_draw_line")]
pub unsafe extern "C" fn graphics_draw_line(ctx: *mut GContext, p0: GPoint, p1: GPoint) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =472", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.graphics_draw_rect")]
pub unsafe extern "C" fn graphics_draw_rect(ctx: *mut GContext, rect: GRect) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =480", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.graphics_fill_rect")]
pub unsafe extern "C" fn graphics_fill_rect(
ctx: *mut GContext,
rect: GRect,
corner_radius: u16,
corner_mask: GCornerMask,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =492", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.graphics_draw_circle")]
pub unsafe extern "C" fn graphics_draw_circle(ctx: *mut GContext, p: GPoint, radius: u16) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =468", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.graphics_fill_circle")]
pub unsafe extern "C" fn graphics_fill_circle(ctx: *mut GContext, p: GPoint, radius: u16) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =488", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.graphics_draw_round_rect")]
pub unsafe extern "C" fn graphics_draw_round_rect(ctx: *mut GContext, rect: GRect, radius: u16) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =484", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.graphics_draw_bitmap_in_rect")]
pub unsafe extern "C" fn graphics_draw_bitmap_in_rect(
ctx: *mut GContext,
bitmap: *const GBitmap,
rect: GRect,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =464", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.graphics_capture_frame_buffer")]
pub unsafe extern "C" fn graphics_capture_frame_buffer(ctx: *mut GContext) -> *mut GBitmap {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1576", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.graphics_capture_frame_buffer_format")]
pub unsafe extern "C" fn graphics_capture_frame_buffer_format(
ctx: *mut GContext,
format: GBitmapFormat,
) -> *mut GBitmap {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1580", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.graphics_release_frame_buffer")]
pub unsafe extern "C" fn graphics_release_frame_buffer(
ctx: *mut GContext,
buffer: *mut GBitmap,
) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1400", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.graphics_frame_buffer_is_captured")]
pub unsafe extern "C" fn graphics_frame_buffer_is_captured(ctx: *mut GContext) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1396", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.graphics_draw_rotated_bitmap")]
pub unsafe extern "C" fn graphics_draw_rotated_bitmap(
ctx: *mut GContext,
src: *mut GBitmap,
src_ic: GPoint,
rotation: ::core::ffi::c_int,
dest_ic: GPoint,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1840", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub const GOvalScaleMode_GOvalScaleModeFitCircle: GOvalScaleMode = 0;
pub const GOvalScaleMode_GOvalScaleModeFillCircle: GOvalScaleMode = 1;
pub type GOvalScaleMode = ::core::ffi::c_uchar;
#[unsafe(naked)]
#[unsafe(link_section = ".text.graphics_draw_arc")]
pub unsafe extern "C" fn graphics_draw_arc(
ctx: *mut GContext,
rect: GRect,
scale_mode: GOvalScaleMode,
angle_start: i32,
angle_end: i32,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2328", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.graphics_fill_radial")]
pub unsafe extern "C" fn graphics_fill_radial(
ctx: *mut GContext,
rect: GRect,
scale_mode: GOvalScaleMode,
inset_thickness: u16,
angle_start: i32,
angle_end: i32,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2332", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gpoint_from_polar")]
pub unsafe extern "C" fn gpoint_from_polar(
rect: GRect,
scale_mode: GOvalScaleMode,
angle: i32,
) -> GPoint {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2324", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.grect_centered_from_polar")]
pub unsafe extern "C" fn grect_centered_from_polar(
rect: GRect,
scale_mode: GOvalScaleMode,
angle: i32,
size: GSize,
) -> GRect {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2336", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[repr(C)]
#[derive(Debug)]
pub struct GDrawCommand {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug)]
pub struct GDrawCommandFrame {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug)]
pub struct GDrawCommandImage {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug)]
pub struct GDrawCommandList {
_unused: [u8; 0],
}
pub type GDrawCommandListIteratorCb = ::core::option::Option<
unsafe extern "C" fn(
command: *mut GDrawCommand,
index: u32,
context: *mut ::core::ffi::c_void,
) -> bool,
>;
#[repr(C)]
#[derive(Debug)]
pub struct GDrawCommandSequence {
_unused: [u8; 0],
}
pub const GDrawCommandType_GDrawCommandTypeInvalid: GDrawCommandType = 0;
pub const GDrawCommandType_GDrawCommandTypePath: GDrawCommandType = 1;
pub const GDrawCommandType_GDrawCommandTypeCircle: GDrawCommandType = 2;
pub const GDrawCommandType_GDrawCommandTypePrecisePath: GDrawCommandType = 3;
pub type GDrawCommandType = ::core::ffi::c_uchar;
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_draw")]
pub unsafe extern "C" fn gdraw_command_draw(ctx: *mut GContext, command: *mut GDrawCommand) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1896", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_get_type")]
pub unsafe extern "C" fn gdraw_command_get_type(command: *mut GDrawCommand) -> GDrawCommandType {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1944", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_set_fill_color")]
pub unsafe extern "C" fn gdraw_command_set_fill_color(
command: *mut GDrawCommand,
fill_color: GColor,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2036", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_get_fill_color")]
pub unsafe extern "C" fn gdraw_command_get_fill_color(command: *mut GDrawCommand) -> GColor {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1912", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_set_stroke_color")]
pub unsafe extern "C" fn gdraw_command_set_stroke_color(
command: *mut GDrawCommand,
stroke_color: GColor,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2056", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_get_stroke_color")]
pub unsafe extern "C" fn gdraw_command_get_stroke_color(command: *mut GDrawCommand) -> GColor {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1936", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_set_stroke_width")]
pub unsafe extern "C" fn gdraw_command_set_stroke_width(
command: *mut GDrawCommand,
stroke_width: u8,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2060", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_get_stroke_width")]
pub unsafe extern "C" fn gdraw_command_get_stroke_width(command: *mut GDrawCommand) -> u8 {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1940", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_get_num_points")]
pub unsafe extern "C" fn gdraw_command_get_num_points(command: *mut GDrawCommand) -> u16 {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1920", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_set_point")]
pub unsafe extern "C" fn gdraw_command_set_point(
command: *mut GDrawCommand,
point_idx: u16,
point: GPoint,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2048", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_get_point")]
pub unsafe extern "C" fn gdraw_command_get_point(
command: *mut GDrawCommand,
point_idx: u16,
) -> GPoint {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1928", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_set_radius")]
pub unsafe extern "C" fn gdraw_command_set_radius(command: *mut GDrawCommand, radius: u16) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2052", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_get_radius")]
pub unsafe extern "C" fn gdraw_command_get_radius(command: *mut GDrawCommand) -> u16 {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1932", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_set_path_open")]
pub unsafe extern "C" fn gdraw_command_set_path_open(command: *mut GDrawCommand, path_open: bool) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2044", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_get_path_open")]
pub unsafe extern "C" fn gdraw_command_get_path_open(command: *mut GDrawCommand) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1924", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_set_hidden")]
pub unsafe extern "C" fn gdraw_command_set_hidden(command: *mut GDrawCommand, hidden: bool) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2040", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_get_hidden")]
pub unsafe extern "C" fn gdraw_command_get_hidden(command: *mut GDrawCommand) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1916", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_frame_draw")]
pub unsafe extern "C" fn gdraw_command_frame_draw(
ctx: *mut GContext,
sequence: *mut GDrawCommandSequence,
frame: *mut GDrawCommandFrame,
offset: GPoint,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1900", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_frame_set_duration")]
pub unsafe extern "C" fn gdraw_command_frame_set_duration(
frame: *mut GDrawCommandFrame,
duration: u32,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1908", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_frame_get_duration")]
pub unsafe extern "C" fn gdraw_command_frame_get_duration(frame: *mut GDrawCommandFrame) -> u32 {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1904", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_image_create_with_resource")]
pub unsafe extern "C" fn gdraw_command_image_create_with_resource(
resource_id: u32,
) -> *mut GDrawCommandImage {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1952", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_image_clone")]
pub unsafe extern "C" fn gdraw_command_image_clone(
image: *mut GDrawCommandImage,
) -> *mut GDrawCommandImage {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1948", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_image_destroy")]
pub unsafe extern "C" fn gdraw_command_image_destroy(image: *mut GDrawCommandImage) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1956", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_image_draw")]
pub unsafe extern "C" fn gdraw_command_image_draw(
ctx: *mut GContext,
image: *mut GDrawCommandImage,
offset: GPoint,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1960", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_image_get_bounds_size")]
pub unsafe extern "C" fn gdraw_command_image_get_bounds_size(
image: *mut GDrawCommandImage,
) -> GSize {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1964", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_image_set_bounds_size")]
pub unsafe extern "C" fn gdraw_command_image_set_bounds_size(
image: *mut GDrawCommandImage,
size: GSize,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1972", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_image_get_command_list")]
pub unsafe extern "C" fn gdraw_command_image_get_command_list(
image: *mut GDrawCommandImage,
) -> *mut GDrawCommandList {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1968", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_list_iterate")]
pub unsafe extern "C" fn gdraw_command_list_iterate(
command_list: *mut GDrawCommandList,
handle_command: GDrawCommandListIteratorCb,
callback_context: *mut ::core::ffi::c_void,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1988", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_list_draw")]
pub unsafe extern "C" fn gdraw_command_list_draw(
ctx: *mut GContext,
command_list: *mut GDrawCommandList,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1976", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_list_get_command")]
pub unsafe extern "C" fn gdraw_command_list_get_command(
command_list: *mut GDrawCommandList,
command_idx: u16,
) -> *mut GDrawCommand {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1980", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_list_get_num_commands")]
pub unsafe extern "C" fn gdraw_command_list_get_num_commands(
command_list: *mut GDrawCommandList,
) -> u32 {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1984", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_sequence_create_with_resource")]
pub unsafe extern "C" fn gdraw_command_sequence_create_with_resource(
resource_id: u32,
) -> *mut GDrawCommandSequence {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1996", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_sequence_clone")]
pub unsafe extern "C" fn gdraw_command_sequence_clone(
sequence: *mut GDrawCommandSequence,
) -> *mut GDrawCommandSequence {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1992", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_sequence_destroy")]
pub unsafe extern "C" fn gdraw_command_sequence_destroy(sequence: *mut GDrawCommandSequence) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2000", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_sequence_get_frame_by_elapsed")]
pub unsafe extern "C" fn gdraw_command_sequence_get_frame_by_elapsed(
sequence: *mut GDrawCommandSequence,
elapsed_ms: u32,
) -> *mut GDrawCommandFrame {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2008", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_sequence_get_frame_by_index")]
pub unsafe extern "C" fn gdraw_command_sequence_get_frame_by_index(
sequence: *mut GDrawCommandSequence,
index: u32,
) -> *mut GDrawCommandFrame {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2012", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_sequence_get_bounds_size")]
pub unsafe extern "C" fn gdraw_command_sequence_get_bounds_size(
sequence: *mut GDrawCommandSequence,
) -> GSize {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2004", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_sequence_set_bounds_size")]
pub unsafe extern "C" fn gdraw_command_sequence_set_bounds_size(
sequence: *mut GDrawCommandSequence,
size: GSize,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2028", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_sequence_get_play_count")]
pub unsafe extern "C" fn gdraw_command_sequence_get_play_count(
sequence: *mut GDrawCommandSequence,
) -> u32 {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2020", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_sequence_set_play_count")]
pub unsafe extern "C" fn gdraw_command_sequence_set_play_count(
sequence: *mut GDrawCommandSequence,
play_count: u32,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2032", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_sequence_get_total_duration")]
pub unsafe extern "C" fn gdraw_command_sequence_get_total_duration(
sequence: *mut GDrawCommandSequence,
) -> u32 {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2024", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_sequence_get_num_frames")]
pub unsafe extern "C" fn gdraw_command_sequence_get_num_frames(
sequence: *mut GDrawCommandSequence,
) -> u32 {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2016", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gdraw_command_frame_get_command_list")]
pub unsafe extern "C" fn gdraw_command_frame_get_command_list(
frame: *mut GDrawCommandFrame,
) -> *mut GDrawCommandList {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2448", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct GPathInfo {
pub num_points: u32,
pub points: *mut GPoint,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of GPathInfo"][::core::mem::size_of::<GPathInfo>() - 8usize];
["Alignment of GPathInfo"][::core::mem::align_of::<GPathInfo>() - 4usize];
["Offset of field: GPathInfo::num_points"]
[::core::mem::offset_of!(GPathInfo, num_points) - 0usize];
["Offset of field: GPathInfo::points"][::core::mem::offset_of!(GPathInfo, points) - 4usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct GPath {
pub num_points: u32,
pub points: *mut GPoint,
pub rotation: i32,
pub offset: GPoint,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of GPath"][::core::mem::size_of::<GPath>() - 16usize];
["Alignment of GPath"][::core::mem::align_of::<GPath>() - 4usize];
["Offset of field: GPath::num_points"][::core::mem::offset_of!(GPath, num_points) - 0usize];
["Offset of field: GPath::points"][::core::mem::offset_of!(GPath, points) - 4usize];
["Offset of field: GPath::rotation"][::core::mem::offset_of!(GPath, rotation) - 8usize];
["Offset of field: GPath::offset"][::core::mem::offset_of!(GPath, offset) - 12usize];
};
#[unsafe(naked)]
#[unsafe(link_section = ".text.gpath_create")]
pub unsafe extern "C" fn gpath_create(init: *const GPathInfo) -> *mut GPath {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =420", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gpath_destroy")]
pub unsafe extern "C" fn gpath_destroy(gpath: *mut GPath) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =424", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gpath_draw_filled")]
pub unsafe extern "C" fn gpath_draw_filled(ctx: *mut GContext, path: *mut GPath) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1372", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gpath_draw_outline")]
pub unsafe extern "C" fn gpath_draw_outline(ctx: *mut GContext, path: *mut GPath) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =432", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gpath_rotate_to")]
pub unsafe extern "C" fn gpath_rotate_to(path: *mut GPath, angle: i32) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =440", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gpath_move_to")]
pub unsafe extern "C" fn gpath_move_to(path: *mut GPath, point: GPoint) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =436", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gpath_draw_outline_open")]
pub unsafe extern "C" fn gpath_draw_outline_open(ctx: *mut GContext, path: *mut GPath) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2072", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[repr(C)]
#[derive(Debug)]
pub struct FontInfo {
_unused: [u8; 0],
}
pub type GFont = *mut FontInfo;
#[unsafe(naked)]
#[unsafe(link_section = ".text.fonts_get_system_font")]
pub unsafe extern "C" fn fonts_get_system_font(font_key: *const ::core::ffi::c_char) -> GFont {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =384", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.fonts_load_custom_font")]
pub unsafe extern "C" fn fonts_load_custom_font(handle: ResHandle) -> GFont {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =388", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.fonts_unload_custom_font")]
pub unsafe extern "C" fn fonts_unload_custom_font(font: GFont) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =392", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub const GTextOverflowMode_GTextOverflowModeWordWrap: GTextOverflowMode = 0;
pub const GTextOverflowMode_GTextOverflowModeTrailingEllipsis: GTextOverflowMode = 1;
pub const GTextOverflowMode_GTextOverflowModeFill: GTextOverflowMode = 2;
pub type GTextOverflowMode = ::core::ffi::c_uchar;
pub const GTextAlignment_GTextAlignmentLeft: GTextAlignment = 0;
pub const GTextAlignment_GTextAlignmentCenter: GTextAlignment = 1;
pub const GTextAlignment_GTextAlignmentRight: GTextAlignment = 2;
pub type GTextAlignment = ::core::ffi::c_uchar;
#[repr(C)]
#[derive(Debug)]
pub struct GTextAttributes {
_unused: [u8; 0],
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.graphics_text_attributes_create")]
pub unsafe extern "C" fn graphics_text_attributes_create() -> *mut GTextAttributes {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2340", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.graphics_text_attributes_destroy")]
pub unsafe extern "C" fn graphics_text_attributes_destroy(text_attributes: *mut GTextAttributes) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2344", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.graphics_text_attributes_restore_default_text_flow")]
pub unsafe extern "C" fn graphics_text_attributes_restore_default_text_flow(
text_attributes: *mut GTextAttributes,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2360", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.graphics_text_attributes_enable_screen_text_flow")]
pub unsafe extern "C" fn graphics_text_attributes_enable_screen_text_flow(
text_attributes: *mut GTextAttributes,
inset: u8,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2352", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.graphics_text_attributes_restore_default_paging")]
pub unsafe extern "C" fn graphics_text_attributes_restore_default_paging(
text_attributes: *mut GTextAttributes,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2356", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.graphics_text_attributes_enable_paging")]
pub unsafe extern "C" fn graphics_text_attributes_enable_paging(
text_attributes: *mut GTextAttributes,
content_origin_on_screen: GPoint,
paging_on_screen: GRect,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2348", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.graphics_draw_text")]
pub unsafe extern "C" fn graphics_draw_text(
ctx: *mut GContext,
text: *const ::core::ffi::c_char,
font: GFont,
box_: GRect,
overflow_mode: GTextOverflowMode,
alignment: GTextAlignment,
text_attributes: *mut GTextAttributes,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1236", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.graphics_text_layout_get_content_size")]
pub unsafe extern "C" fn graphics_text_layout_get_content_size(
text: *const ::core::ffi::c_char,
font: GFont,
box_: GRect,
overflow_mode: GTextOverflowMode,
alignment: GTextAlignment,
) -> GSize {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1260", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.graphics_text_layout_get_content_size_with_attributes")]
pub unsafe extern "C" fn graphics_text_layout_get_content_size_with_attributes(
text: *const ::core::ffi::c_char,
font: GFont,
box_: GRect,
overflow_mode: GTextOverflowMode,
alignment: GTextAlignment,
text_attributes: *mut GTextAttributes,
) -> GSize {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2364", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub const SmartstrapResult_SmartstrapResultOk: SmartstrapResult = 0;
pub const SmartstrapResult_SmartstrapResultInvalidArgs: SmartstrapResult = 1;
pub const SmartstrapResult_SmartstrapResultNotPresent: SmartstrapResult = 2;
pub const SmartstrapResult_SmartstrapResultBusy: SmartstrapResult = 3;
pub const SmartstrapResult_SmartstrapResultServiceUnavailable: SmartstrapResult = 4;
pub const SmartstrapResult_SmartstrapResultAttributeUnsupported: SmartstrapResult = 5;
pub const SmartstrapResult_SmartstrapResultTimeOut: SmartstrapResult = 6;
pub type SmartstrapResult = ::core::ffi::c_uchar;
pub type SmartstrapServiceId = u16;
pub type SmartstrapAttributeId = u16;
#[repr(C)]
#[derive(Debug)]
pub struct SmartstrapAttribute {
_unused: [u8; 0],
}
pub type SmartstrapServiceAvailabilityHandler = ::core::option::Option<
unsafe extern "C" fn(service_id: SmartstrapServiceId, is_available: bool),
>;
pub type SmartstrapReadHandler = ::core::option::Option<
unsafe extern "C" fn(
attribute: *mut SmartstrapAttribute,
result: SmartstrapResult,
data: *const u8,
length: usize,
),
>;
pub type SmartstrapWriteHandler = ::core::option::Option<
unsafe extern "C" fn(attribute: *mut SmartstrapAttribute, result: SmartstrapResult),
>;
pub type SmartstrapNotifyHandler =
::core::option::Option<unsafe extern "C" fn(attribute: *mut SmartstrapAttribute)>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct SmartstrapHandlers {
pub availability_did_change: SmartstrapServiceAvailabilityHandler,
pub did_read: SmartstrapReadHandler,
pub did_write: SmartstrapWriteHandler,
pub notified: SmartstrapNotifyHandler,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of SmartstrapHandlers"][::core::mem::size_of::<SmartstrapHandlers>() - 16usize];
["Alignment of SmartstrapHandlers"][::core::mem::align_of::<SmartstrapHandlers>() - 4usize];
["Offset of field: SmartstrapHandlers::availability_did_change"]
[::core::mem::offset_of!(SmartstrapHandlers, availability_did_change) - 0usize];
["Offset of field: SmartstrapHandlers::did_read"]
[::core::mem::offset_of!(SmartstrapHandlers, did_read) - 4usize];
["Offset of field: SmartstrapHandlers::did_write"]
[::core::mem::offset_of!(SmartstrapHandlers, did_write) - 8usize];
["Offset of field: SmartstrapHandlers::notified"]
[::core::mem::offset_of!(SmartstrapHandlers, notified) - 12usize];
};
#[unsafe(naked)]
#[unsafe(link_section = ".text.smartstrap_subscribe")]
pub unsafe extern "C" fn smartstrap_subscribe(handlers: SmartstrapHandlers) -> SmartstrapResult {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2256", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.smartstrap_unsubscribe")]
pub unsafe extern "C" fn smartstrap_unsubscribe() {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2260", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.smartstrap_set_timeout")]
pub unsafe extern "C" fn smartstrap_set_timeout(timeout_ms: u16) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2252", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.smartstrap_attribute_create")]
pub unsafe extern "C" fn smartstrap_attribute_create(
service_id: SmartstrapServiceId,
attribute_id: SmartstrapAttributeId,
buffer_length: usize,
) -> *mut SmartstrapAttribute {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2224", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.smartstrap_attribute_destroy")]
pub unsafe extern "C" fn smartstrap_attribute_destroy(attribute: *mut SmartstrapAttribute) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2228", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.smartstrap_service_is_available")]
pub unsafe extern "C" fn smartstrap_service_is_available(service_id: SmartstrapServiceId) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2248", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.smartstrap_attribute_get_service_id")]
pub unsafe extern "C" fn smartstrap_attribute_get_service_id(
attribute: *mut SmartstrapAttribute,
) -> SmartstrapServiceId {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2240", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.smartstrap_attribute_get_attribute_id")]
pub unsafe extern "C" fn smartstrap_attribute_get_attribute_id(
attribute: *mut SmartstrapAttribute,
) -> SmartstrapAttributeId {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2236", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.smartstrap_attribute_read")]
pub unsafe extern "C" fn smartstrap_attribute_read(
attribute: *mut SmartstrapAttribute,
) -> SmartstrapResult {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2244", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.smartstrap_attribute_begin_write")]
pub unsafe extern "C" fn smartstrap_attribute_begin_write(
attribute: *mut SmartstrapAttribute,
buffer: *mut *mut u8,
buffer_length: *mut usize,
) -> SmartstrapResult {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2220", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.smartstrap_attribute_end_write")]
pub unsafe extern "C" fn smartstrap_attribute_end_write(
attribute: *mut SmartstrapAttribute,
write_length: usize,
request_read: bool,
) -> SmartstrapResult {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2232", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub type ClickRecognizerRef = *mut ::core::ffi::c_void;
pub type ClickHandler = ::core::option::Option<
unsafe extern "C" fn(recognizer: ClickRecognizerRef, context: *mut ::core::ffi::c_void),
>;
pub type ClickConfigProvider =
::core::option::Option<unsafe extern "C" fn(context: *mut ::core::ffi::c_void)>;
#[unsafe(naked)]
#[unsafe(link_section = ".text.click_number_of_clicks_counted")]
pub unsafe extern "C" fn click_number_of_clicks_counted(recognizer: ClickRecognizerRef) -> u8 {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =264", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.click_recognizer_get_button_id")]
pub unsafe extern "C" fn click_recognizer_get_button_id(
recognizer: ClickRecognizerRef,
) -> ButtonId {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =268", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.click_recognizer_is_repeating")]
pub unsafe extern "C" fn click_recognizer_is_repeating(recognizer: ClickRecognizerRef) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1300", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[repr(C)]
#[derive(Debug)]
pub struct Layer {
_unused: [u8; 0],
}
pub type LayerUpdateProc =
::core::option::Option<unsafe extern "C" fn(layer: *mut Layer, ctx: *mut GContext)>;
#[unsafe(naked)]
#[unsafe(link_section = ".text.layer_create")]
pub unsafe extern "C" fn layer_create(frame: GRect) -> *mut Layer {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =556", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.layer_create_with_data")]
pub unsafe extern "C" fn layer_create_with_data(frame: GRect, data_size: usize) -> *mut Layer {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =560", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.layer_destroy")]
pub unsafe extern "C" fn layer_destroy(layer: *mut Layer) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =564", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.layer_mark_dirty")]
pub unsafe extern "C" fn layer_mark_dirty(layer: *mut Layer) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =600", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.layer_set_update_proc")]
pub unsafe extern "C" fn layer_set_update_proc(layer: *mut Layer, update_proc: LayerUpdateProc) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =628", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.layer_set_frame")]
pub unsafe extern "C" fn layer_set_frame(layer: *mut Layer, frame: GRect) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =620", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.layer_get_frame")]
pub unsafe extern "C" fn layer_get_frame(layer: *const Layer) -> GRect {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =580", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.layer_set_bounds")]
pub unsafe extern "C" fn layer_set_bounds(layer: *mut Layer, bounds: GRect) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =612", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.layer_get_bounds")]
pub unsafe extern "C" fn layer_get_bounds(layer: *const Layer) -> GRect {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =568", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.layer_get_unobstructed_bounds")]
pub unsafe extern "C" fn layer_get_unobstructed_bounds(layer: *const Layer) -> GRect {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2488", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.layer_convert_point_to_screen")]
pub unsafe extern "C" fn layer_convert_point_to_screen(
layer: *const Layer,
point: GPoint,
) -> GPoint {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2368", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.layer_convert_rect_to_screen")]
pub unsafe extern "C" fn layer_convert_rect_to_screen(layer: *const Layer, rect: GRect) -> GRect {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2372", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[repr(C)]
#[derive(Debug)]
pub struct Window {
_unused: [u8; 0],
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.layer_get_window")]
pub unsafe extern "C" fn layer_get_window(layer: *const Layer) -> *mut Window {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =588", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.layer_remove_from_parent")]
pub unsafe extern "C" fn layer_remove_from_parent(child: *mut Layer) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =608", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.layer_remove_child_layers")]
pub unsafe extern "C" fn layer_remove_child_layers(parent: *mut Layer) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =604", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.layer_add_child")]
pub unsafe extern "C" fn layer_add_child(parent: *mut Layer, child: *mut Layer) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =552", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.layer_insert_below_sibling")]
pub unsafe extern "C" fn layer_insert_below_sibling(
layer_to_insert: *mut Layer,
below_sibling_layer: *mut Layer,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =596", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.layer_insert_above_sibling")]
pub unsafe extern "C" fn layer_insert_above_sibling(
layer_to_insert: *mut Layer,
above_sibling_layer: *mut Layer,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =592", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.layer_set_hidden")]
pub unsafe extern "C" fn layer_set_hidden(layer: *mut Layer, hidden: bool) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =624", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.layer_get_hidden")]
pub unsafe extern "C" fn layer_get_hidden(layer: *const Layer) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =584", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.layer_set_clips")]
pub unsafe extern "C" fn layer_set_clips(layer: *mut Layer, clips: bool) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =616", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.layer_get_clips")]
pub unsafe extern "C" fn layer_get_clips(layer: *const Layer) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =572", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.layer_get_data")]
pub unsafe extern "C" fn layer_get_data(layer: *const Layer) -> *mut ::core::ffi::c_void {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =576", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[repr(C)]
#[derive(Debug)]
pub struct Recognizer {
_unused: [u8; 0],
}
pub const RecognizerEventType_RecognizerEvent_Started: RecognizerEventType = 0;
pub const RecognizerEventType_RecognizerEvent_Updated: RecognizerEventType = 1;
pub const RecognizerEventType_RecognizerEvent_Completed: RecognizerEventType = 2;
pub const RecognizerEventType_RecognizerEvent_Cancelled: RecognizerEventType = 3;
pub type RecognizerEventType = ::core::ffi::c_uchar;
pub use self::RecognizerEventType as RecognizerEvent;
pub type RecognizerEventCb = ::core::option::Option<
unsafe extern "C" fn(recognizer: *const Recognizer, event_type: RecognizerEvent),
>;
pub type RecognizerSimultaneousWithCb = ::core::option::Option<
unsafe extern "C" fn(
recognizer: *const Recognizer,
simultaneous_with: *const Recognizer,
) -> bool,
>;
pub const PanAxis_PanAxis_Horizontal: PanAxis = 0;
pub const PanAxis_PanAxis_Vertical: PanAxis = 1;
pub type PanAxis = ::core::ffi::c_uchar;
pub const SwipeDirection_SwipeDirection_None: SwipeDirection = 0;
pub const SwipeDirection_SwipeDirection_Up: SwipeDirection = 1;
pub const SwipeDirection_SwipeDirection_Down: SwipeDirection = 2;
pub const SwipeDirection_SwipeDirection_Left: SwipeDirection = 4;
pub const SwipeDirection_SwipeDirection_Right: SwipeDirection = 8;
pub type SwipeDirection = ::core::ffi::c_uchar;
#[unsafe(naked)]
#[unsafe(link_section = ".text.tap_recognizer_create")]
pub unsafe extern "C" fn tap_recognizer_create(
event_cb: RecognizerEventCb,
user_data: *mut ::core::ffi::c_void,
) -> *mut Recognizer {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2676", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.pan_recognizer_create")]
pub unsafe extern "C" fn pan_recognizer_create(
event_cb: RecognizerEventCb,
user_data: *mut ::core::ffi::c_void,
axis: PanAxis,
) -> *mut Recognizer {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2632", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.swipe_recognizer_create")]
pub unsafe extern "C" fn swipe_recognizer_create(
event_cb: RecognizerEventCb,
user_data: *mut ::core::ffi::c_void,
direction_mask: u8,
) -> *mut Recognizer {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2664", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.tap_recognizer_get_tap_point")]
pub unsafe extern "C" fn tap_recognizer_get_tap_point(recognizer: *const Recognizer) -> GPoint {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2680", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.pan_recognizer_get_total_delta")]
pub unsafe extern "C" fn pan_recognizer_get_total_delta(recognizer: *const Recognizer) -> GPoint {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2644", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.pan_recognizer_get_delta_since_start")]
pub unsafe extern "C" fn pan_recognizer_get_delta_since_start(
recognizer: *const Recognizer,
) -> GPoint {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2640", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.pan_recognizer_get_delta_since_prev")]
pub unsafe extern "C" fn pan_recognizer_get_delta_since_prev(
recognizer: *const Recognizer,
) -> GPoint {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2636", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.pan_recognizer_get_velocity")]
pub unsafe extern "C" fn pan_recognizer_get_velocity(recognizer: *const Recognizer) -> GPoint {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2648", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.swipe_recognizer_get_direction")]
pub unsafe extern "C" fn swipe_recognizer_get_direction(
recognizer: *const Recognizer,
) -> SwipeDirection {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2668", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.swipe_recognizer_get_velocity")]
pub unsafe extern "C" fn swipe_recognizer_get_velocity(recognizer: *const Recognizer) -> GPoint {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2672", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.recognizer_destroy")]
pub unsafe extern "C" fn recognizer_destroy(recognizer: *mut Recognizer) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2652", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.recognizer_set_simultaneous_with")]
pub unsafe extern "C" fn recognizer_set_simultaneous_with(
recognizer: *mut Recognizer,
simultaneous_with_cb: RecognizerSimultaneousWithCb,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2660", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.recognizer_set_fail_after")]
pub unsafe extern "C" fn recognizer_set_fail_after(
recognizer: *mut Recognizer,
fail_after: *mut Recognizer,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2656", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub type WindowHandler = ::core::option::Option<unsafe extern "C" fn(window: *mut Window)>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct WindowHandlers {
pub load: WindowHandler,
pub appear: WindowHandler,
pub disappear: WindowHandler,
pub unload: WindowHandler,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of WindowHandlers"][::core::mem::size_of::<WindowHandlers>() - 16usize];
["Alignment of WindowHandlers"][::core::mem::align_of::<WindowHandlers>() - 4usize];
["Offset of field: WindowHandlers::load"]
[::core::mem::offset_of!(WindowHandlers, load) - 0usize];
["Offset of field: WindowHandlers::appear"]
[::core::mem::offset_of!(WindowHandlers, appear) - 4usize];
["Offset of field: WindowHandlers::disappear"]
[::core::mem::offset_of!(WindowHandlers, disappear) - 8usize];
["Offset of field: WindowHandlers::unload"]
[::core::mem::offset_of!(WindowHandlers, unload) - 12usize];
};
#[unsafe(naked)]
#[unsafe(link_section = ".text.window_create")]
pub unsafe extern "C" fn window_create() -> *mut Window {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1084", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.window_destroy")]
pub unsafe extern "C" fn window_destroy(window: *mut Window) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1088", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.window_set_click_config_provider")]
pub unsafe extern "C" fn window_set_click_config_provider(
window: *mut Window,
click_config_provider: ClickConfigProvider,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1112", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.window_set_click_config_provider_with_context")]
pub unsafe extern "C" fn window_set_click_config_provider_with_context(
window: *mut Window,
click_config_provider: ClickConfigProvider,
context: *mut ::core::ffi::c_void,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1116", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.window_get_click_config_provider")]
pub unsafe extern "C" fn window_get_click_config_provider(
window: *const Window,
) -> ClickConfigProvider {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1092", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.window_get_click_config_context")]
pub unsafe extern "C" fn window_get_click_config_context(
window: *mut Window,
) -> *mut ::core::ffi::c_void {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1284", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.window_attach_recognizer")]
pub unsafe extern "C" fn window_attach_recognizer(
window: *mut Window,
recognizer: *mut Recognizer,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2684", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.window_detach_recognizer")]
pub unsafe extern "C" fn window_detach_recognizer(
window: *mut Window,
recognizer: *mut Recognizer,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2688", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.window_set_touch_bridge_disabled")]
pub unsafe extern "C" fn window_set_touch_bridge_disabled(window: *mut Window, disabled: bool) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2692", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.window_set_window_handlers")]
pub unsafe extern "C" fn window_set_window_handlers(window: *mut Window, handlers: WindowHandlers) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1128", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.window_get_root_layer")]
pub unsafe extern "C" fn window_get_root_layer(window: *const Window) -> *mut Layer {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1100", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.window_set_background_color")]
pub unsafe extern "C" fn window_set_background_color(
window: *mut Window,
background_color: GColor,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1508", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.window_is_loaded")]
pub unsafe extern "C" fn window_is_loaded(window: *mut Window) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1104", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.window_set_user_data")]
pub unsafe extern "C" fn window_set_user_data(window: *mut Window, data: *mut ::core::ffi::c_void) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1168", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.window_get_user_data")]
pub unsafe extern "C" fn window_get_user_data(window: *const Window) -> *mut ::core::ffi::c_void {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1164", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.window_single_click_subscribe")]
pub unsafe extern "C" fn window_single_click_subscribe(button_id: ButtonId, handler: ClickHandler) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1228", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.window_single_repeating_click_subscribe")]
pub unsafe extern "C" fn window_single_repeating_click_subscribe(
button_id: ButtonId,
repeat_interval_ms: u16,
handler: ClickHandler,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1232", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.window_multi_click_subscribe")]
pub unsafe extern "C" fn window_multi_click_subscribe(
button_id: ButtonId,
min_clicks: u8,
max_clicks: u8,
timeout: u16,
last_click_only: bool,
handler: ClickHandler,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1216", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.window_long_click_subscribe")]
pub unsafe extern "C" fn window_long_click_subscribe(
button_id: ButtonId,
delay_ms: u16,
down_handler: ClickHandler,
up_handler: ClickHandler,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1212", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.window_raw_click_subscribe")]
pub unsafe extern "C" fn window_raw_click_subscribe(
button_id: ButtonId,
down_handler: ClickHandler,
up_handler: ClickHandler,
context: *mut ::core::ffi::c_void,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1220", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.window_set_click_context")]
pub unsafe extern "C" fn window_set_click_context(
button_id: ButtonId,
context: *mut ::core::ffi::c_void,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1224", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.window_stack_push")]
pub unsafe extern "C" fn window_stack_push(window: *mut Window, animated: bool) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1148", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.window_stack_pop")]
pub unsafe extern "C" fn window_stack_pop(animated: bool) -> *mut Window {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1140", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.window_stack_pop_all")]
pub unsafe extern "C" fn window_stack_pop_all(animated: bool) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1144", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.window_stack_remove")]
pub unsafe extern "C" fn window_stack_remove(window: *mut Window, animated: bool) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1152", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.window_stack_get_top_window")]
pub unsafe extern "C" fn window_stack_get_top_window() -> *mut Window {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1136", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.window_stack_contains_window")]
pub unsafe extern "C" fn window_stack_contains_window(window: *mut Window) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1132", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[repr(C)]
#[derive(Debug)]
pub struct Animation {
_unused: [u8; 0],
}
pub type AnimationProgress = i32;
pub const AnimationCurve_AnimationCurveLinear: AnimationCurve = 0;
pub const AnimationCurve_AnimationCurveEaseIn: AnimationCurve = 1;
pub const AnimationCurve_AnimationCurveEaseOut: AnimationCurve = 2;
pub const AnimationCurve_AnimationCurveEaseInOut: AnimationCurve = 3;
pub const AnimationCurve_AnimationCurveDefault: AnimationCurve = 3;
pub const AnimationCurve_AnimationCurveCustomFunction: AnimationCurve = 4;
pub const AnimationCurve_AnimationCurveCustomInterpolationFunction: AnimationCurve = 5;
pub const AnimationCurve_AnimationCurve_Reserved1: AnimationCurve = 6;
pub const AnimationCurve_AnimationCurve_Reserved2: AnimationCurve = 7;
pub type AnimationCurve = ::core::ffi::c_uchar;
#[unsafe(naked)]
#[unsafe(link_section = ".text.animation_create")]
pub unsafe extern "C" fn animation_create() -> *mut Animation {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1520", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.animation_destroy")]
pub unsafe extern "C" fn animation_destroy(animation: *mut Animation) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1524", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.animation_clone")]
pub unsafe extern "C" fn animation_clone(from: *mut Animation) -> *mut Animation {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1688", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.animation_sequence_create")]
pub unsafe extern "C" fn animation_sequence_create(
animation_a: *mut Animation,
animation_b: *mut Animation,
animation_c: *mut Animation,
args: ...
) -> *mut Animation {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1712", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.animation_sequence_create_from_array")]
pub unsafe extern "C" fn animation_sequence_create_from_array(
animation_array: *mut *mut Animation,
array_len: u32,
) -> *mut Animation {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1716", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.animation_spawn_create")]
pub unsafe extern "C" fn animation_spawn_create(
animation_a: *mut Animation,
animation_b: *mut Animation,
animation_c: *mut Animation,
args: ...
) -> *mut Animation {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1732", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.animation_spawn_create_from_array")]
pub unsafe extern "C" fn animation_spawn_create_from_array(
animation_array: *mut *mut Animation,
array_len: u32,
) -> *mut Animation {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1736", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.animation_set_elapsed")]
pub unsafe extern "C" fn animation_set_elapsed(animation: *mut Animation, elapsed_ms: u32) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1724", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.animation_get_elapsed")]
pub unsafe extern "C" fn animation_get_elapsed(
animation: *mut Animation,
elapsed_ms: *mut i32,
) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1704", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.animation_set_reverse")]
pub unsafe extern "C" fn animation_set_reverse(animation: *mut Animation, reverse: bool) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1728", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.animation_get_reverse")]
pub unsafe extern "C" fn animation_get_reverse(animation: *mut Animation) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1708", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.animation_set_play_count")]
pub unsafe extern "C" fn animation_set_play_count(
animation: *mut Animation,
play_count: u32,
) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1720", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.animation_get_play_count")]
pub unsafe extern "C" fn animation_get_play_count(animation: *mut Animation) -> u32 {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1700", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.animation_set_duration")]
pub unsafe extern "C" fn animation_set_duration(
animation: *mut Animation,
duration_ms: u32,
) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1552", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.animation_get_duration")]
pub unsafe extern "C" fn animation_get_duration(
animation: *mut Animation,
include_delay: bool,
include_play_count: bool,
) -> u32 {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1696", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.animation_set_delay")]
pub unsafe extern "C" fn animation_set_delay(animation: *mut Animation, delay_ms: u32) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1548", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.animation_get_delay")]
pub unsafe extern "C" fn animation_get_delay(animation: *mut Animation) -> u32 {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1692", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.animation_set_curve")]
pub unsafe extern "C" fn animation_set_curve(
animation: *mut Animation,
curve: AnimationCurve,
) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1540", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.animation_get_curve")]
pub unsafe extern "C" fn animation_get_curve(animation: *mut Animation) -> AnimationCurve {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1740", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub type AnimationCurveFunction = ::core::option::Option<
unsafe extern "C" fn(linear_distance: AnimationProgress) -> AnimationProgress,
>;
#[unsafe(naked)]
#[unsafe(link_section = ".text.animation_set_custom_curve")]
pub unsafe extern "C" fn animation_set_custom_curve(
animation: *mut Animation,
curve_function: AnimationCurveFunction,
) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1544", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.animation_get_custom_curve")]
pub unsafe extern "C" fn animation_get_custom_curve(
animation: *mut Animation,
) -> AnimationCurveFunction {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1744", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub type AnimationStartedHandler = ::core::option::Option<
unsafe extern "C" fn(animation: *mut Animation, context: *mut ::core::ffi::c_void),
>;
pub type AnimationStoppedHandler = ::core::option::Option<
unsafe extern "C" fn(
animation: *mut Animation,
finished: bool,
context: *mut ::core::ffi::c_void,
),
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AnimationHandlers {
pub started: AnimationStartedHandler,
pub stopped: AnimationStoppedHandler,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of AnimationHandlers"][::core::mem::size_of::<AnimationHandlers>() - 8usize];
["Alignment of AnimationHandlers"][::core::mem::align_of::<AnimationHandlers>() - 4usize];
["Offset of field: AnimationHandlers::started"]
[::core::mem::offset_of!(AnimationHandlers, started) - 0usize];
["Offset of field: AnimationHandlers::stopped"]
[::core::mem::offset_of!(AnimationHandlers, stopped) - 4usize];
};
#[unsafe(naked)]
#[unsafe(link_section = ".text.animation_set_handlers")]
pub unsafe extern "C" fn animation_set_handlers(
animation: *mut Animation,
callbacks: AnimationHandlers,
context: *mut ::core::ffi::c_void,
) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1556", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.animation_get_context")]
pub unsafe extern "C" fn animation_get_context(
animation: *mut Animation,
) -> *mut ::core::ffi::c_void {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1528", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.animation_schedule")]
pub unsafe extern "C" fn animation_schedule(animation: *mut Animation) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1536", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.animation_unschedule")]
pub unsafe extern "C" fn animation_unschedule(animation: *mut Animation) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1564", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.animation_unschedule_all")]
pub unsafe extern "C" fn animation_unschedule_all() {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1568", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.animation_is_scheduled")]
pub unsafe extern "C" fn animation_is_scheduled(animation: *mut Animation) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1532", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub type AnimationSetupImplementation =
::core::option::Option<unsafe extern "C" fn(animation: *mut Animation)>;
pub type AnimationUpdateImplementation = ::core::option::Option<
unsafe extern "C" fn(animation: *mut Animation, progress: AnimationProgress),
>;
pub type AnimationTeardownImplementation =
::core::option::Option<unsafe extern "C" fn(animation: *mut Animation)>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AnimationImplementation {
pub setup: AnimationSetupImplementation,
pub update: AnimationUpdateImplementation,
pub teardown: AnimationTeardownImplementation,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of AnimationImplementation"]
[::core::mem::size_of::<AnimationImplementation>() - 12usize];
["Alignment of AnimationImplementation"]
[::core::mem::align_of::<AnimationImplementation>() - 4usize];
["Offset of field: AnimationImplementation::setup"]
[::core::mem::offset_of!(AnimationImplementation, setup) - 0usize];
["Offset of field: AnimationImplementation::update"]
[::core::mem::offset_of!(AnimationImplementation, update) - 4usize];
["Offset of field: AnimationImplementation::teardown"]
[::core::mem::offset_of!(AnimationImplementation, teardown) - 8usize];
};
#[unsafe(naked)]
#[unsafe(link_section = ".text.animation_set_implementation")]
pub unsafe extern "C" fn animation_set_implementation(
animation: *mut Animation,
implementation: *const AnimationImplementation,
) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1560", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.animation_get_implementation")]
pub unsafe extern "C" fn animation_get_implementation(
animation: *mut Animation,
) -> *const AnimationImplementation {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1748", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[repr(C)]
#[derive(Debug)]
pub struct PropertyAnimation {
_unused: [u8; 0],
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.property_animation_create_layer_frame")]
pub unsafe extern "C" fn property_animation_create_layer_frame(
layer: *mut Layer,
from_frame: *mut GRect,
to_frame: *mut GRect,
) -> *mut PropertyAnimation {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1588", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.property_animation_create_bounds_origin")]
pub unsafe extern "C" fn property_animation_create_bounds_origin(
layer: *mut Layer,
from: *mut GPoint,
to: *mut GPoint,
) -> *mut PropertyAnimation {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2064", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.property_animation_create")]
pub unsafe extern "C" fn property_animation_create(
implementation: *const PropertyAnimationImplementation,
subject: *mut ::core::ffi::c_void,
from_value: *mut ::core::ffi::c_void,
to_value: *mut ::core::ffi::c_void,
) -> *mut PropertyAnimation {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1584", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.property_animation_destroy")]
pub unsafe extern "C" fn property_animation_destroy(property_animation: *mut PropertyAnimation) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1592", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.property_animation_update_int16")]
pub unsafe extern "C" fn property_animation_update_int16(
property_animation: *mut PropertyAnimation,
distance_normalized: u32,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1620", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.property_animation_update_uint32")]
pub unsafe extern "C" fn property_animation_update_uint32(
property_animation: *mut PropertyAnimation,
distance_normalized: u32,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2068", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.property_animation_update_gpoint")]
pub unsafe extern "C" fn property_animation_update_gpoint(
property_animation: *mut PropertyAnimation,
distance_normalized: u32,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1612", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.property_animation_update_grect")]
pub unsafe extern "C" fn property_animation_update_grect(
property_animation: *mut PropertyAnimation,
distance_normalized: u32,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1616", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.property_animation_update_gcolor8")]
pub unsafe extern "C" fn property_animation_update_gcolor8(
property_animation: *mut PropertyAnimation,
distance_normalized: u32,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2136", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub type GPointReturn = GPoint;
pub type GRectReturn = GRect;
pub type Int16Setter =
::core::option::Option<unsafe extern "C" fn(subject: *mut ::core::ffi::c_void, int16: i16)>;
pub type Int16Getter =
::core::option::Option<unsafe extern "C" fn(subject: *mut ::core::ffi::c_void) -> i16>;
pub type UInt32Setter =
::core::option::Option<unsafe extern "C" fn(subject: *mut ::core::ffi::c_void, uint32: u32)>;
pub type UInt32Getter =
::core::option::Option<unsafe extern "C" fn(subject: *mut ::core::ffi::c_void) -> u32>;
pub type GPointSetter =
::core::option::Option<unsafe extern "C" fn(subject: *mut ::core::ffi::c_void, gpoint: GPoint)>;
pub type GPointGetter =
::core::option::Option<unsafe extern "C" fn(subject: *mut ::core::ffi::c_void) -> GPointReturn>;
pub type GRectSetter =
::core::option::Option<unsafe extern "C" fn(subject: *mut ::core::ffi::c_void, grect: GRect)>;
pub type GRectGetter =
::core::option::Option<unsafe extern "C" fn(subject: *mut ::core::ffi::c_void) -> GRectReturn>;
pub type GColor8Setter = ::core::option::Option<
unsafe extern "C" fn(subject: *mut ::core::ffi::c_void, gcolor: GColor8),
>;
pub type GColor8Getter =
::core::option::Option<unsafe extern "C" fn(subject: *mut ::core::ffi::c_void) -> GColor8>;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct PropertyAnimationAccessors {
pub setter: PropertyAnimationAccessors__bindgen_ty_1,
pub getter: PropertyAnimationAccessors__bindgen_ty_2,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union PropertyAnimationAccessors__bindgen_ty_1 {
pub int16: Int16Setter,
pub gpoint: GPointSetter,
pub grect: GRectSetter,
pub gcolor8: GColor8Setter,
pub uint32: UInt32Setter,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of PropertyAnimationAccessors__bindgen_ty_1"]
[::core::mem::size_of::<PropertyAnimationAccessors__bindgen_ty_1>() - 4usize];
["Alignment of PropertyAnimationAccessors__bindgen_ty_1"]
[::core::mem::align_of::<PropertyAnimationAccessors__bindgen_ty_1>() - 4usize];
["Offset of field: PropertyAnimationAccessors__bindgen_ty_1::int16"]
[::core::mem::offset_of!(PropertyAnimationAccessors__bindgen_ty_1, int16) - 0usize];
["Offset of field: PropertyAnimationAccessors__bindgen_ty_1::gpoint"]
[::core::mem::offset_of!(PropertyAnimationAccessors__bindgen_ty_1, gpoint) - 0usize];
["Offset of field: PropertyAnimationAccessors__bindgen_ty_1::grect"]
[::core::mem::offset_of!(PropertyAnimationAccessors__bindgen_ty_1, grect) - 0usize];
["Offset of field: PropertyAnimationAccessors__bindgen_ty_1::gcolor8"]
[::core::mem::offset_of!(PropertyAnimationAccessors__bindgen_ty_1, gcolor8) - 0usize];
["Offset of field: PropertyAnimationAccessors__bindgen_ty_1::uint32"]
[::core::mem::offset_of!(PropertyAnimationAccessors__bindgen_ty_1, uint32) - 0usize];
};
#[repr(C)]
#[derive(Copy, Clone)]
pub union PropertyAnimationAccessors__bindgen_ty_2 {
pub int16: Int16Getter,
pub gpoint: GPointGetter,
pub grect: GRectGetter,
pub gcolor8: GColor8Getter,
pub uint32: UInt32Getter,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of PropertyAnimationAccessors__bindgen_ty_2"]
[::core::mem::size_of::<PropertyAnimationAccessors__bindgen_ty_2>() - 4usize];
["Alignment of PropertyAnimationAccessors__bindgen_ty_2"]
[::core::mem::align_of::<PropertyAnimationAccessors__bindgen_ty_2>() - 4usize];
["Offset of field: PropertyAnimationAccessors__bindgen_ty_2::int16"]
[::core::mem::offset_of!(PropertyAnimationAccessors__bindgen_ty_2, int16) - 0usize];
["Offset of field: PropertyAnimationAccessors__bindgen_ty_2::gpoint"]
[::core::mem::offset_of!(PropertyAnimationAccessors__bindgen_ty_2, gpoint) - 0usize];
["Offset of field: PropertyAnimationAccessors__bindgen_ty_2::grect"]
[::core::mem::offset_of!(PropertyAnimationAccessors__bindgen_ty_2, grect) - 0usize];
["Offset of field: PropertyAnimationAccessors__bindgen_ty_2::gcolor8"]
[::core::mem::offset_of!(PropertyAnimationAccessors__bindgen_ty_2, gcolor8) - 0usize];
["Offset of field: PropertyAnimationAccessors__bindgen_ty_2::uint32"]
[::core::mem::offset_of!(PropertyAnimationAccessors__bindgen_ty_2, uint32) - 0usize];
};
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of PropertyAnimationAccessors"]
[::core::mem::size_of::<PropertyAnimationAccessors>() - 8usize];
["Alignment of PropertyAnimationAccessors"]
[::core::mem::align_of::<PropertyAnimationAccessors>() - 4usize];
["Offset of field: PropertyAnimationAccessors::setter"]
[::core::mem::offset_of!(PropertyAnimationAccessors, setter) - 0usize];
["Offset of field: PropertyAnimationAccessors::getter"]
[::core::mem::offset_of!(PropertyAnimationAccessors, getter) - 4usize];
};
#[repr(C)]
#[derive(Copy, Clone)]
pub struct PropertyAnimationImplementation {
pub base: AnimationImplementation,
pub accessors: PropertyAnimationAccessors,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of PropertyAnimationImplementation"]
[::core::mem::size_of::<PropertyAnimationImplementation>() - 20usize];
["Alignment of PropertyAnimationImplementation"]
[::core::mem::align_of::<PropertyAnimationImplementation>() - 4usize];
["Offset of field: PropertyAnimationImplementation::base"]
[::core::mem::offset_of!(PropertyAnimationImplementation, base) - 0usize];
["Offset of field: PropertyAnimationImplementation::accessors"]
[::core::mem::offset_of!(PropertyAnimationImplementation, accessors) - 12usize];
};
#[unsafe(naked)]
#[unsafe(link_section = ".text.property_animation_get_animation")]
pub unsafe extern "C" fn property_animation_get_animation(
property_animation: *mut PropertyAnimation,
) -> *mut Animation {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1600", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.property_animation_subject")]
pub unsafe extern "C" fn property_animation_subject(
property_animation: *mut PropertyAnimation,
subject: *mut *mut ::core::ffi::c_void,
set: bool,
) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1604", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.property_animation_from")]
pub unsafe extern "C" fn property_animation_from(
property_animation: *mut PropertyAnimation,
from: *mut ::core::ffi::c_void,
size: usize,
set: bool,
) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1596", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.property_animation_to")]
pub unsafe extern "C" fn property_animation_to(
property_animation: *mut PropertyAnimation,
to: *mut ::core::ffi::c_void,
size: usize,
set: bool,
) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1608", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub type UnobstructedAreaWillChangeHandler = ::core::option::Option<
unsafe extern "C" fn(final_unobstructed_screen_area: GRect, context: *mut ::core::ffi::c_void),
>;
pub type UnobstructedAreaChangeHandler = ::core::option::Option<
unsafe extern "C" fn(progress: AnimationProgress, context: *mut ::core::ffi::c_void),
>;
pub type UnobstructedAreaDidChangeHandler =
::core::option::Option<unsafe extern "C" fn(context: *mut ::core::ffi::c_void)>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct UnobstructedAreaHandlers {
pub will_change: UnobstructedAreaWillChangeHandler,
pub change: UnobstructedAreaChangeHandler,
pub did_change: UnobstructedAreaDidChangeHandler,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of UnobstructedAreaHandlers"]
[::core::mem::size_of::<UnobstructedAreaHandlers>() - 12usize];
["Alignment of UnobstructedAreaHandlers"]
[::core::mem::align_of::<UnobstructedAreaHandlers>() - 4usize];
["Offset of field: UnobstructedAreaHandlers::will_change"]
[::core::mem::offset_of!(UnobstructedAreaHandlers, will_change) - 0usize];
["Offset of field: UnobstructedAreaHandlers::change"]
[::core::mem::offset_of!(UnobstructedAreaHandlers, change) - 4usize];
["Offset of field: UnobstructedAreaHandlers::did_change"]
[::core::mem::offset_of!(UnobstructedAreaHandlers, did_change) - 8usize];
};
#[unsafe(naked)]
#[unsafe(link_section = ".text.unobstructed_area_service_subscribe")]
pub unsafe extern "C" fn unobstructed_area_service_subscribe(
handlers: UnobstructedAreaHandlers,
context: *mut ::core::ffi::c_void,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2496", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.unobstructed_area_service_unsubscribe")]
pub unsafe extern "C" fn unobstructed_area_service_unsubscribe() {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2500", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[repr(C)]
#[derive(Debug)]
pub struct TextLayer {
_unused: [u8; 0],
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.text_layer_create")]
pub unsafe extern "C" fn text_layer_create(frame: GRect) -> *mut TextLayer {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1848", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.text_layer_destroy")]
pub unsafe extern "C" fn text_layer_destroy(text_layer: *mut TextLayer) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1852", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.text_layer_get_layer")]
pub unsafe extern "C" fn text_layer_get_layer(text_layer: *mut TextLayer) -> *mut Layer {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1860", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.text_layer_set_text")]
pub unsafe extern "C" fn text_layer_set_text(
text_layer: *mut TextLayer,
text: *const ::core::ffi::c_char,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1884", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.text_layer_get_text")]
pub unsafe extern "C" fn text_layer_get_text(
text_layer: *mut TextLayer,
) -> *const ::core::ffi::c_char {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1864", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.text_layer_set_background_color")]
pub unsafe extern "C" fn text_layer_set_background_color(
text_layer: *mut TextLayer,
color: GColor,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1868", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.text_layer_set_text_color")]
pub unsafe extern "C" fn text_layer_set_text_color(text_layer: *mut TextLayer, color: GColor) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1892", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.text_layer_set_overflow_mode")]
pub unsafe extern "C" fn text_layer_set_overflow_mode(
text_layer: *mut TextLayer,
line_mode: GTextOverflowMode,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1876", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.text_layer_set_font")]
pub unsafe extern "C" fn text_layer_set_font(text_layer: *mut TextLayer, font: GFont) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1872", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.text_layer_set_text_alignment")]
pub unsafe extern "C" fn text_layer_set_text_alignment(
text_layer: *mut TextLayer,
text_alignment: GTextAlignment,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1888", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.text_layer_enable_screen_text_flow_and_paging")]
pub unsafe extern "C" fn text_layer_enable_screen_text_flow_and_paging(
text_layer: *mut TextLayer,
inset: u8,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2384", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.text_layer_restore_default_text_flow_and_paging")]
pub unsafe extern "C" fn text_layer_restore_default_text_flow_and_paging(
text_layer: *mut TextLayer,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2388", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.text_layer_get_content_size")]
pub unsafe extern "C" fn text_layer_get_content_size(text_layer: *mut TextLayer) -> GSize {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1856", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.text_layer_set_size")]
pub unsafe extern "C" fn text_layer_set_size(text_layer: *mut TextLayer, max_size: GSize) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1880", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[repr(C)]
#[derive(Debug)]
pub struct ScrollLayer {
_unused: [u8; 0],
}
pub type ScrollLayerCallback = ::core::option::Option<
unsafe extern "C" fn(scroll_layer: *mut ScrollLayer, context: *mut ::core::ffi::c_void),
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ScrollLayerCallbacks {
pub click_config_provider: ClickConfigProvider,
pub content_offset_changed_handler: ScrollLayerCallback,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of ScrollLayerCallbacks"][::core::mem::size_of::<ScrollLayerCallbacks>() - 8usize];
["Alignment of ScrollLayerCallbacks"][::core::mem::align_of::<ScrollLayerCallbacks>() - 4usize];
["Offset of field: ScrollLayerCallbacks::click_config_provider"]
[::core::mem::offset_of!(ScrollLayerCallbacks, click_config_provider) - 0usize];
["Offset of field: ScrollLayerCallbacks::content_offset_changed_handler"]
[::core::mem::offset_of!(ScrollLayerCallbacks, content_offset_changed_handler) - 4usize];
};
#[unsafe(naked)]
#[unsafe(link_section = ".text.scroll_layer_create")]
pub unsafe extern "C" fn scroll_layer_create(frame: GRect) -> *mut ScrollLayer {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =872", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.scroll_layer_destroy")]
pub unsafe extern "C" fn scroll_layer_destroy(scroll_layer: *mut ScrollLayer) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =876", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.scroll_layer_get_layer")]
pub unsafe extern "C" fn scroll_layer_get_layer(scroll_layer: *const ScrollLayer) -> *mut Layer {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =888", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.scroll_layer_add_child")]
pub unsafe extern "C" fn scroll_layer_add_child(scroll_layer: *mut ScrollLayer, child: *mut Layer) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =868", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.scroll_layer_set_click_config_onto_window")]
pub unsafe extern "C" fn scroll_layer_set_click_config_onto_window(
scroll_layer: *mut ScrollLayer,
window: *mut Window,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =908", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.scroll_layer_set_callbacks")]
pub unsafe extern "C" fn scroll_layer_set_callbacks(
scroll_layer: *mut ScrollLayer,
callbacks: ScrollLayerCallbacks,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =904", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.scroll_layer_set_context")]
pub unsafe extern "C" fn scroll_layer_set_context(
scroll_layer: *mut ScrollLayer,
context: *mut ::core::ffi::c_void,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =920", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.scroll_layer_set_content_offset")]
pub unsafe extern "C" fn scroll_layer_set_content_offset(
scroll_layer: *mut ScrollLayer,
offset: GPoint,
animated: bool,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =912", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.scroll_layer_get_content_offset")]
pub unsafe extern "C" fn scroll_layer_get_content_offset(scroll_layer: *mut ScrollLayer) -> GPoint {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =880", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.scroll_layer_set_content_size")]
pub unsafe extern "C" fn scroll_layer_set_content_size(
scroll_layer: *mut ScrollLayer,
size: GSize,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =916", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.scroll_layer_get_content_size")]
pub unsafe extern "C" fn scroll_layer_get_content_size(scroll_layer: *const ScrollLayer) -> GSize {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =884", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.scroll_layer_set_frame")]
pub unsafe extern "C" fn scroll_layer_set_frame(scroll_layer: *mut ScrollLayer, frame: GRect) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =924", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.scroll_layer_scroll_up_click_handler")]
pub unsafe extern "C" fn scroll_layer_scroll_up_click_handler(
recognizer: ClickRecognizerRef,
context: *mut ::core::ffi::c_void,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =900", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.scroll_layer_scroll_down_click_handler")]
pub unsafe extern "C" fn scroll_layer_scroll_down_click_handler(
recognizer: ClickRecognizerRef,
context: *mut ::core::ffi::c_void,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =896", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.scroll_layer_set_shadow_hidden")]
pub unsafe extern "C" fn scroll_layer_set_shadow_hidden(
scroll_layer: *mut ScrollLayer,
hidden: bool,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =928", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.scroll_layer_get_shadow_hidden")]
pub unsafe extern "C" fn scroll_layer_get_shadow_hidden(scroll_layer: *const ScrollLayer) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =892", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.scroll_layer_set_paging")]
pub unsafe extern "C" fn scroll_layer_set_paging(
scroll_layer: *mut ScrollLayer,
paging_enabled: bool,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2380", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.scroll_layer_get_paging")]
pub unsafe extern "C" fn scroll_layer_get_paging(scroll_layer: *mut ScrollLayer) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2376", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[repr(C)]
#[derive(Debug)]
pub struct ContentIndicator {
_unused: [u8; 0],
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.scroll_layer_get_content_indicator")]
pub unsafe extern "C" fn scroll_layer_get_content_indicator(
scroll_layer: *mut ScrollLayer,
) -> *mut ContentIndicator {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2308", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub const ContentIndicatorDirection_ContentIndicatorDirectionUp: ContentIndicatorDirection = 0;
pub const ContentIndicatorDirection_ContentIndicatorDirectionDown: ContentIndicatorDirection = 1;
pub const ContentIndicatorDirection_NumContentIndicatorDirections: ContentIndicatorDirection = 2;
pub type ContentIndicatorDirection = ::core::ffi::c_uchar;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct ContentIndicatorConfig {
pub layer: *mut Layer,
pub times_out: bool,
pub alignment: GAlign,
pub colors: ContentIndicatorConfig__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct ContentIndicatorConfig__bindgen_ty_1 {
pub foreground: GColor,
pub background: GColor,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of ContentIndicatorConfig__bindgen_ty_1"]
[::core::mem::size_of::<ContentIndicatorConfig__bindgen_ty_1>() - 2usize];
["Alignment of ContentIndicatorConfig__bindgen_ty_1"]
[::core::mem::align_of::<ContentIndicatorConfig__bindgen_ty_1>() - 1usize];
["Offset of field: ContentIndicatorConfig__bindgen_ty_1::foreground"]
[::core::mem::offset_of!(ContentIndicatorConfig__bindgen_ty_1, foreground) - 0usize];
["Offset of field: ContentIndicatorConfig__bindgen_ty_1::background"]
[::core::mem::offset_of!(ContentIndicatorConfig__bindgen_ty_1, background) - 1usize];
};
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of ContentIndicatorConfig"][::core::mem::size_of::<ContentIndicatorConfig>() - 8usize];
["Alignment of ContentIndicatorConfig"]
[::core::mem::align_of::<ContentIndicatorConfig>() - 4usize];
["Offset of field: ContentIndicatorConfig::layer"]
[::core::mem::offset_of!(ContentIndicatorConfig, layer) - 0usize];
["Offset of field: ContentIndicatorConfig::times_out"]
[::core::mem::offset_of!(ContentIndicatorConfig, times_out) - 4usize];
["Offset of field: ContentIndicatorConfig::alignment"]
[::core::mem::offset_of!(ContentIndicatorConfig, alignment) - 5usize];
["Offset of field: ContentIndicatorConfig::colors"]
[::core::mem::offset_of!(ContentIndicatorConfig, colors) - 6usize];
};
#[unsafe(naked)]
#[unsafe(link_section = ".text.content_indicator_create")]
pub unsafe extern "C" fn content_indicator_create() -> *mut ContentIndicator {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2292", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.content_indicator_destroy")]
pub unsafe extern "C" fn content_indicator_destroy(content_indicator: *mut ContentIndicator) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2296", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.content_indicator_configure_direction")]
pub unsafe extern "C" fn content_indicator_configure_direction(
content_indicator: *mut ContentIndicator,
direction: ContentIndicatorDirection,
config: *const ContentIndicatorConfig,
) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2288", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.content_indicator_get_content_available")]
pub unsafe extern "C" fn content_indicator_get_content_available(
content_indicator: *mut ContentIndicator,
direction: ContentIndicatorDirection,
) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2300", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.content_indicator_set_content_available")]
pub unsafe extern "C" fn content_indicator_set_content_available(
content_indicator: *mut ContentIndicator,
direction: ContentIndicatorDirection,
available: bool,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2304", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.menu_cell_basic_draw")]
pub unsafe extern "C" fn menu_cell_basic_draw(
ctx: *mut GContext,
cell_layer: *const Layer,
title: *const ::core::ffi::c_char,
subtitle: *const ::core::ffi::c_char,
icon: *mut GBitmap,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =660", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.menu_cell_title_draw")]
pub unsafe extern "C" fn menu_cell_title_draw(
ctx: *mut GContext,
cell_layer: *const Layer,
title: *const ::core::ffi::c_char,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =668", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.menu_cell_basic_header_draw")]
pub unsafe extern "C" fn menu_cell_basic_header_draw(
ctx: *mut GContext,
cell_layer: *const Layer,
title: *const ::core::ffi::c_char,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =664", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct MenuIndex {
pub section: u16,
pub row: u16,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of MenuIndex"][::core::mem::size_of::<MenuIndex>() - 4usize];
["Alignment of MenuIndex"][::core::mem::align_of::<MenuIndex>() - 2usize];
["Offset of field: MenuIndex::section"][::core::mem::offset_of!(MenuIndex, section) - 0usize];
["Offset of field: MenuIndex::row"][::core::mem::offset_of!(MenuIndex, row) - 2usize];
};
#[unsafe(naked)]
#[unsafe(link_section = ".text.menu_index_compare")]
pub unsafe extern "C" fn menu_index_compare(a: *const MenuIndex, b: *const MenuIndex) -> i16 {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =672", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct MenuCellSpan {
pub y: i16,
pub h: i16,
pub sep: i16,
pub index: MenuIndex,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of MenuCellSpan"][::core::mem::size_of::<MenuCellSpan>() - 10usize];
["Alignment of MenuCellSpan"][::core::mem::align_of::<MenuCellSpan>() - 2usize];
["Offset of field: MenuCellSpan::y"][::core::mem::offset_of!(MenuCellSpan, y) - 0usize];
["Offset of field: MenuCellSpan::h"][::core::mem::offset_of!(MenuCellSpan, h) - 2usize];
["Offset of field: MenuCellSpan::sep"][::core::mem::offset_of!(MenuCellSpan, sep) - 4usize];
["Offset of field: MenuCellSpan::index"][::core::mem::offset_of!(MenuCellSpan, index) - 6usize];
};
#[repr(C)]
#[derive(Debug)]
pub struct MenuLayer {
_unused: [u8; 0],
}
pub type MenuLayerGetNumberOfSectionsCallback = ::core::option::Option<
unsafe extern "C" fn(
menu_layer: *mut MenuLayer,
callback_context: *mut ::core::ffi::c_void,
) -> u16,
>;
pub type MenuLayerGetNumberOfRowsInSectionsCallback = ::core::option::Option<
unsafe extern "C" fn(
menu_layer: *mut MenuLayer,
section_index: u16,
callback_context: *mut ::core::ffi::c_void,
) -> u16,
>;
pub type MenuLayerGetCellHeightCallback = ::core::option::Option<
unsafe extern "C" fn(
menu_layer: *mut MenuLayer,
cell_index: *mut MenuIndex,
callback_context: *mut ::core::ffi::c_void,
) -> i16,
>;
pub type MenuLayerGetHeaderHeightCallback = ::core::option::Option<
unsafe extern "C" fn(
menu_layer: *mut MenuLayer,
section_index: u16,
callback_context: *mut ::core::ffi::c_void,
) -> i16,
>;
pub type MenuLayerGetSeparatorHeightCallback = ::core::option::Option<
unsafe extern "C" fn(
menu_layer: *mut MenuLayer,
cell_index: *mut MenuIndex,
callback_context: *mut ::core::ffi::c_void,
) -> i16,
>;
pub type MenuLayerDrawRowCallback = ::core::option::Option<
unsafe extern "C" fn(
ctx: *mut GContext,
cell_layer: *const Layer,
cell_index: *mut MenuIndex,
callback_context: *mut ::core::ffi::c_void,
),
>;
pub type MenuLayerDrawHeaderCallback = ::core::option::Option<
unsafe extern "C" fn(
ctx: *mut GContext,
cell_layer: *const Layer,
section_index: u16,
callback_context: *mut ::core::ffi::c_void,
),
>;
pub type MenuLayerDrawSeparatorCallback = ::core::option::Option<
unsafe extern "C" fn(
ctx: *mut GContext,
cell_layer: *const Layer,
cell_index: *mut MenuIndex,
callback_context: *mut ::core::ffi::c_void,
),
>;
pub type MenuLayerSelectCallback = ::core::option::Option<
unsafe extern "C" fn(
menu_layer: *mut MenuLayer,
cell_index: *mut MenuIndex,
callback_context: *mut ::core::ffi::c_void,
),
>;
pub type MenuLayerSelectionChangedCallback = ::core::option::Option<
unsafe extern "C" fn(
menu_layer: *mut MenuLayer,
new_index: MenuIndex,
old_index: MenuIndex,
callback_context: *mut ::core::ffi::c_void,
),
>;
pub type MenuLayerSelectionWillChangeCallback = ::core::option::Option<
unsafe extern "C" fn(
menu_layer: *mut MenuLayer,
new_index: *mut MenuIndex,
old_index: MenuIndex,
callback_context: *mut ::core::ffi::c_void,
),
>;
pub type MenuLayerDrawBackgroundCallback = ::core::option::Option<
unsafe extern "C" fn(
ctx: *mut GContext,
bg_layer: *const Layer,
highlight: bool,
callback_context: *mut ::core::ffi::c_void,
),
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct MenuLayerCallbacks {
pub get_num_sections: MenuLayerGetNumberOfSectionsCallback,
pub get_num_rows: MenuLayerGetNumberOfRowsInSectionsCallback,
pub get_cell_height: MenuLayerGetCellHeightCallback,
pub get_header_height: MenuLayerGetHeaderHeightCallback,
pub draw_row: MenuLayerDrawRowCallback,
pub draw_header: MenuLayerDrawHeaderCallback,
pub select_click: MenuLayerSelectCallback,
pub select_long_click: MenuLayerSelectCallback,
pub selection_changed: MenuLayerSelectionChangedCallback,
pub get_separator_height: MenuLayerGetSeparatorHeightCallback,
pub draw_separator: MenuLayerDrawSeparatorCallback,
pub selection_will_change: MenuLayerSelectionWillChangeCallback,
pub draw_background: MenuLayerDrawBackgroundCallback,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of MenuLayerCallbacks"][::core::mem::size_of::<MenuLayerCallbacks>() - 52usize];
["Alignment of MenuLayerCallbacks"][::core::mem::align_of::<MenuLayerCallbacks>() - 4usize];
["Offset of field: MenuLayerCallbacks::get_num_sections"]
[::core::mem::offset_of!(MenuLayerCallbacks, get_num_sections) - 0usize];
["Offset of field: MenuLayerCallbacks::get_num_rows"]
[::core::mem::offset_of!(MenuLayerCallbacks, get_num_rows) - 4usize];
["Offset of field: MenuLayerCallbacks::get_cell_height"]
[::core::mem::offset_of!(MenuLayerCallbacks, get_cell_height) - 8usize];
["Offset of field: MenuLayerCallbacks::get_header_height"]
[::core::mem::offset_of!(MenuLayerCallbacks, get_header_height) - 12usize];
["Offset of field: MenuLayerCallbacks::draw_row"]
[::core::mem::offset_of!(MenuLayerCallbacks, draw_row) - 16usize];
["Offset of field: MenuLayerCallbacks::draw_header"]
[::core::mem::offset_of!(MenuLayerCallbacks, draw_header) - 20usize];
["Offset of field: MenuLayerCallbacks::select_click"]
[::core::mem::offset_of!(MenuLayerCallbacks, select_click) - 24usize];
["Offset of field: MenuLayerCallbacks::select_long_click"]
[::core::mem::offset_of!(MenuLayerCallbacks, select_long_click) - 28usize];
["Offset of field: MenuLayerCallbacks::selection_changed"]
[::core::mem::offset_of!(MenuLayerCallbacks, selection_changed) - 32usize];
["Offset of field: MenuLayerCallbacks::get_separator_height"]
[::core::mem::offset_of!(MenuLayerCallbacks, get_separator_height) - 36usize];
["Offset of field: MenuLayerCallbacks::draw_separator"]
[::core::mem::offset_of!(MenuLayerCallbacks, draw_separator) - 40usize];
["Offset of field: MenuLayerCallbacks::selection_will_change"]
[::core::mem::offset_of!(MenuLayerCallbacks, selection_will_change) - 44usize];
["Offset of field: MenuLayerCallbacks::draw_background"]
[::core::mem::offset_of!(MenuLayerCallbacks, draw_background) - 48usize];
};
#[unsafe(naked)]
#[unsafe(link_section = ".text.menu_layer_create")]
pub unsafe extern "C" fn menu_layer_create(frame: GRect) -> *mut MenuLayer {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1756", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.menu_layer_destroy")]
pub unsafe extern "C" fn menu_layer_destroy(menu_layer: *mut MenuLayer) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =680", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.menu_layer_get_layer")]
pub unsafe extern "C" fn menu_layer_get_layer(menu_layer: *const MenuLayer) -> *mut Layer {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =684", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.menu_layer_get_scroll_layer")]
pub unsafe extern "C" fn menu_layer_get_scroll_layer(
menu_layer: *const MenuLayer,
) -> *mut ScrollLayer {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =688", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.menu_layer_set_callbacks")]
pub unsafe extern "C" fn menu_layer_set_callbacks(
menu_layer: *mut MenuLayer,
callback_context: *mut ::core::ffi::c_void,
callbacks: MenuLayerCallbacks,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2088", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.menu_layer_set_click_config_onto_window")]
pub unsafe extern "C" fn menu_layer_set_click_config_onto_window(
menu_layer: *mut MenuLayer,
window: *mut Window,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =704", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub const MenuRowAlign_MenuRowAlignNone: MenuRowAlign = 0;
pub const MenuRowAlign_MenuRowAlignCenter: MenuRowAlign = 1;
pub const MenuRowAlign_MenuRowAlignTop: MenuRowAlign = 2;
pub const MenuRowAlign_MenuRowAlignBottom: MenuRowAlign = 3;
pub type MenuRowAlign = ::core::ffi::c_uchar;
#[unsafe(naked)]
#[unsafe(link_section = ".text.menu_layer_set_selected_next")]
pub unsafe extern "C" fn menu_layer_set_selected_next(
menu_layer: *mut MenuLayer,
up: bool,
scroll_align: MenuRowAlign,
animated: bool,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =712", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.menu_layer_set_selected_index")]
pub unsafe extern "C" fn menu_layer_set_selected_index(
menu_layer: *mut MenuLayer,
index: MenuIndex,
scroll_align: MenuRowAlign,
animated: bool,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =708", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.menu_layer_get_selected_index")]
pub unsafe extern "C" fn menu_layer_get_selected_index(menu_layer: *const MenuLayer) -> MenuIndex {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =692", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.menu_layer_reload_data")]
pub unsafe extern "C" fn menu_layer_reload_data(menu_layer: *mut MenuLayer) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =696", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.menu_cell_layer_is_highlighted")]
pub unsafe extern "C" fn menu_cell_layer_is_highlighted(cell_layer: *const Layer) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1836", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.menu_layer_set_normal_colors")]
pub unsafe extern "C" fn menu_layer_set_normal_colors(
menu_layer: *mut MenuLayer,
background: GColor,
foreground: GColor,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2084", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.menu_layer_set_highlight_colors")]
pub unsafe extern "C" fn menu_layer_set_highlight_colors(
menu_layer: *mut MenuLayer,
background: GColor,
foreground: GColor,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2080", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.menu_layer_pad_bottom_enable")]
pub unsafe extern "C" fn menu_layer_pad_bottom_enable(menu_layer: *mut MenuLayer, enable: bool) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2092", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.menu_layer_get_center_focused")]
pub unsafe extern "C" fn menu_layer_get_center_focused(menu_layer: *mut MenuLayer) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2312", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.menu_layer_set_center_focused")]
pub unsafe extern "C" fn menu_layer_set_center_focused(
menu_layer: *mut MenuLayer,
center_focused: bool,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2316", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.menu_layer_is_index_selected")]
pub unsafe extern "C" fn menu_layer_is_index_selected(
menu_layer: *const MenuLayer,
index: *mut MenuIndex,
) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2392", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[repr(C)]
#[derive(Debug)]
pub struct SimpleMenuLayer {
_unused: [u8; 0],
}
pub type SimpleMenuLayerSelectCallback = ::core::option::Option<
unsafe extern "C" fn(index: ::core::ffi::c_int, context: *mut ::core::ffi::c_void),
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct SimpleMenuItem {
pub title: *const ::core::ffi::c_char,
pub subtitle: *const ::core::ffi::c_char,
pub icon: *mut GBitmap,
pub callback: SimpleMenuLayerSelectCallback,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of SimpleMenuItem"][::core::mem::size_of::<SimpleMenuItem>() - 16usize];
["Alignment of SimpleMenuItem"][::core::mem::align_of::<SimpleMenuItem>() - 4usize];
["Offset of field: SimpleMenuItem::title"]
[::core::mem::offset_of!(SimpleMenuItem, title) - 0usize];
["Offset of field: SimpleMenuItem::subtitle"]
[::core::mem::offset_of!(SimpleMenuItem, subtitle) - 4usize];
["Offset of field: SimpleMenuItem::icon"]
[::core::mem::offset_of!(SimpleMenuItem, icon) - 8usize];
["Offset of field: SimpleMenuItem::callback"]
[::core::mem::offset_of!(SimpleMenuItem, callback) - 12usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct SimpleMenuSection {
pub title: *const ::core::ffi::c_char,
pub items: *const SimpleMenuItem,
pub num_items: u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of SimpleMenuSection"][::core::mem::size_of::<SimpleMenuSection>() - 12usize];
["Alignment of SimpleMenuSection"][::core::mem::align_of::<SimpleMenuSection>() - 4usize];
["Offset of field: SimpleMenuSection::title"]
[::core::mem::offset_of!(SimpleMenuSection, title) - 0usize];
["Offset of field: SimpleMenuSection::items"]
[::core::mem::offset_of!(SimpleMenuSection, items) - 4usize];
["Offset of field: SimpleMenuSection::num_items"]
[::core::mem::offset_of!(SimpleMenuSection, num_items) - 8usize];
};
#[unsafe(naked)]
#[unsafe(link_section = ".text.simple_menu_layer_create")]
pub unsafe extern "C" fn simple_menu_layer_create(
frame: GRect,
window: *mut Window,
sections: *const SimpleMenuSection,
num_sections: i32,
callback_context: *mut ::core::ffi::c_void,
) -> *mut SimpleMenuLayer {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =932", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.simple_menu_layer_destroy")]
pub unsafe extern "C" fn simple_menu_layer_destroy(menu_layer: *mut SimpleMenuLayer) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =936", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.simple_menu_layer_get_layer")]
pub unsafe extern "C" fn simple_menu_layer_get_layer(
simple_menu: *const SimpleMenuLayer,
) -> *mut Layer {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =940", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.simple_menu_layer_get_selected_index")]
pub unsafe extern "C" fn simple_menu_layer_get_selected_index(
simple_menu: *const SimpleMenuLayer,
) -> ::core::ffi::c_int {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =944", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.simple_menu_layer_set_selected_index")]
pub unsafe extern "C" fn simple_menu_layer_set_selected_index(
simple_menu: *mut SimpleMenuLayer,
index: i32,
animated: bool,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =948", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.simple_menu_layer_get_menu_layer")]
pub unsafe extern "C" fn simple_menu_layer_get_menu_layer(
simple_menu: *mut SimpleMenuLayer,
) -> *mut MenuLayer {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1264", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub const ActionBarLayerIconPressAnimation_ActionBarLayerIconPressAnimationNone:
ActionBarLayerIconPressAnimation = 0;
pub const ActionBarLayerIconPressAnimation_ActionBarLayerIconPressAnimationMoveLeft:
ActionBarLayerIconPressAnimation = 1;
pub const ActionBarLayerIconPressAnimation_ActionBarLayerIconPressAnimationMoveUp:
ActionBarLayerIconPressAnimation = 2;
pub const ActionBarLayerIconPressAnimation_ActionBarLayerIconPressAnimationMoveRight:
ActionBarLayerIconPressAnimation = 3;
pub const ActionBarLayerIconPressAnimation_ActionBarLayerIconPressAnimationMoveDown:
ActionBarLayerIconPressAnimation = 4;
pub type ActionBarLayerIconPressAnimation = ::core::ffi::c_uchar;
#[repr(C)]
#[derive(Debug)]
pub struct ActionBarLayer {
_unused: [u8; 0],
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.action_bar_layer_create")]
pub unsafe extern "C" fn action_bar_layer_create() -> *mut ActionBarLayer {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1792", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.action_bar_layer_destroy")]
pub unsafe extern "C" fn action_bar_layer_destroy(action_bar_layer: *mut ActionBarLayer) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1796", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.action_bar_layer_get_layer")]
pub unsafe extern "C" fn action_bar_layer_get_layer(
action_bar_layer: *mut ActionBarLayer,
) -> *mut Layer {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1800", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.action_bar_layer_set_context")]
pub unsafe extern "C" fn action_bar_layer_set_context(
action_bar: *mut ActionBarLayer,
context: *mut ::core::ffi::c_void,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1816", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.action_bar_layer_set_click_config_provider")]
pub unsafe extern "C" fn action_bar_layer_set_click_config_provider(
action_bar: *mut ActionBarLayer,
click_config_provider: ClickConfigProvider,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1812", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.action_bar_layer_set_icon")]
pub unsafe extern "C" fn action_bar_layer_set_icon(
action_bar: *mut ActionBarLayer,
button_id: ButtonId,
icon: *const GBitmap,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1820", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.action_bar_layer_clear_icon")]
pub unsafe extern "C" fn action_bar_layer_clear_icon(
action_bar: *mut ActionBarLayer,
button_id: ButtonId,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1788", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.action_bar_layer_add_to_window")]
pub unsafe extern "C" fn action_bar_layer_add_to_window(
action_bar: *mut ActionBarLayer,
window: *mut Window,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1784", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.action_bar_layer_remove_from_window")]
pub unsafe extern "C" fn action_bar_layer_remove_from_window(action_bar: *mut ActionBarLayer) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1804", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.action_bar_layer_set_background_color")]
pub unsafe extern "C" fn action_bar_layer_set_background_color(
action_bar: *mut ActionBarLayer,
background_color: GColor,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1808", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.action_bar_layer_set_icon_animated")]
pub unsafe extern "C" fn action_bar_layer_set_icon_animated(
action_bar: *mut ActionBarLayer,
button_id: ButtonId,
icon: *const GBitmap,
animated: bool,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1824", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.action_bar_layer_set_icon_press_animation")]
pub unsafe extern "C" fn action_bar_layer_set_icon_press_animation(
action_bar: *mut ActionBarLayer,
button_id: ButtonId,
animation: ActionBarLayerIconPressAnimation,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1844", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[repr(C)]
#[derive(Debug)]
pub struct StatusBarLayer {
_unused: [u8; 0],
}
pub const StatusBarLayerSeparatorMode_StatusBarLayerSeparatorModeNone: StatusBarLayerSeparatorMode =
0;
pub const StatusBarLayerSeparatorMode_StatusBarLayerSeparatorModeDotted:
StatusBarLayerSeparatorMode = 1;
pub type StatusBarLayerSeparatorMode = ::core::ffi::c_uchar;
#[unsafe(naked)]
#[unsafe(link_section = ".text.status_bar_layer_create")]
pub unsafe extern "C" fn status_bar_layer_create() -> *mut StatusBarLayer {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2096", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.status_bar_layer_destroy")]
pub unsafe extern "C" fn status_bar_layer_destroy(status_bar_layer: *mut StatusBarLayer) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2100", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.status_bar_layer_get_layer")]
pub unsafe extern "C" fn status_bar_layer_get_layer(
status_bar_layer: *mut StatusBarLayer,
) -> *mut Layer {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2112", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.status_bar_layer_get_background_color")]
pub unsafe extern "C" fn status_bar_layer_get_background_color(
status_bar_layer: *const StatusBarLayer,
) -> GColor {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2104", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.status_bar_layer_get_foreground_color")]
pub unsafe extern "C" fn status_bar_layer_get_foreground_color(
status_bar_layer: *const StatusBarLayer,
) -> GColor {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2108", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.status_bar_layer_set_colors")]
pub unsafe extern "C" fn status_bar_layer_set_colors(
status_bar_layer: *mut StatusBarLayer,
background: GColor,
foreground: GColor,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2116", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.status_bar_layer_set_separator_mode")]
pub unsafe extern "C" fn status_bar_layer_set_separator_mode(
status_bar_layer: *mut StatusBarLayer,
mode: StatusBarLayerSeparatorMode,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2120", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[repr(C)]
#[derive(Debug)]
pub struct BitmapLayer {
_unused: [u8; 0],
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.bitmap_layer_create")]
pub unsafe extern "C" fn bitmap_layer_create(frame: GRect) -> *mut BitmapLayer {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =224", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.bitmap_layer_destroy")]
pub unsafe extern "C" fn bitmap_layer_destroy(bitmap_layer: *mut BitmapLayer) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =228", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.bitmap_layer_get_layer")]
pub unsafe extern "C" fn bitmap_layer_get_layer(bitmap_layer: *const BitmapLayer) -> *mut Layer {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =232", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.bitmap_layer_get_bitmap")]
pub unsafe extern "C" fn bitmap_layer_get_bitmap(bitmap_layer: *mut BitmapLayer) -> *const GBitmap {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1276", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.bitmap_layer_set_bitmap")]
pub unsafe extern "C" fn bitmap_layer_set_bitmap(
bitmap_layer: *mut BitmapLayer,
bitmap: *const GBitmap,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =244", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.bitmap_layer_set_alignment")]
pub unsafe extern "C" fn bitmap_layer_set_alignment(
bitmap_layer: *mut BitmapLayer,
alignment: GAlign,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =236", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.bitmap_layer_set_background_color")]
pub unsafe extern "C" fn bitmap_layer_set_background_color(
bitmap_layer: *mut BitmapLayer,
color: GColor,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1480", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.bitmap_layer_set_compositing_mode")]
pub unsafe extern "C" fn bitmap_layer_set_compositing_mode(
bitmap_layer: *mut BitmapLayer,
mode: GCompOp,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =248", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[repr(C)]
#[derive(Debug)]
pub struct RotBitmapLayer {
_unused: [u8; 0],
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.rot_bitmap_layer_create")]
pub unsafe extern "C" fn rot_bitmap_layer_create(bitmap: *mut GBitmap) -> *mut RotBitmapLayer {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =840", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.rot_bitmap_layer_destroy")]
pub unsafe extern "C" fn rot_bitmap_layer_destroy(bitmap: *mut RotBitmapLayer) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =844", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.rot_bitmap_layer_get_layer")]
pub unsafe extern "C" fn rot_bitmap_layer_get_layer(
rot_bitmap_layer: *const RotBitmapLayer,
) -> *mut Layer {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2532", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.rot_bitmap_layer_set_corner_clip_color")]
pub unsafe extern "C" fn rot_bitmap_layer_set_corner_clip_color(
bitmap: *mut RotBitmapLayer,
color: GColor,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1496", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.rot_bitmap_layer_set_angle")]
pub unsafe extern "C" fn rot_bitmap_layer_set_angle(bitmap: *mut RotBitmapLayer, angle: i32) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =852", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.rot_bitmap_layer_increment_angle")]
pub unsafe extern "C" fn rot_bitmap_layer_increment_angle(
bitmap: *mut RotBitmapLayer,
angle_change: i32,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =848", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.rot_bitmap_set_src_ic")]
pub unsafe extern "C" fn rot_bitmap_set_src_ic(bitmap: *mut RotBitmapLayer, ic: GPoint) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =864", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.rot_bitmap_set_compositing_mode")]
pub unsafe extern "C" fn rot_bitmap_set_compositing_mode(
bitmap: *mut RotBitmapLayer,
mode: GCompOp,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =860", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[repr(C)]
#[derive(Debug)]
pub struct NumberWindow {
_unused: [u8; 0],
}
pub type NumberWindowCallback = ::core::option::Option<
unsafe extern "C" fn(number_window: *mut NumberWindow, context: *mut ::core::ffi::c_void),
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct NumberWindowCallbacks {
pub incremented: NumberWindowCallback,
pub decremented: NumberWindowCallback,
pub selected: NumberWindowCallback,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of NumberWindowCallbacks"][::core::mem::size_of::<NumberWindowCallbacks>() - 12usize];
["Alignment of NumberWindowCallbacks"]
[::core::mem::align_of::<NumberWindowCallbacks>() - 4usize];
["Offset of field: NumberWindowCallbacks::incremented"]
[::core::mem::offset_of!(NumberWindowCallbacks, incremented) - 0usize];
["Offset of field: NumberWindowCallbacks::decremented"]
[::core::mem::offset_of!(NumberWindowCallbacks, decremented) - 4usize];
["Offset of field: NumberWindowCallbacks::selected"]
[::core::mem::offset_of!(NumberWindowCallbacks, selected) - 8usize];
};
#[unsafe(naked)]
#[unsafe(link_section = ".text.number_window_create")]
pub unsafe extern "C" fn number_window_create(
label: *const ::core::ffi::c_char,
callbacks: NumberWindowCallbacks,
callback_context: *mut ::core::ffi::c_void,
) -> *mut NumberWindow {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =716", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.number_window_destroy")]
pub unsafe extern "C" fn number_window_destroy(number_window: *mut NumberWindow) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =720", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.number_window_set_label")]
pub unsafe extern "C" fn number_window_set_label(
numberwindow: *mut NumberWindow,
label: *const ::core::ffi::c_char,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =728", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.number_window_set_max")]
pub unsafe extern "C" fn number_window_set_max(numberwindow: *mut NumberWindow, max: i32) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =732", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.number_window_set_min")]
pub unsafe extern "C" fn number_window_set_min(numberwindow: *mut NumberWindow, min: i32) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =736", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.number_window_set_value")]
pub unsafe extern "C" fn number_window_set_value(numberwindow: *mut NumberWindow, value: i32) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =744", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.number_window_set_step_size")]
pub unsafe extern "C" fn number_window_set_step_size(numberwindow: *mut NumberWindow, step: i32) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =740", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.number_window_get_value")]
pub unsafe extern "C" fn number_window_get_value(numberwindow: *const NumberWindow) -> i32 {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =724", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.number_window_get_window")]
pub unsafe extern "C" fn number_window_get_window(numberwindow: *mut NumberWindow) -> *mut Window {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1288", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[repr(C)]
#[derive(Debug)]
pub struct ActionMenuItem {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug)]
pub struct ActionMenuLevel {
_unused: [u8; 0],
}
pub const ActionMenuAlign_ActionMenuAlignTop: ActionMenuAlign = 0;
pub const ActionMenuAlign_ActionMenuAlignCenter: ActionMenuAlign = 1;
pub type ActionMenuAlign = ::core::ffi::c_uchar;
#[repr(C)]
#[derive(Debug)]
pub struct ActionMenu {
_unused: [u8; 0],
}
pub type ActionMenuDidCloseCb = ::core::option::Option<
unsafe extern "C" fn(
menu: *mut ActionMenu,
performed_action: *const ActionMenuItem,
context: *mut ::core::ffi::c_void,
),
>;
pub const ActionMenuLevelDisplayMode_ActionMenuLevelDisplayModeWide: ActionMenuLevelDisplayMode = 0;
pub const ActionMenuLevelDisplayMode_ActionMenuLevelDisplayModeThin: ActionMenuLevelDisplayMode = 1;
pub type ActionMenuLevelDisplayMode = ::core::ffi::c_uchar;
pub type ActionMenuPerformActionCb = ::core::option::Option<
unsafe extern "C" fn(
action_menu: *mut ActionMenu,
action: *const ActionMenuItem,
context: *mut ::core::ffi::c_void,
),
>;
pub type ActionMenuEachItemCb = ::core::option::Option<
unsafe extern "C" fn(item: *const ActionMenuItem, context: *mut ::core::ffi::c_void),
>;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct ActionMenuConfig {
pub root_level: *const ActionMenuLevel,
pub context: *mut ::core::ffi::c_void,
pub colors: ActionMenuConfig__bindgen_ty_1,
pub will_close: ActionMenuDidCloseCb,
pub did_close: ActionMenuDidCloseCb,
pub align: ActionMenuAlign,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct ActionMenuConfig__bindgen_ty_1 {
pub background: GColor,
pub foreground: GColor,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of ActionMenuConfig__bindgen_ty_1"]
[::core::mem::size_of::<ActionMenuConfig__bindgen_ty_1>() - 2usize];
["Alignment of ActionMenuConfig__bindgen_ty_1"]
[::core::mem::align_of::<ActionMenuConfig__bindgen_ty_1>() - 1usize];
["Offset of field: ActionMenuConfig__bindgen_ty_1::background"]
[::core::mem::offset_of!(ActionMenuConfig__bindgen_ty_1, background) - 0usize];
["Offset of field: ActionMenuConfig__bindgen_ty_1::foreground"]
[::core::mem::offset_of!(ActionMenuConfig__bindgen_ty_1, foreground) - 1usize];
};
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of ActionMenuConfig"][::core::mem::size_of::<ActionMenuConfig>() - 24usize];
["Alignment of ActionMenuConfig"][::core::mem::align_of::<ActionMenuConfig>() - 4usize];
["Offset of field: ActionMenuConfig::root_level"]
[::core::mem::offset_of!(ActionMenuConfig, root_level) - 0usize];
["Offset of field: ActionMenuConfig::context"]
[::core::mem::offset_of!(ActionMenuConfig, context) - 4usize];
["Offset of field: ActionMenuConfig::colors"]
[::core::mem::offset_of!(ActionMenuConfig, colors) - 8usize];
["Offset of field: ActionMenuConfig::will_close"]
[::core::mem::offset_of!(ActionMenuConfig, will_close) - 12usize];
["Offset of field: ActionMenuConfig::did_close"]
[::core::mem::offset_of!(ActionMenuConfig, did_close) - 16usize];
["Offset of field: ActionMenuConfig::align"]
[::core::mem::offset_of!(ActionMenuConfig, align) - 20usize];
};
#[unsafe(naked)]
#[unsafe(link_section = ".text.action_menu_item_get_label")]
pub unsafe extern "C" fn action_menu_item_get_label(
item: *const ActionMenuItem,
) -> *mut ::core::ffi::c_char {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2168", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.action_menu_item_get_action_data")]
pub unsafe extern "C" fn action_menu_item_get_action_data(
item: *const ActionMenuItem,
) -> *mut ::core::ffi::c_void {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2164", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.action_menu_level_create")]
pub unsafe extern "C" fn action_menu_level_create(max_items: u16) -> *mut ActionMenuLevel {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2180", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.action_menu_level_set_display_mode")]
pub unsafe extern "C" fn action_menu_level_set_display_mode(
level: *mut ActionMenuLevel,
display_mode: ActionMenuLevelDisplayMode,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2184", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.action_menu_level_add_action")]
pub unsafe extern "C" fn action_menu_level_add_action(
level: *mut ActionMenuLevel,
label: *const ::core::ffi::c_char,
cb: ActionMenuPerformActionCb,
action_data: *mut ::core::ffi::c_void,
) -> *mut ActionMenuItem {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2172", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.action_menu_level_add_child")]
pub unsafe extern "C" fn action_menu_level_add_child(
level: *mut ActionMenuLevel,
child: *mut ActionMenuLevel,
label: *const ::core::ffi::c_char,
) -> *mut ActionMenuItem {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2176", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.action_menu_hierarchy_destroy")]
pub unsafe extern "C" fn action_menu_hierarchy_destroy(
root: *const ActionMenuLevel,
each_cb: ActionMenuEachItemCb,
context: *mut ::core::ffi::c_void,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2160", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.action_menu_get_context")]
pub unsafe extern "C" fn action_menu_get_context(
action_menu: *mut ActionMenu,
) -> *mut ::core::ffi::c_void {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2152", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.action_menu_get_root_level")]
pub unsafe extern "C" fn action_menu_get_root_level(
action_menu: *mut ActionMenu,
) -> *mut ActionMenuLevel {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2156", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.action_menu_open")]
pub unsafe extern "C" fn action_menu_open(config: *mut ActionMenuConfig) -> *mut ActionMenu {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2188", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.action_menu_freeze")]
pub unsafe extern "C" fn action_menu_freeze(action_menu: *mut ActionMenu) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2148", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.action_menu_unfreeze")]
pub unsafe extern "C" fn action_menu_unfreeze(action_menu: *mut ActionMenu) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2196", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.action_menu_set_result_window")]
pub unsafe extern "C" fn action_menu_set_result_window(
action_menu: *mut ActionMenu,
result_window: *mut Window,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2192", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.action_menu_close")]
pub unsafe extern "C" fn action_menu_close(action_menu: *mut ActionMenu, animated: bool) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2144", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct VibePattern {
pub durations: *const u32,
pub num_segments: u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of VibePattern"][::core::mem::size_of::<VibePattern>() - 8usize];
["Alignment of VibePattern"][::core::mem::align_of::<VibePattern>() - 4usize];
["Offset of field: VibePattern::durations"]
[::core::mem::offset_of!(VibePattern, durations) - 0usize];
["Offset of field: VibePattern::num_segments"]
[::core::mem::offset_of!(VibePattern, num_segments) - 4usize];
};
#[unsafe(naked)]
#[unsafe(link_section = ".text.vibes_cancel")]
pub unsafe extern "C" fn vibes_cancel() {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1064", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.vibes_short_pulse")]
pub unsafe extern "C" fn vibes_short_pulse() {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1080", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.vibes_long_pulse")]
pub unsafe extern "C" fn vibes_long_pulse() {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1076", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.vibes_double_pulse")]
pub unsafe extern "C" fn vibes_double_pulse() {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1068", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.vibes_enqueue_custom_pattern")]
pub unsafe extern "C" fn vibes_enqueue_custom_pattern(pattern: VibePattern) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1072", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub const SpeakerWaveform_SpeakerWaveformSine: SpeakerWaveform = 0;
pub const SpeakerWaveform_SpeakerWaveformSquare: SpeakerWaveform = 1;
pub const SpeakerWaveform_SpeakerWaveformTriangle: SpeakerWaveform = 2;
pub const SpeakerWaveform_SpeakerWaveformSawtooth: SpeakerWaveform = 3;
pub const SpeakerWaveform_SpeakerWaveformCount: SpeakerWaveform = 4;
pub type SpeakerWaveform = ::core::ffi::c_uchar;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PACKED {
pub midi_note: u8,
pub waveform: u8,
pub duration_ms: u16,
pub velocity: u8,
pub reserved: u8,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of PACKED"][::core::mem::size_of::<PACKED>() - 6usize];
["Alignment of PACKED"][::core::mem::align_of::<PACKED>() - 2usize];
["Offset of field: PACKED::midi_note"][::core::mem::offset_of!(PACKED, midi_note) - 0usize];
["Offset of field: PACKED::waveform"][::core::mem::offset_of!(PACKED, waveform) - 1usize];
["Offset of field: PACKED::duration_ms"][::core::mem::offset_of!(PACKED, duration_ms) - 2usize];
["Offset of field: PACKED::velocity"][::core::mem::offset_of!(PACKED, velocity) - 4usize];
["Offset of field: PACKED::reserved"][::core::mem::offset_of!(PACKED, reserved) - 5usize];
};
pub type SpeakerNote = PACKED;
pub const SpeakerPcmFormat_SpeakerPcmFormat_8kHz_8bit: SpeakerPcmFormat = 0;
pub const SpeakerPcmFormat_SpeakerPcmFormat_16kHz_8bit: SpeakerPcmFormat = 1;
pub const SpeakerPcmFormat_SpeakerPcmFormat_8kHz_16bit: SpeakerPcmFormat = 2;
pub const SpeakerPcmFormat_SpeakerPcmFormat_16kHz_16bit: SpeakerPcmFormat = 3;
pub const SpeakerPcmFormat_SpeakerPcmFormatCount: SpeakerPcmFormat = 4;
pub type SpeakerPcmFormat = ::core::ffi::c_uchar;
pub const SpeakerStatus_SpeakerStatusIdle: SpeakerStatus = 0;
pub const SpeakerStatus_SpeakerStatusPlaying: SpeakerStatus = 1;
pub const SpeakerStatus_SpeakerStatusDraining: SpeakerStatus = 2;
pub type SpeakerStatus = ::core::ffi::c_uchar;
pub const SpeakerFinishReason_SpeakerFinishReasonDone: SpeakerFinishReason = 0;
pub const SpeakerFinishReason_SpeakerFinishReasonStopped: SpeakerFinishReason = 1;
pub const SpeakerFinishReason_SpeakerFinishReasonPreempted: SpeakerFinishReason = 2;
pub const SpeakerFinishReason_SpeakerFinishReasonError: SpeakerFinishReason = 3;
pub type SpeakerFinishReason = ::core::ffi::c_uchar;
pub type SpeakerFinishedCallback = ::core::option::Option<
unsafe extern "C" fn(reason: SpeakerFinishReason, ctx: *mut ::core::ffi::c_void),
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct SpeakerSample {
pub data: *const ::core::ffi::c_void,
pub num_bytes: u32,
pub format: SpeakerPcmFormat,
pub base_midi_note: u8,
pub loop_: bool,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of SpeakerSample"][::core::mem::size_of::<SpeakerSample>() - 12usize];
["Alignment of SpeakerSample"][::core::mem::align_of::<SpeakerSample>() - 4usize];
["Offset of field: SpeakerSample::data"][::core::mem::offset_of!(SpeakerSample, data) - 0usize];
["Offset of field: SpeakerSample::num_bytes"]
[::core::mem::offset_of!(SpeakerSample, num_bytes) - 4usize];
["Offset of field: SpeakerSample::format"]
[::core::mem::offset_of!(SpeakerSample, format) - 8usize];
["Offset of field: SpeakerSample::base_midi_note"]
[::core::mem::offset_of!(SpeakerSample, base_midi_note) - 9usize];
["Offset of field: SpeakerSample::loop_"]
[::core::mem::offset_of!(SpeakerSample, loop_) - 10usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct SpeakerTrack {
pub notes: *const SpeakerNote,
pub num_notes: u32,
pub sample: *const SpeakerSample,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of SpeakerTrack"][::core::mem::size_of::<SpeakerTrack>() - 12usize];
["Alignment of SpeakerTrack"][::core::mem::align_of::<SpeakerTrack>() - 4usize];
["Offset of field: SpeakerTrack::notes"][::core::mem::offset_of!(SpeakerTrack, notes) - 0usize];
["Offset of field: SpeakerTrack::num_notes"]
[::core::mem::offset_of!(SpeakerTrack, num_notes) - 4usize];
["Offset of field: SpeakerTrack::sample"]
[::core::mem::offset_of!(SpeakerTrack, sample) - 8usize];
};
#[unsafe(naked)]
#[unsafe(link_section = ".text.speaker_play_notes")]
pub unsafe extern "C" fn speaker_play_notes(
notes: *const SpeakerNote,
num_notes: u32,
volume: u8,
) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2568", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.speaker_play_tracks")]
pub unsafe extern "C" fn speaker_play_tracks(
tracks: *const SpeakerTrack,
num_tracks: u32,
volume: u8,
) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2576", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.speaker_play_tone")]
pub unsafe extern "C" fn speaker_play_tone(
frequency_hz: u16,
duration_ms: u32,
volume: u8,
waveform: SpeakerWaveform,
) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2572", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.speaker_stream_open")]
pub unsafe extern "C" fn speaker_stream_open(format: SpeakerPcmFormat, volume: u8) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2596", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.speaker_stream_write")]
pub unsafe extern "C" fn speaker_stream_write(
data: *const ::core::ffi::c_void,
num_bytes: u32,
) -> u32 {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2600", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.speaker_stream_close")]
pub unsafe extern "C" fn speaker_stream_close() {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2592", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.speaker_stop")]
pub unsafe extern "C" fn speaker_stop() {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2588", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.speaker_set_volume")]
pub unsafe extern "C" fn speaker_set_volume(volume: u8) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2584", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.speaker_get_status")]
pub unsafe extern "C" fn speaker_get_status() -> SpeakerStatus {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2564", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.speaker_set_finish_callback")]
pub unsafe extern "C" fn speaker_set_finish_callback(
cb: SpeakerFinishedCallback,
ctx: *mut ::core::ffi::c_void,
) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2580", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.speaker_is_muted")]
pub unsafe extern "C" fn speaker_is_muted() -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2608", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.light_is_on")]
pub unsafe extern "C" fn light_is_on() -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2544", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.light_enable_interaction")]
pub unsafe extern "C" fn light_enable_interaction() {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =636", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.light_enable")]
pub unsafe extern "C" fn light_enable(enable: bool) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =632", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.light_set_color")]
pub unsafe extern "C" fn light_set_color(color: GColor) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2536", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.light_set_color_rgb888")]
pub unsafe extern "C" fn light_set_color_rgb888(rgb: u32) {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2560", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.light_set_system_color")]
pub unsafe extern "C" fn light_set_system_color() {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2540", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.preferred_result_display_duration")]
pub unsafe extern "C" fn preferred_result_display_duration() -> u32 {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2492", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
pub const PreferredContentSize_PreferredContentSizeSmall: PreferredContentSize = 0;
pub const PreferredContentSize_PreferredContentSizeMedium: PreferredContentSize = 1;
pub const PreferredContentSize_PreferredContentSizeLarge: PreferredContentSize = 2;
pub const PreferredContentSize_PreferredContentSizeExtraLarge: PreferredContentSize = 3;
pub const PreferredContentSize_NumPreferredContentSizes: PreferredContentSize = 4;
pub type PreferredContentSize = ::core::ffi::c_uchar;
#[unsafe(naked)]
#[unsafe(link_section = ".text.preferred_content_size")]
pub unsafe extern "C" fn preferred_content_size() -> PreferredContentSize {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2520", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.quiet_time_is_active")]
pub unsafe extern "C" fn quiet_time_is_active() -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2524", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm {
pub tm_sec: ::core::ffi::c_int,
pub tm_min: ::core::ffi::c_int,
pub tm_hour: ::core::ffi::c_int,
pub tm_mday: ::core::ffi::c_int,
pub tm_mon: ::core::ffi::c_int,
pub tm_year: ::core::ffi::c_int,
pub tm_wday: ::core::ffi::c_int,
pub tm_yday: ::core::ffi::c_int,
pub tm_isdst: ::core::ffi::c_int,
pub tm_gmtoff: ::core::ffi::c_int,
pub tm_zone: [::core::ffi::c_char; 6usize],
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of tm"][::core::mem::size_of::<tm>() - 48usize];
["Alignment of tm"][::core::mem::align_of::<tm>() - 4usize];
["Offset of field: tm::tm_sec"][::core::mem::offset_of!(tm, tm_sec) - 0usize];
["Offset of field: tm::tm_min"][::core::mem::offset_of!(tm, tm_min) - 4usize];
["Offset of field: tm::tm_hour"][::core::mem::offset_of!(tm, tm_hour) - 8usize];
["Offset of field: tm::tm_mday"][::core::mem::offset_of!(tm, tm_mday) - 12usize];
["Offset of field: tm::tm_mon"][::core::mem::offset_of!(tm, tm_mon) - 16usize];
["Offset of field: tm::tm_year"][::core::mem::offset_of!(tm, tm_year) - 20usize];
["Offset of field: tm::tm_wday"][::core::mem::offset_of!(tm, tm_wday) - 24usize];
["Offset of field: tm::tm_yday"][::core::mem::offset_of!(tm, tm_yday) - 28usize];
["Offset of field: tm::tm_isdst"][::core::mem::offset_of!(tm, tm_isdst) - 32usize];
["Offset of field: tm::tm_gmtoff"][::core::mem::offset_of!(tm, tm_gmtoff) - 36usize];
["Offset of field: tm::tm_zone"][::core::mem::offset_of!(tm, tm_zone) - 40usize];
};
#[unsafe(naked)]
#[unsafe(link_section = ".text.strftime")]
pub unsafe extern "C" fn strftime(
s: *mut ::core::ffi::c_char,
maxsize: usize,
format: *const ::core::ffi::c_char,
tm_p: *const tm,
) -> usize {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =976", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.localtime")]
pub unsafe extern "C" fn localtime(timep: *const time_t) -> *mut tm {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1516", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.gmtime")]
pub unsafe extern "C" fn gmtime(timep: *const time_t) -> *mut tm {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =416", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.mktime")]
pub unsafe extern "C" fn mktime(tb: *mut tm) -> time_t {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =1452", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.time")]
pub unsafe extern "C" fn time(tloc: *mut time_t) -> time_t {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2076", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.difftime")]
pub unsafe extern "C" fn difftime(end: time_t, beginning: time_t) -> f64 {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2124", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.time_ms")]
pub unsafe extern "C" fn time_ms(tloc: *mut time_t, out_ms: *mut u16) -> u16 {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2128", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.time_start_of_today")]
pub unsafe extern "C" fn time_start_of_today() -> time_t {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2432", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.health_service_peek_hrv_ppi_ms")]
pub unsafe extern "C" fn health_service_peek_hrv_ppi_ms() -> u16 {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2700", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}
#[unsafe(naked)]
#[unsafe(link_section = ".text.health_service_set_hrv_sample_period")]
pub unsafe extern "C" fn health_service_set_hrv_sample_period(interval_sec: u16) -> bool {
core::arch::naked_asm!(
"push {{r0-r3}}", "ldr r1, =2704", "b {resolver}", resolver = sym crate
::shim::jump_to_pbl_function,
)
}