Prechádzať zdrojové kódy

Helper function type to be used with register_helper() (#44)

Helper function type to be used with register_helper()
jackcmay 6 rokov pred
rodič
commit
622c876d1a
2 zmenil súbory, kde vykonal 7 pridanie a 3 odobranie
  1. 3 2
      README.md
  2. 4 1
      src/lib.rs

+ 3 - 2
README.md

@@ -192,10 +192,11 @@ is not run if no program has been loaded (if `None` was passed to the `new()`
 method when creating the VM).
 
 ```rust,ignore
+pub type Helper = fn (u64, u64, u64, u64, u64) -> u64;
+
 pub fn register_helper(&mut self,
                        key: u32,
-                       function: fn (u64, u64, u64, u64, u64) -> u64) 
-                       -> Result<(), Error>
+                       function: Helper) -> Result<(), Error>
 ```
 
 This function is used to register a helper function. The VM stores its

+ 4 - 1
src/lib.rs

@@ -50,6 +50,9 @@ mod verifier;
 ///   - Unknown eBPF helper index.
 pub type Verifier = fn(prog: &[u8]) -> Result<(), Error>;
 
+/// eBPF helper function.
+pub type Helper = fn (u64, u64, u64, u64, u64) -> u64;
+
 /// eBPF Jit-compiled program.
 pub type JitProgram = unsafe fn(*mut u8, usize, *mut u8, usize, usize, usize) -> u64;
 
@@ -230,7 +233,7 @@ impl<'a> EbpfVmMbuff<'a> {
     /// // standard output.
     /// vm.register_helper(6, helpers::bpf_trace_printf).unwrap();
     /// ```
-    pub fn register_helper(&mut self, key: u32, function: fn (u64, u64, u64, u64, u64) -> u64) -> Result<(), Error> {
+    pub fn register_helper(&mut self, key: u32, function: Helper) -> Result<(), Error> {
         self.helpers.insert(key, function);
         Ok(())
     }