|
1 | 1 | /* 1.87.0-nightly */ |
2 | | -/* qemu git hash: 2a676d9cd8c474b5c0db1d77d2769e56e2ed8524 */ |
| 2 | +/* qemu git hash: 97bef506eed24ee8d0eda4a07c4419c55dae4acb */ |
3 | 3 | /* automatically generated by rust-bindgen 0.71.1 */ |
4 | 4 |
|
5 | 5 | use libc::siginfo_t; |
@@ -8687,37 +8687,131 @@ unsafe extern "C" { |
8687 | 8687 | unsafe extern "C" { |
8688 | 8688 | pub fn libafl_hook_new_thread_run(env: *mut CPUArchState, tid: u32) -> bool; |
8689 | 8689 | } |
| 8690 | +pub const libafl_syshook_ret_tag_LIBAFL_SYSHOOK_RUN: libafl_syshook_ret_tag = |
| 8691 | + libafl_syshook_ret_tag(0); |
| 8692 | +pub const libafl_syshook_ret_tag_LIBAFL_SYSHOOK_SKIP: libafl_syshook_ret_tag = |
| 8693 | + libafl_syshook_ret_tag(1); |
| 8694 | +impl ::std::ops::BitOr<libafl_syshook_ret_tag> for libafl_syshook_ret_tag { |
| 8695 | + type Output = Self; |
| 8696 | + #[inline] |
| 8697 | + fn bitor(self, other: Self) -> Self { |
| 8698 | + libafl_syshook_ret_tag(self.0 | other.0) |
| 8699 | + } |
| 8700 | +} |
| 8701 | +impl ::std::ops::BitOrAssign for libafl_syshook_ret_tag { |
| 8702 | + #[inline] |
| 8703 | + fn bitor_assign(&mut self, rhs: libafl_syshook_ret_tag) { |
| 8704 | + self.0 |= rhs.0; |
| 8705 | + } |
| 8706 | +} |
| 8707 | +impl ::std::ops::BitAnd<libafl_syshook_ret_tag> for libafl_syshook_ret_tag { |
| 8708 | + type Output = Self; |
| 8709 | + #[inline] |
| 8710 | + fn bitand(self, other: Self) -> Self { |
| 8711 | + libafl_syshook_ret_tag(self.0 & other.0) |
| 8712 | + } |
| 8713 | +} |
| 8714 | +impl ::std::ops::BitAndAssign for libafl_syshook_ret_tag { |
| 8715 | + #[inline] |
| 8716 | + fn bitand_assign(&mut self, rhs: libafl_syshook_ret_tag) { |
| 8717 | + self.0 &= rhs.0; |
| 8718 | + } |
| 8719 | +} |
| 8720 | +#[repr(transparent)] |
| 8721 | +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] |
| 8722 | +pub struct libafl_syshook_ret_tag(pub ::std::os::raw::c_uint); |
8690 | 8723 | #[repr(C)] |
8691 | | -#[derive(Debug, Default, Copy, Clone)] |
8692 | | -pub struct syshook_ret { |
8693 | | - pub retval: target_ulong, |
8694 | | - pub skip_syscall: bool, |
| 8724 | +#[derive(Copy, Clone)] |
| 8725 | +pub struct libafl_syshook_ret { |
| 8726 | + pub tag: libafl_syshook_ret_tag, |
| 8727 | + pub __bindgen_anon_1: libafl_syshook_ret__bindgen_ty_1, |
| 8728 | +} |
| 8729 | +#[repr(C)] |
| 8730 | +#[derive(Copy, Clone)] |
| 8731 | +pub union libafl_syshook_ret__bindgen_ty_1 { |
| 8732 | + pub syshook_skip_retval: target_ulong, |
8695 | 8733 | } |
8696 | 8734 | #[allow(clippy::unnecessary_operation, clippy::identity_op)] |
8697 | 8735 | const _: () = { |
8698 | | - ["Size of syshook_ret"][::std::mem::size_of::<syshook_ret>() - 16usize]; |
8699 | | - ["Alignment of syshook_ret"][::std::mem::align_of::<syshook_ret>() - 8usize]; |
8700 | | - ["Offset of field: syshook_ret::retval"][::std::mem::offset_of!(syshook_ret, retval) - 0usize]; |
8701 | | - ["Offset of field: syshook_ret::skip_syscall"] |
8702 | | - [::std::mem::offset_of!(syshook_ret, skip_syscall) - 8usize]; |
| 8736 | + ["Size of libafl_syshook_ret__bindgen_ty_1"] |
| 8737 | + [::std::mem::size_of::<libafl_syshook_ret__bindgen_ty_1>() - 8usize]; |
| 8738 | + ["Alignment of libafl_syshook_ret__bindgen_ty_1"] |
| 8739 | + [::std::mem::align_of::<libafl_syshook_ret__bindgen_ty_1>() - 8usize]; |
| 8740 | + ["Offset of field: libafl_syshook_ret__bindgen_ty_1::syshook_skip_retval"] |
| 8741 | + [::std::mem::offset_of!(libafl_syshook_ret__bindgen_ty_1, syshook_skip_retval) - 0usize]; |
8703 | 8742 | }; |
| 8743 | +impl Default for libafl_syshook_ret__bindgen_ty_1 { |
| 8744 | + fn default() -> Self { |
| 8745 | + let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); |
| 8746 | + unsafe { |
| 8747 | + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); |
| 8748 | + s.assume_init() |
| 8749 | + } |
| 8750 | + } |
| 8751 | +} |
| 8752 | +impl ::std::fmt::Debug for libafl_syshook_ret__bindgen_ty_1 { |
| 8753 | + fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { |
| 8754 | + write!(f, "libafl_syshook_ret__bindgen_ty_1 {{ union }}") |
| 8755 | + } |
| 8756 | +} |
| 8757 | +#[allow(clippy::unnecessary_operation, clippy::identity_op)] |
| 8758 | +const _: () = { |
| 8759 | + ["Size of libafl_syshook_ret"][::std::mem::size_of::<libafl_syshook_ret>() - 16usize]; |
| 8760 | + ["Alignment of libafl_syshook_ret"][::std::mem::align_of::<libafl_syshook_ret>() - 8usize]; |
| 8761 | + ["Offset of field: libafl_syshook_ret::tag"] |
| 8762 | + [::std::mem::offset_of!(libafl_syshook_ret, tag) - 0usize]; |
| 8763 | +}; |
| 8764 | +impl Default for libafl_syshook_ret { |
| 8765 | + fn default() -> Self { |
| 8766 | + let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); |
| 8767 | + unsafe { |
| 8768 | + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); |
| 8769 | + s.assume_init() |
| 8770 | + } |
| 8771 | + } |
| 8772 | +} |
| 8773 | +impl ::std::fmt::Debug for libafl_syshook_ret { |
| 8774 | + fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { |
| 8775 | + write!( |
| 8776 | + f, |
| 8777 | + "libafl_syshook_ret {{ tag: {:?}, __bindgen_anon_1: {:?} }}", |
| 8778 | + self.tag, self.__bindgen_anon_1 |
| 8779 | + ) |
| 8780 | + } |
| 8781 | +} |
| 8782 | +pub type libafl_pre_syscall_cb = ::std::option::Option< |
| 8783 | + unsafe extern "C" fn( |
| 8784 | + data: u64, |
| 8785 | + sys_num: ::std::os::raw::c_int, |
| 8786 | + arg0: target_ulong, |
| 8787 | + arg1: target_ulong, |
| 8788 | + arg2: target_ulong, |
| 8789 | + arg3: target_ulong, |
| 8790 | + arg4: target_ulong, |
| 8791 | + arg5: target_ulong, |
| 8792 | + arg6: target_ulong, |
| 8793 | + arg7: target_ulong, |
| 8794 | + ) -> libafl_syshook_ret, |
| 8795 | +>; |
| 8796 | +pub type libafl_post_syscall_cb = ::std::option::Option< |
| 8797 | + unsafe extern "C" fn( |
| 8798 | + data: u64, |
| 8799 | + ret: target_ulong, |
| 8800 | + sys_num: ::std::os::raw::c_int, |
| 8801 | + arg0: target_ulong, |
| 8802 | + arg1: target_ulong, |
| 8803 | + arg2: target_ulong, |
| 8804 | + arg3: target_ulong, |
| 8805 | + arg4: target_ulong, |
| 8806 | + arg5: target_ulong, |
| 8807 | + arg6: target_ulong, |
| 8808 | + arg7: target_ulong, |
| 8809 | + ) -> target_ulong, |
| 8810 | +>; |
8704 | 8811 | #[repr(C)] |
8705 | 8812 | #[derive(Debug, Copy, Clone)] |
8706 | 8813 | pub struct libafl_pre_syscall_hook { |
8707 | | - pub callback: ::std::option::Option< |
8708 | | - unsafe extern "C" fn( |
8709 | | - data: u64, |
8710 | | - sys_num: ::std::os::raw::c_int, |
8711 | | - arg0: target_ulong, |
8712 | | - arg1: target_ulong, |
8713 | | - arg2: target_ulong, |
8714 | | - arg3: target_ulong, |
8715 | | - arg4: target_ulong, |
8716 | | - arg5: target_ulong, |
8717 | | - arg6: target_ulong, |
8718 | | - arg7: target_ulong, |
8719 | | - ) -> syshook_ret, |
8720 | | - >, |
| 8814 | + pub callback: libafl_pre_syscall_cb, |
8721 | 8815 | pub data: u64, |
8722 | 8816 | pub num: usize, |
8723 | 8817 | pub next: *mut libafl_pre_syscall_hook, |
@@ -8748,21 +8842,7 @@ impl Default for libafl_pre_syscall_hook { |
8748 | 8842 | #[repr(C)] |
8749 | 8843 | #[derive(Debug, Copy, Clone)] |
8750 | 8844 | pub struct libafl_post_syscall_hook { |
8751 | | - pub callback: ::std::option::Option< |
8752 | | - unsafe extern "C" fn( |
8753 | | - data: u64, |
8754 | | - ret: target_ulong, |
8755 | | - sys_num: ::std::os::raw::c_int, |
8756 | | - arg0: target_ulong, |
8757 | | - arg1: target_ulong, |
8758 | | - arg2: target_ulong, |
8759 | | - arg3: target_ulong, |
8760 | | - arg4: target_ulong, |
8761 | | - arg5: target_ulong, |
8762 | | - arg6: target_ulong, |
8763 | | - arg7: target_ulong, |
8764 | | - ) -> target_ulong, |
8765 | | - >, |
| 8845 | + pub callback: libafl_post_syscall_cb, |
8766 | 8846 | pub data: u64, |
8767 | 8847 | pub num: usize, |
8768 | 8848 | pub next: *mut libafl_post_syscall_hook, |
@@ -8792,43 +8872,10 @@ impl Default for libafl_post_syscall_hook { |
8792 | 8872 | } |
8793 | 8873 | } |
8794 | 8874 | unsafe extern "C" { |
8795 | | - pub fn libafl_add_pre_syscall_hook( |
8796 | | - callback: ::std::option::Option< |
8797 | | - unsafe extern "C" fn( |
8798 | | - data: u64, |
8799 | | - sys_num: ::std::os::raw::c_int, |
8800 | | - arg0: target_ulong, |
8801 | | - arg1: target_ulong, |
8802 | | - arg2: target_ulong, |
8803 | | - arg3: target_ulong, |
8804 | | - arg4: target_ulong, |
8805 | | - arg5: target_ulong, |
8806 | | - arg6: target_ulong, |
8807 | | - arg7: target_ulong, |
8808 | | - ) -> syshook_ret, |
8809 | | - >, |
8810 | | - data: u64, |
8811 | | - ) -> usize; |
| 8875 | + pub fn libafl_add_pre_syscall_hook(callback: libafl_pre_syscall_cb, data: u64) -> usize; |
8812 | 8876 | } |
8813 | 8877 | unsafe extern "C" { |
8814 | | - pub fn libafl_add_post_syscall_hook( |
8815 | | - callback: ::std::option::Option< |
8816 | | - unsafe extern "C" fn( |
8817 | | - data: u64, |
8818 | | - ret: target_ulong, |
8819 | | - sys_num: ::std::os::raw::c_int, |
8820 | | - arg0: target_ulong, |
8821 | | - arg1: target_ulong, |
8822 | | - arg2: target_ulong, |
8823 | | - arg3: target_ulong, |
8824 | | - arg4: target_ulong, |
8825 | | - arg5: target_ulong, |
8826 | | - arg6: target_ulong, |
8827 | | - arg7: target_ulong, |
8828 | | - ) -> target_ulong, |
8829 | | - >, |
8830 | | - data: u64, |
8831 | | - ) -> usize; |
| 8878 | + pub fn libafl_add_post_syscall_hook(callback: libafl_post_syscall_cb, data: u64) -> usize; |
8832 | 8879 | } |
8833 | 8880 | unsafe extern "C" { |
8834 | 8881 | pub fn libafl_qemu_remove_pre_syscall_hook(num: usize) -> ::std::os::raw::c_int; |
|
0 commit comments