|  |  | @ -37,7 +37,7 @@ pub(crate) fn bpf_create_map( | 
			
		
	
		
		
			
				
					
					|  |  |  |     def: &obj::Map, |  |  |  |     def: &obj::Map, | 
			
		
	
		
		
			
				
					
					|  |  |  |     btf_fd: Option<RawFd>, |  |  |  |     btf_fd: Option<RawFd>, | 
			
		
	
		
		
			
				
					
					|  |  |  |     kernel_version: KernelVersion, |  |  |  |     kernel_version: KernelVersion, | 
			
		
	
		
		
			
				
					
					|  |  |  | ) -> SysResult { |  |  |  | ) -> SysResult<c_long> { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     let mut attr = unsafe { mem::zeroed::<bpf_attr>() }; |  |  |  |     let mut attr = unsafe { mem::zeroed::<bpf_attr>() }; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     let u = unsafe { &mut attr.__bindgen_anon_1 }; |  |  |  |     let u = unsafe { &mut attr.__bindgen_anon_1 }; | 
			
		
	
	
		
		
			
				
					|  |  | @ -93,7 +93,7 @@ pub(crate) fn bpf_create_map( | 
			
		
	
		
		
			
				
					
					|  |  |  |     sys_bpf(bpf_cmd::BPF_MAP_CREATE, &attr) |  |  |  |     sys_bpf(bpf_cmd::BPF_MAP_CREATE, &attr) | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | pub(crate) fn bpf_pin_object(fd: RawFd, path: &CStr) -> SysResult { |  |  |  | pub(crate) fn bpf_pin_object(fd: RawFd, path: &CStr) -> SysResult<c_long> { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     let mut attr = unsafe { mem::zeroed::<bpf_attr>() }; |  |  |  |     let mut attr = unsafe { mem::zeroed::<bpf_attr>() }; | 
			
		
	
		
		
			
				
					
					|  |  |  |     let u = unsafe { &mut attr.__bindgen_anon_4 }; |  |  |  |     let u = unsafe { &mut attr.__bindgen_anon_4 }; | 
			
		
	
		
		
			
				
					
					|  |  |  |     u.bpf_fd = fd as u32; |  |  |  |     u.bpf_fd = fd as u32; | 
			
		
	
	
		
		
			
				
					|  |  | @ -101,7 +101,7 @@ pub(crate) fn bpf_pin_object(fd: RawFd, path: &CStr) -> SysResult { | 
			
		
	
		
		
			
				
					
					|  |  |  |     sys_bpf(bpf_cmd::BPF_OBJ_PIN, &attr) |  |  |  |     sys_bpf(bpf_cmd::BPF_OBJ_PIN, &attr) | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | pub(crate) fn bpf_get_object(path: &CStr) -> SysResult { |  |  |  | pub(crate) fn bpf_get_object(path: &CStr) -> SysResult<c_long> { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     let mut attr = unsafe { mem::zeroed::<bpf_attr>() }; |  |  |  |     let mut attr = unsafe { mem::zeroed::<bpf_attr>() }; | 
			
		
	
		
		
			
				
					
					|  |  |  |     let u = unsafe { &mut attr.__bindgen_anon_4 }; |  |  |  |     let u = unsafe { &mut attr.__bindgen_anon_4 }; | 
			
		
	
		
		
			
				
					
					|  |  |  |     u.pathname = path.as_ptr() as u64; |  |  |  |     u.pathname = path.as_ptr() as u64; | 
			
		
	
	
		
		
			
				
					|  |  | @ -130,7 +130,7 @@ pub(crate) fn bpf_load_program( | 
			
		
	
		
		
			
				
					
					|  |  |  |     aya_attr: &BpfLoadProgramAttrs, |  |  |  |     aya_attr: &BpfLoadProgramAttrs, | 
			
		
	
		
		
			
				
					
					|  |  |  |     log_buf: &mut [u8], |  |  |  |     log_buf: &mut [u8], | 
			
		
	
		
		
			
				
					
					|  |  |  |     verifier_log_level: VerifierLogLevel, |  |  |  |     verifier_log_level: VerifierLogLevel, | 
			
		
	
		
		
			
				
					
					|  |  |  | ) -> SysResult { |  |  |  | ) -> SysResult<c_long> { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     let mut attr = unsafe { mem::zeroed::<bpf_attr>() }; |  |  |  |     let mut attr = unsafe { mem::zeroed::<bpf_attr>() }; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     let u = unsafe { &mut attr.__bindgen_anon_3 }; |  |  |  |     let u = unsafe { &mut attr.__bindgen_anon_3 }; | 
			
		
	
	
		
		
			
				
					|  |  | @ -272,7 +272,7 @@ pub(crate) fn bpf_map_update_elem<K: Pod, V: Pod>( | 
			
		
	
		
		
			
				
					
					|  |  |  |     key: Option<&K>, |  |  |  |     key: Option<&K>, | 
			
		
	
		
		
			
				
					
					|  |  |  |     value: &V, |  |  |  |     value: &V, | 
			
		
	
		
		
			
				
					
					|  |  |  |     flags: u64, |  |  |  |     flags: u64, | 
			
		
	
		
		
			
				
					
					|  |  |  | ) -> SysResult { |  |  |  | ) -> SysResult<c_long> { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     let mut attr = unsafe { mem::zeroed::<bpf_attr>() }; |  |  |  |     let mut attr = unsafe { mem::zeroed::<bpf_attr>() }; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     let u = unsafe { &mut attr.__bindgen_anon_2 }; |  |  |  |     let u = unsafe { &mut attr.__bindgen_anon_2 }; | 
			
		
	
	
		
		
			
				
					|  |  | @ -286,7 +286,7 @@ pub(crate) fn bpf_map_update_elem<K: Pod, V: Pod>( | 
			
		
	
		
		
			
				
					
					|  |  |  |     sys_bpf(bpf_cmd::BPF_MAP_UPDATE_ELEM, &attr) |  |  |  |     sys_bpf(bpf_cmd::BPF_MAP_UPDATE_ELEM, &attr) | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | pub(crate) fn bpf_map_push_elem<V: Pod>(fd: RawFd, value: &V, flags: u64) -> SysResult { |  |  |  | pub(crate) fn bpf_map_push_elem<V: Pod>(fd: RawFd, value: &V, flags: u64) -> SysResult<c_long> { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     let mut attr = unsafe { mem::zeroed::<bpf_attr>() }; |  |  |  |     let mut attr = unsafe { mem::zeroed::<bpf_attr>() }; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     let u = unsafe { &mut attr.__bindgen_anon_2 }; |  |  |  |     let u = unsafe { &mut attr.__bindgen_anon_2 }; | 
			
		
	
	
		
		
			
				
					|  |  | @ -302,7 +302,7 @@ pub(crate) fn bpf_map_update_elem_ptr<K, V>( | 
			
		
	
		
		
			
				
					
					|  |  |  |     key: *const K, |  |  |  |     key: *const K, | 
			
		
	
		
		
			
				
					
					|  |  |  |     value: *mut V, |  |  |  |     value: *mut V, | 
			
		
	
		
		
			
				
					
					|  |  |  |     flags: u64, |  |  |  |     flags: u64, | 
			
		
	
		
		
			
				
					
					|  |  |  | ) -> SysResult { |  |  |  | ) -> SysResult<c_long> { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     let mut attr = unsafe { mem::zeroed::<bpf_attr>() }; |  |  |  |     let mut attr = unsafe { mem::zeroed::<bpf_attr>() }; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     let u = unsafe { &mut attr.__bindgen_anon_2 }; |  |  |  |     let u = unsafe { &mut attr.__bindgen_anon_2 }; | 
			
		
	
	
		
		
			
				
					|  |  | @ -319,12 +319,12 @@ pub(crate) fn bpf_map_update_elem_per_cpu<K: Pod, V: Pod>( | 
			
		
	
		
		
			
				
					
					|  |  |  |     key: &K, |  |  |  |     key: &K, | 
			
		
	
		
		
			
				
					
					|  |  |  |     values: &PerCpuValues<V>, |  |  |  |     values: &PerCpuValues<V>, | 
			
		
	
		
		
			
				
					
					|  |  |  |     flags: u64, |  |  |  |     flags: u64, | 
			
		
	
		
		
			
				
					
					|  |  |  | ) -> SysResult { |  |  |  | ) -> SysResult<c_long> { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     let mut mem = values.build_kernel_mem().map_err(|e| (-1, e))?; |  |  |  |     let mut mem = values.build_kernel_mem().map_err(|e| (-1, e))?; | 
			
		
	
		
		
			
				
					
					|  |  |  |     bpf_map_update_elem_ptr(fd, key, mem.as_mut_ptr(), flags) |  |  |  |     bpf_map_update_elem_ptr(fd, key, mem.as_mut_ptr(), flags) | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | pub(crate) fn bpf_map_delete_elem<K: Pod>(fd: RawFd, key: &K) -> SysResult { |  |  |  | pub(crate) fn bpf_map_delete_elem<K: Pod>(fd: RawFd, key: &K) -> SysResult<c_long> { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     let mut attr = unsafe { mem::zeroed::<bpf_attr>() }; |  |  |  |     let mut attr = unsafe { mem::zeroed::<bpf_attr>() }; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     let u = unsafe { &mut attr.__bindgen_anon_2 }; |  |  |  |     let u = unsafe { &mut attr.__bindgen_anon_2 }; | 
			
		
	
	
		
		
			
				
					|  |  | @ -356,7 +356,7 @@ pub(crate) fn bpf_map_get_next_key<K: Pod>( | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | // since kernel 5.2
 |  |  |  | // since kernel 5.2
 | 
			
		
	
		
		
			
				
					
					|  |  |  | pub(crate) fn bpf_map_freeze(fd: RawFd) -> SysResult { |  |  |  | pub(crate) fn bpf_map_freeze(fd: RawFd) -> SysResult<c_long> { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     let mut attr = unsafe { mem::zeroed::<bpf_attr>() }; |  |  |  |     let mut attr = unsafe { mem::zeroed::<bpf_attr>() }; | 
			
		
	
		
		
			
				
					
					|  |  |  |     let u = unsafe { &mut attr.__bindgen_anon_2 }; |  |  |  |     let u = unsafe { &mut attr.__bindgen_anon_2 }; | 
			
		
	
		
		
			
				
					
					|  |  |  |     u.map_fd = fd as u32; |  |  |  |     u.map_fd = fd as u32; | 
			
		
	
	
		
		
			
				
					|  |  | @ -370,7 +370,7 @@ pub(crate) fn bpf_link_create( | 
			
		
	
		
		
			
				
					
					|  |  |  |     attach_type: bpf_attach_type, |  |  |  |     attach_type: bpf_attach_type, | 
			
		
	
		
		
			
				
					
					|  |  |  |     btf_id: Option<u32>, |  |  |  |     btf_id: Option<u32>, | 
			
		
	
		
		
			
				
					
					|  |  |  |     flags: u32, |  |  |  |     flags: u32, | 
			
		
	
		
		
			
				
					
					|  |  |  | ) -> SysResult { |  |  |  | ) -> SysResult<c_long> { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     let mut attr = unsafe { mem::zeroed::<bpf_attr>() }; |  |  |  |     let mut attr = unsafe { mem::zeroed::<bpf_attr>() }; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     attr.link_create.__bindgen_anon_1.prog_fd = prog_fd as u32; |  |  |  |     attr.link_create.__bindgen_anon_1.prog_fd = prog_fd as u32; | 
			
		
	
	
		
		
			
				
					|  |  | @ -390,7 +390,7 @@ pub(crate) fn bpf_link_update( | 
			
		
	
		
		
			
				
					
					|  |  |  |     new_prog_fd: RawFd, |  |  |  |     new_prog_fd: RawFd, | 
			
		
	
		
		
			
				
					
					|  |  |  |     old_prog_fd: Option<RawFd>, |  |  |  |     old_prog_fd: Option<RawFd>, | 
			
		
	
		
		
			
				
					
					|  |  |  |     flags: u32, |  |  |  |     flags: u32, | 
			
		
	
		
		
			
				
					
					|  |  |  | ) -> SysResult { |  |  |  | ) -> SysResult<c_long> { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     let mut attr = unsafe { mem::zeroed::<bpf_attr>() }; |  |  |  |     let mut attr = unsafe { mem::zeroed::<bpf_attr>() }; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     attr.link_update.link_fd = link_fd as u32; |  |  |  |     attr.link_update.link_fd = link_fd as u32; | 
			
		
	
	
		
		
			
				
					|  |  | @ -409,7 +409,7 @@ pub(crate) fn bpf_prog_attach( | 
			
		
	
		
		
			
				
					
					|  |  |  |     prog_fd: RawFd, |  |  |  |     prog_fd: RawFd, | 
			
		
	
		
		
			
				
					
					|  |  |  |     target_fd: RawFd, |  |  |  |     target_fd: RawFd, | 
			
		
	
		
		
			
				
					
					|  |  |  |     attach_type: bpf_attach_type, |  |  |  |     attach_type: bpf_attach_type, | 
			
		
	
		
		
			
				
					
					|  |  |  | ) -> SysResult { |  |  |  | ) -> SysResult<c_long> { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     let mut attr = unsafe { mem::zeroed::<bpf_attr>() }; |  |  |  |     let mut attr = unsafe { mem::zeroed::<bpf_attr>() }; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     attr.__bindgen_anon_5.attach_bpf_fd = prog_fd as u32; |  |  |  |     attr.__bindgen_anon_5.attach_bpf_fd = prog_fd as u32; | 
			
		
	
	
		
		
			
				
					|  |  | @ -423,7 +423,7 @@ pub(crate) fn bpf_prog_detach( | 
			
		
	
		
		
			
				
					
					|  |  |  |     prog_fd: RawFd, |  |  |  |     prog_fd: RawFd, | 
			
		
	
		
		
			
				
					
					|  |  |  |     map_fd: RawFd, |  |  |  |     map_fd: RawFd, | 
			
		
	
		
		
			
				
					
					|  |  |  |     attach_type: bpf_attach_type, |  |  |  |     attach_type: bpf_attach_type, | 
			
		
	
		
		
			
				
					
					|  |  |  | ) -> SysResult { |  |  |  | ) -> SysResult<c_long> { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     let mut attr = unsafe { mem::zeroed::<bpf_attr>() }; |  |  |  |     let mut attr = unsafe { mem::zeroed::<bpf_attr>() }; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     attr.__bindgen_anon_5.attach_bpf_fd = prog_fd as u32; |  |  |  |     attr.__bindgen_anon_5.attach_bpf_fd = prog_fd as u32; | 
			
		
	
	
		
		
			
				
					|  |  | @ -440,7 +440,7 @@ pub(crate) fn bpf_prog_query( | 
			
		
	
		
		
			
				
					
					|  |  |  |     attach_flags: Option<&mut u32>, |  |  |  |     attach_flags: Option<&mut u32>, | 
			
		
	
		
		
			
				
					
					|  |  |  |     prog_ids: &mut [u32], |  |  |  |     prog_ids: &mut [u32], | 
			
		
	
		
		
			
				
					
					|  |  |  |     prog_cnt: &mut u32, |  |  |  |     prog_cnt: &mut u32, | 
			
		
	
		
		
			
				
					
					|  |  |  | ) -> SysResult { |  |  |  | ) -> SysResult<c_long> { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     let mut attr = unsafe { mem::zeroed::<bpf_attr>() }; |  |  |  |     let mut attr = unsafe { mem::zeroed::<bpf_attr>() }; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     attr.query.target_fd = target_fd as u32; |  |  |  |     attr.query.target_fd = target_fd as u32; | 
			
		
	
	
		
		
			
				
					|  |  | @ -545,7 +545,7 @@ pub(crate) fn btf_obj_get_info_by_fd( | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | pub(crate) fn bpf_raw_tracepoint_open(name: Option<&CStr>, prog_fd: RawFd) -> SysResult { |  |  |  | pub(crate) fn bpf_raw_tracepoint_open(name: Option<&CStr>, prog_fd: RawFd) -> SysResult<c_long> { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     let mut attr = unsafe { mem::zeroed::<bpf_attr>() }; |  |  |  |     let mut attr = unsafe { mem::zeroed::<bpf_attr>() }; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     attr.raw_tracepoint.name = match name { |  |  |  |     attr.raw_tracepoint.name = match name { | 
			
		
	
	
		
		
			
				
					|  |  | @ -561,7 +561,7 @@ pub(crate) fn bpf_load_btf( | 
			
		
	
		
		
			
				
					
					|  |  |  |     raw_btf: &[u8], |  |  |  |     raw_btf: &[u8], | 
			
		
	
		
		
			
				
					
					|  |  |  |     log_buf: &mut [u8], |  |  |  |     log_buf: &mut [u8], | 
			
		
	
		
		
			
				
					
					|  |  |  |     verifier_log_level: VerifierLogLevel, |  |  |  |     verifier_log_level: VerifierLogLevel, | 
			
		
	
		
		
			
				
					
					|  |  |  | ) -> SysResult { |  |  |  | ) -> SysResult<c_long> { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     let mut attr = unsafe { mem::zeroed::<bpf_attr>() }; |  |  |  |     let mut attr = unsafe { mem::zeroed::<bpf_attr>() }; | 
			
		
	
		
		
			
				
					
					|  |  |  |     let u = unsafe { &mut attr.__bindgen_anon_7 }; |  |  |  |     let u = unsafe { &mut attr.__bindgen_anon_7 }; | 
			
		
	
		
		
			
				
					
					|  |  |  |     u.btf = raw_btf.as_ptr() as *const _ as u64; |  |  |  |     u.btf = raw_btf.as_ptr() as *const _ as u64; | 
			
		
	
	
		
		
			
				
					|  |  | @ -987,7 +987,7 @@ pub(crate) fn is_btf_type_tag_supported() -> bool { | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | pub fn sys_bpf(cmd: bpf_cmd, attr: &bpf_attr) -> SysResult { |  |  |  | pub fn sys_bpf(cmd: bpf_cmd, attr: &bpf_attr) -> SysResult<c_long> { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     syscall(Syscall::Bpf { cmd, attr }) |  |  |  |     syscall(Syscall::Bpf { cmd, attr }) | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  |  | @ -1002,10 +1002,10 @@ pub(crate) fn bpf_prog_get_next_id(id: u32) -> Result<Option<u32>, (c_long, io:: | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | pub(crate) fn retry_with_verifier_logs( |  |  |  | pub(crate) fn retry_with_verifier_logs<T>( | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     max_retries: usize, |  |  |  |     max_retries: usize, | 
			
		
	
		
		
			
				
					
					|  |  |  |     f: impl Fn(&mut [u8]) -> SysResult, |  |  |  |     f: impl Fn(&mut [u8]) -> SysResult<T>, | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | ) -> (SysResult, String) { |  |  |  | ) -> (SysResult<T>, String) { | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     const MIN_LOG_BUF_SIZE: usize = 1024 * 10; |  |  |  |     const MIN_LOG_BUF_SIZE: usize = 1024 * 10; | 
			
		
	
		
		
			
				
					
					|  |  |  |     const MAX_LOG_BUF_SIZE: usize = (std::u32::MAX >> 8) as usize; |  |  |  |     const MAX_LOG_BUF_SIZE: usize = (std::u32::MAX >> 8) as usize; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  |  | 
 |