|
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