aya: change StackTrace ID type from u32 to i64

Signed-off-by: Xiaobo Liu <cppcoffee@gmail.com>
reviewable/pr1325/r1
Xiaobo Liu 3 weeks ago
parent a01b1d8b76
commit e678bbf34c

@ -24,7 +24,7 @@ use crate::{
/// # Minimum kernel version
///
/// The minimum kernel version required to use this feature is 4.6.
///
///
/// # Examples
///
/// ```no_run
@ -108,7 +108,7 @@ impl<T: Borrow<MapData>> StackTraceMap<T> {
///
/// Returns [`MapError::KeyNotFound`] if there is no stack trace with the
/// given `stack_id`, or [`MapError::SyscallError`] if `bpf_map_lookup_elem` fails.
pub fn get(&self, stack_id: &u32, flags: u64) -> Result<StackTrace, MapError> {
pub fn get(&self, stack_id: &i64, flags: u64) -> Result<StackTrace, MapError> {
let fd = self.inner.borrow().fd().as_fd();
let mut frames = vec![0; self.max_stack_depth];
@ -133,30 +133,30 @@ impl<T: Borrow<MapData>> StackTraceMap<T> {
/// An iterator visiting all (`stack_id`, `stack_trace`) pairs in arbitrary order. The
/// iterator item type is `Result<(u32, StackTrace), MapError>`.
pub fn iter(&self) -> MapIter<'_, u32, StackTrace, Self> {
pub fn iter(&self) -> MapIter<'_, i64, StackTrace, Self> {
MapIter::new(self)
}
/// An iterator visiting all the stack_ids in arbitrary order. The iterator element
/// type is `Result<u32, MapError>`.
pub fn stack_ids(&self) -> MapKeys<'_, u32> {
pub fn stack_ids(&self) -> MapKeys<'_, i64> {
MapKeys::new(self.inner.borrow())
}
}
impl<T: Borrow<MapData>> IterableMap<u32, StackTrace> for StackTraceMap<T> {
impl<T: Borrow<MapData>> IterableMap<i64, StackTrace> for StackTraceMap<T> {
fn map(&self) -> &MapData {
self.inner.borrow()
}
fn get(&self, index: &u32) -> Result<StackTrace, MapError> {
fn get(&self, index: &i64) -> Result<StackTrace, MapError> {
self.get(index, 0)
}
}
impl<'a, T: Borrow<MapData>> IntoIterator for &'a StackTraceMap<T> {
type Item = Result<(u32, StackTrace), MapError>;
type IntoIter = MapIter<'a, u32, StackTrace, StackTraceMap<T>>;
type Item = Result<(i64, StackTrace), MapError>;
type IntoIter = MapIter<'a, i64, StackTrace, StackTraceMap<T>>;
fn into_iter(self) -> Self::IntoIter {
self.iter()
@ -181,7 +181,7 @@ impl<T: BorrowMut<MapData>> StackTraceMap<T> {
/// See the [`StackTraceMap`] documentation for examples.
pub struct StackTrace {
/// The stack trace id as returned by `bpf_get_stackid()`.
pub id: u32,
pub id: i64,
frames: Vec<StackFrame>,
}

Loading…
Cancel
Save