X-Git-Url: http://git.lttng.org/?p=lttv.git;a=blobdiff_plain;f=ltt%2Fmarker.h;fp=ltt%2Fmarker.h;h=0000000000000000000000000000000000000000;hp=3a84749d22d7ae700adc73cca5c131a106e11f26;hb=1aab1adee7a14dbb1ae2b296380e1861a91b54e0;hpb=7c3c01d14690eee4d3c262f300a888680ae7a053 diff --git a/ltt/marker.h b/ltt/marker.h deleted file mode 100644 index 3a84749d..00000000 --- a/ltt/marker.h +++ /dev/null @@ -1,122 +0,0 @@ -#ifndef _LTT_MARKERS_H -#define _LTT_MARKERS_H - -/* - * Marker support header. - * - * Mathieu Desnoyers, August 2007 - * License: LGPL. - */ - -#include -#include -#include -#include -#include - -#define LTT_ATTRIBUTE_NETWORK_BYTE_ORDER (1<<1) - -/* static ids 0-7 reserved for internal use. */ -#define MARKER_CORE_IDS 8 - -struct marker_info; - -struct marker_info { - GQuark name; - char *format; - long size; /* size if known statically, else -1 */ - guint8 largest_align; /* Size of the largest alignment needed in the - payload. */ - GArray *fields; /* Array of struct marker_field */ - guint8 int_size, long_size, pointer_size, size_t_size; - guint8 alignment; /* Size on which the architecture alignment must be - done. Useful to encapsulate x86_32 events on - x86_64 kernels. */ - struct marker_info *next; /* Linked list of markers with the same name */ -}; - -struct marker_data { - GArray *markers; //indexed by marker id - GHashTable *markers_hash; //indexed by name hash - GHashTable *markers_format_hash; //indexed by name hash -}; - -enum marker_id { - MARKER_ID_SET_MARKER_ID = 0, /* Static IDs available (range 0-7) */ - MARKER_ID_SET_MARKER_FORMAT, -}; - -static inline guint16 marker_get_id_from_info(struct marker_data *data, - struct marker_info *info) -{ - return ((unsigned long)info - (unsigned long)data->markers->data) - / sizeof(struct marker_info); -} - -static inline struct marker_info *marker_get_info_from_id( - struct marker_data *data, guint16 id) -{ - if (unlikely(data->markers->len <= id)) - return NULL; - return &g_array_index(data->markers, struct marker_info, id); -} - -/* - * Returns the head of the marker info list for that name. - */ -static inline struct marker_info *marker_get_info_from_name( - struct marker_data *data, GQuark name) -{ - gpointer orig_key, value; - int res; - - res = g_hash_table_lookup_extended(data->markers_hash, - (gconstpointer)(gulong)name, &orig_key, &value); - if (!res) - return NULL; - return marker_get_info_from_id(data, (guint16)(gulong)value); -} - -static inline char *marker_get_format_from_name(struct marker_data *data, - GQuark name) -{ - gpointer orig_key, value; - int res; - - res = g_hash_table_lookup_extended(data->markers_format_hash, - (gconstpointer)(gulong)name, &orig_key, &value); - if (!res) - return NULL; - return (char *)value; -} - -static inline struct marker_field *marker_get_field(struct marker_info *info, - guint i) -{ - return &g_array_index(info->fields, struct marker_field, i); -} - -static inline unsigned int marker_get_num_fields(struct marker_info *info) -{ - return info->fields->len; -} - -/* - * for_each_marker_field - iterate over fields of a marker - * @field: struct marker_field * to use as iterator - * @info: marker info pointer - */ -#define for_each_marker_field(field, info) \ - for (field = marker_get_field(info, 0); \ - field != marker_get_field(info, marker_get_num_fields(info)); \ - field++) - -int marker_format_event(LttTrace *trace, GQuark channel, GQuark name, - const char *format); -int marker_id_event(LttTrace *trace, GQuark channel, GQuark name, guint16 id, - uint8_t int_size, uint8_t long_size, uint8_t pointer_size, - uint8_t size_t_size, uint8_t alignment); -struct marker_data *allocate_marker_data(void); -void destroy_marker_data(struct marker_data *data); - -#endif //_LTT_MARKERS_H