Home | History | Annotate | Download | only in radeon
      1 /*
      2  * Copyright  2008 Jrme Glisse
      3  * All Rights Reserved.
      4  *
      5  * Permission is hereby granted, free of charge, to any person obtaining
      6  * a copy of this software and associated documentation files (the
      7  * "Software"), to deal in the Software without restriction, including
      8  * without limitation the rights to use, copy, modify, merge, publish,
      9  * distribute, sub license, and/or sell copies of the Software, and to
     10  * permit persons to whom the Software is furnished to do so, subject to
     11  * the following conditions:
     12  *
     13  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
     14  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
     15  * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
     16  * NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS, AUTHORS
     17  * AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
     18  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
     19  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
     20  * USE OR OTHER DEALINGS IN THE SOFTWARE.
     21  *
     22  * The above copyright notice and this permission notice (including the
     23  * next paragraph) shall be included in all copies or substantial portions
     24  * of the Software.
     25  */
     26 /*
     27  * Authors:
     28  *      Jrme Glisse <glisse (at) freedesktop.org>
     29  */
     30 #ifndef RADEON_TRACK_H
     31 #define RADEON_TRACK_H
     32 
     33 struct radeon_track_event {
     34     struct radeon_track_event   *next;
     35     char                        *file;
     36     char                        *func;
     37     char                        *op;
     38     unsigned                    line;
     39 };
     40 
     41 struct radeon_track {
     42     struct radeon_track         *next;
     43     struct radeon_track         *prev;
     44     unsigned                    key;
     45     struct radeon_track_event   *events;
     46 };
     47 
     48 struct radeon_tracker {
     49     struct radeon_track         tracks;
     50 };
     51 
     52 void radeon_track_add_event(struct radeon_track *track,
     53                             const char *file,
     54                             const char *func,
     55                             const char *op,
     56                             unsigned line);
     57 struct radeon_track *radeon_tracker_add_track(struct radeon_tracker *tracker,
     58                                               unsigned key);
     59 void radeon_tracker_remove_track(struct radeon_tracker *tracker,
     60                                  struct radeon_track *track);
     61 void radeon_tracker_print(struct radeon_tracker *tracker,
     62                           FILE *file);
     63 
     64 #endif
     65