aboutsummaryrefslogtreecommitdiffstats
path: root/src/vppinfra/stack.h
blob: 5b833a3811e4aa2848c2c31a16f1b6470a33ecc7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/* SPDX-License-Identifier: Apache-2.0
 * Copyright (c) 2024 Cisco Systems, Inc.
 */

#ifndef __STACK_H__
#define __STACK_H__

#include <vppinfra/clib.h>

typedef struct
{
  uword ip, sp;
  uword offset;
  char name[64];
  const char *file_name;
  u32 index;
  u8 is_signal_frame;
} clib_stack_frame_t;

int clib_stack_frame_get_raw (void **sf, int n, int skip);
clib_stack_frame_t *clib_stack_frame_get (clib_stack_frame_t *);

#define foreach_clib_stack_frame(sf)                                          \
  for (clib_stack_frame_t _sf = {}, *sf = clib_stack_frame_get (&_sf); sf;    \
       sf = clib_stack_frame_get (sf))

#endif /* __STACK_H__ */