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