#[repr(u64)]pub enum EbpfError {
Show 20 variants
ElfError(ElfError),
FunctionAlreadyRegistered(usize),
CallDepthExceeded,
ExitRootCallFrame,
DivideByZero,
DivideOverflow,
ExecutionOverrun,
CallOutsideTextSegment,
ExceededMaxInstructions,
JitNotCompiled,
InvalidVirtualAddress(u64),
InvalidMemoryRegion(usize),
AccessViolation(AccessType, u64, u64, &'static str),
StackAccessViolation(AccessType, u64, u64, i64),
InvalidInstruction,
UnsupportedInstruction,
ExhaustedTextSegment(usize),
LibcInvocationFailed(&'static str, Vec<String>, i32),
VerifierError(VerifierError),
SyscallError(Box<dyn Error>),
}
Expand description
Error definitions
Variants§
ElfError(ElfError)
ELF error
FunctionAlreadyRegistered(usize)
Function was already registered
CallDepthExceeded
Exceeded max BPF to BPF call depth
ExitRootCallFrame
Attempt to exit from root call frame
DivideByZero
Divide by zero“
DivideOverflow
Divide overflow
ExecutionOverrun
Exceeded max instructions allowed
CallOutsideTextSegment
Attempt to call to an address outside the text segment
ExceededMaxInstructions
Exceeded max instructions allowed
JitNotCompiled
Program has not been JIT-compiled
InvalidVirtualAddress(u64)
Invalid virtual address
InvalidMemoryRegion(usize)
Memory region index or virtual address space is invalid
AccessViolation(AccessType, u64, u64, &'static str)
Access violation (general)
StackAccessViolation(AccessType, u64, u64, i64)
Access violation (stack specific)
InvalidInstruction
Invalid instruction
UnsupportedInstruction
Unsupported instruction
ExhaustedTextSegment(usize)
Compilation is too big to fit
LibcInvocationFailed(&'static str, Vec<String>, i32)
Libc function call returned an error
VerifierError(VerifierError)
Verifier error
SyscallError(Box<dyn Error>)
Syscall error
Trait Implementations§
source§impl Error for EbpfError
impl Error for EbpfError
source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0: use the Display impl or to_string()
source§impl From<VerifierError> for EbpfError
impl From<VerifierError> for EbpfError
source§fn from(source: VerifierError) -> EbpfError
fn from(source: VerifierError) -> EbpfError
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for EbpfError
impl !RefUnwindSafe for EbpfError
impl !Send for EbpfError
impl !Sync for EbpfError
impl Unpin for EbpfError
impl !UnwindSafe for EbpfError
Blanket Implementations§
source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more