110e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project/** 210e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * @file op_parse_event.h 310e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * event parsing 410e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * 510e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * You can have silliness here. 610e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * 710e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * @remark Copyright 2002 OProfile authors 810e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * @remark Read the file COPYING 910e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * 1010e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * @author John Levon 1110e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * @author Philippe Elie 1210e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project */ 1310e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 1410e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#ifndef OP_PARSE_EVENT_H 1510e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#define OP_PARSE_EVENT_H 1610e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 1710e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#include <stddef.h> 1810e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 1910e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectstruct parsed_event { 2010e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project char * name; 2110e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project int count; 2210e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project int unit_mask; 2310e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project int kernel; 2410e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project int user; 255a4eb4eb367eccd4b976d1feae96cea96d2c50f2Ben Cheng int unit_mask_valid; 2610e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project}; 2710e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 2810e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project/** 2910e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * @param parsed_events array of events to fill in 3010e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * @param max_events size of parsed_events 3110e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * @param events null terminated array of events string on the form 3210e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * event_name:count[:unit_mask:kernel:user] 3310e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * 3410e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * parse events given by the nil terminated array events and fill in 3510e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * parsed_events with results. Events validity are not checked except. 3610e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * A fatal error occur if number of events is greater than max_events. 3710e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * 3810e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * Return the number of events parsed. 3910e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project */ 4010e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectsize_t parse_events(struct parsed_event * parsed_events, size_t max_events, 4110e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project char const * const * events); 4210e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 4310e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#endif /* !OP_PARSE_EVENT_H */ 44