1use std::io;
2
3#[derive(Debug, thiserror::Error)]
5pub enum BlktraceError {
6 #[error("debugfs (/sys/kernel/debug) is not supported by the current kernel")]
8 DebugfsUnsupported,
9 #[error("failed to mount debugfs")]
11 MountDebugfs(#[source] nix::Error),
12 #[error("BLKTRACESETUP failed")]
14 Setup(#[source] nix::Error),
15 #[error("BLKTRACESTART failed")]
17 Start(#[source] nix::Error),
18 #[error("BLKTRACESTOP failed")]
20 Stop(#[source] nix::Error),
21 #[error("BLKTRACETEARDOWN failed")]
23 Teardown(#[source] nix::Error),
24 #[error("BLKFLSBUF failed")]
26 FlushBuffers(#[source] nix::Error),
27 #[error("blktrace event magic number mismatch")]
29 MagicMismatch,
30 #[error("invalid block name returned by the kernel")]
32 InvalidBlockName,
33 #[error("failed to read the dropped events count")]
35 ReadDropped(#[source] io::Error),
36 #[error("failed to parse the dropped events count")]
38 ParseDropped,
39 #[error("a tracing thread panicked")]
41 ThreadPanicked,
42 #[error(transparent)]
44 Io(#[from] io::Error),
45}