aya: update `VerifierLogLevel` to use bitflags

pull/376/head
conectado 2 years ago
parent 906c25ff23
commit 7b143199fb
No known key found for this signature in database
GPG Key ID: 338C2256E2EB62D4

@ -196,22 +196,26 @@ pub struct BpfLoader<'a> {
verifier_log_level: VerifierLogLevel, verifier_log_level: VerifierLogLevel,
} }
bitflags! {
/// Used to set the verifier log level in [BpfLoader](BpfLoader::verifier_log_level()). /// Used to set the verifier log level in [BpfLoader](BpfLoader::verifier_log_level()).
#[repr(u32)] pub struct VerifierLogLevel: u32 {
#[non_exhaustive] /// Used to disable all logging.
#[derive(Debug, Clone, Copy)] const DISABLE = 0;
pub enum VerifierLogLevel { /// Logs tracing with details level 1
/// Disable all logging. const LEVEL1 = 1;
Disable = 0, /// Log tracing with details level 2
const LEVEL2 = 2 | Self::LEVEL1.bits;
/// Default level of logging, shows verifier stats. /// Logs eBPF verifier stats
Default = 4, const STATS = 4;
}
/// Prints verbose logs showing tracing. }
Verbose = 1,
/// Prints full debug details. impl Default for VerifierLogLevel {
Debug = 7, fn default() -> Self {
Self {
bits: Self::LEVEL1.bits | Self::STATS.bits,
}
}
} }
impl<'a> BpfLoader<'a> { impl<'a> BpfLoader<'a> {
@ -225,7 +229,7 @@ impl<'a> BpfLoader<'a> {
globals: HashMap::new(), globals: HashMap::new(),
features, features,
extensions: HashSet::new(), extensions: HashSet::new(),
verifier_log_level: VerifierLogLevel::Default, verifier_log_level: VerifierLogLevel::default(),
} }
} }
@ -341,7 +345,7 @@ impl<'a> BpfLoader<'a> {
/// use aya::{BpfLoader, VerifierLogLevel}; /// use aya::{BpfLoader, VerifierLogLevel};
/// ///
/// let bpf = BpfLoader::new() /// let bpf = BpfLoader::new()
/// .verifier_log_level(VerifierLogLevel::Verbose) /// .verifier_log_level(VerifierLogLevel::LEVEL2 | VerifierLogLevel::STATS)
/// .load_file("file.o")?; /// .load_file("file.o")?;
/// # Ok::<(), aya::BpfError>(()) /// # Ok::<(), aya::BpfError>(())
/// ``` /// ```
@ -382,7 +386,7 @@ impl<'a> BpfLoader<'a> {
/// # Ok::<(), aya::BpfError>(()) /// # Ok::<(), aya::BpfError>(())
/// ``` /// ```
pub fn load(&mut self, data: &[u8]) -> Result<Bpf, BpfError> { pub fn load(&mut self, data: &[u8]) -> Result<Bpf, BpfError> {
let verifier_log_level = self.verifier_log_level as u32; let verifier_log_level = self.verifier_log_level.bits;
let mut obj = Object::parse(data)?; let mut obj = Object::parse(data)?;
obj.patch_map_data(self.globals.clone())?; obj.patch_map_data(self.globals.clone())?;

Loading…
Cancel
Save