Переглянути джерело

bpf: add HashMap::remove()

Alessandro Decina 3 роки тому
батько
коміт
240c65507b
1 змінених файлів з 12 додано та 0 видалено
  1. 12 0
      bpf/aya-bpf/src/maps/hash_map.rs

+ 12 - 0
bpf/aya-bpf/src/maps/hash_map.rs

@@ -73,4 +73,16 @@ impl<K, V> HashMap<K, V> {
 
         Ok(())
     }
+
+    pub unsafe fn remove(&mut self, key: &K) -> Result<(), c_long> {
+        let value = bpf_map_delete_elem(
+            &mut self.def as *mut _ as *mut _,
+            key as *const _ as *const c_void,
+        );
+        if value < 0 {
+            Err(value)
+        } else {
+            Ok(())
+        }
+    }
 }