Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
udp: crash in format_udp_connection
[vpp.git]
/
src
/
vppinfra
/
elog.h
diff --git
a/src/vppinfra/elog.h
b/src/vppinfra/elog.h
index
26352f7
..
d0825bd
100644
(file)
--- a/
src/vppinfra/elog.h
+++ b/
src/vppinfra/elog.h
@@
-53,6
+53,7
@@
#include <vppinfra/error.h> /* for ASSERT */
#include <vppinfra/serialize.h>
#include <vppinfra/time.h> /* for clib_cpu_time_now */
#include <vppinfra/error.h> /* for ASSERT */
#include <vppinfra/serialize.h>
#include <vppinfra/time.h> /* for clib_cpu_time_now */
+#include <vppinfra/hash.h>
#include <vppinfra/mhash.h>
typedef struct
#include <vppinfra/mhash.h>
typedef struct
@@
-67,7
+68,7
@@
typedef struct
};
/** Event type index. */
};
/** Event type index. */
- u16 type;
+ u16
event_
type;
/** Track for this event. Tracks allow events to be sorted and
displayed by track. Think of 2 dimensional display with time and
/** Track for this event. Tracks allow events to be sorted and
displayed by track. Think of 2 dimensional display with time and
@@
-138,7
+139,7
@@
typedef struct
u32 n_total_events_disable_limit;
/** Dummy event to use when logger is disabled. */
u32 n_total_events_disable_limit;
/** Dummy event to use when logger is disabled. */
- elog_event_t
dummy
_event;
+ elog_event_t
placeholder
_event;
/** Power of 2 number of elements in ring. */
uword event_ring_size;
/** Power of 2 number of elements in ring. */
uword event_ring_size;
@@
-155,6
+156,8
@@
typedef struct
/** Events may refer to strings in string table. */
char *string_table;
/** Events may refer to strings in string table. */
char *string_table;
+ uword *string_table_hash;
+ u8 *string_table_tmp;
/** Vector of tracks. */
elog_track_t *tracks;
/** Vector of tracks. */
elog_track_t *tracks;
@@
-295,9
+298,9
@@
elog_event_data_inline (elog_main_t * em,
uword ei;
word type_index, track_index;
uword ei;
word type_index, track_index;
- /* Return the user
dummy
memory to scribble data into. */
+ /* Return the user
placeholder
memory to scribble data into. */
if (PREDICT_FALSE (!elog_is_enabled (em)))
if (PREDICT_FALSE (!elog_is_enabled (em)))
- return em->
dummy
_event.data;
+ return em->
placeholder
_event.data;
type_index = (word) type->type_index_plus_one - 1;
track_index = (word) track->track_index_plus_one - 1;
type_index = (word) type->type_index_plus_one - 1;
track_index = (word) track->track_index_plus_one - 1;
@@
-321,7
+324,7
@@
elog_event_data_inline (elog_main_t * em,
e = vec_elt_at_index (em->event_ring, ei);
e->time_cycles = cpu_time;
e = vec_elt_at_index (em->event_ring, ei);
e->time_cycles = cpu_time;
- e->type = type_index;
+ e->
event_
type = type_index;
e->track = track_index;
/* Return user data for caller to fill in. */
e->track = track_index;
/* Return user data for caller to fill in. */
@@
-349,9
+352,9
@@
elog_event_data_not_inline (elog_main_t * em,
elog_event_type_t * type,
elog_track_t * track, u64 cpu_time)
{
elog_event_type_t * type,
elog_track_t * track, u64 cpu_time)
{
- /* Return the user
dummy
memory to scribble data into. */
+ /* Return the user
placeholder
memory to scribble data into. */
if (PREDICT_FALSE (!elog_is_enabled (em)))
if (PREDICT_FALSE (!elog_is_enabled (em)))
- return em->
dummy
_event.data;
+ return em->
placeholder
_event.data;
return elog_event_data (em, type, track, cpu_time);
}
return elog_event_data (em, type, track, cpu_time);
}
@@
-523,6
+526,7
@@
void unserialize_elog_main (serialize_main_t * m, va_list * va);
void elog_init (elog_main_t * em, u32 n_events);
void elog_alloc (elog_main_t * em, u32 n_events);
void elog_init (elog_main_t * em, u32 n_events);
void elog_alloc (elog_main_t * em, u32 n_events);
+void elog_resize (elog_main_t * em, u32 n_events);
#ifdef CLIB_UNIX
always_inline clib_error_t *
#ifdef CLIB_UNIX
always_inline clib_error_t *
@@
-540,6
+544,9
@@
elog_write_file (elog_main_t * em, char *clib_file, int flush_ring)
return error;
}
return error;
}
+clib_error_t *elog_write_file_not_inline (elog_main_t * em, char *clib_file,
+ int flush_ring);
+
always_inline clib_error_t *
elog_read_file (elog_main_t * em, char *clib_file)
{
always_inline clib_error_t *
elog_read_file (elog_main_t * em, char *clib_file)
{
@@
-555,6
+562,9
@@
elog_read_file (elog_main_t * em, char *clib_file)
return error;
}
return error;
}
+clib_error_t *elog_read_file_not_inline (elog_main_t * em, char *clib_file);
+char *format_one_elog_event (void *em_arg, void *ep_arg);
+
#endif /* CLIB_UNIX */
#endif /* included_clib_elog_h */
#endif /* CLIB_UNIX */
#endif /* included_clib_elog_h */