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