/*
 * Copyright (C) 2012, 2016 ARM Limited. All rights reserved.
 * 
 * This program is free software and is provided to you under the terms of the GNU General Public License version 2
 * as published by the Free Software Foundation, and any use by you of this program is subject to the terms of such GNU licence.
 * 
 * A copy of the licence is included with the program, and can also be obtained from Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 */

#ifndef __MALI_PROFILING_EVENTS_H__
#define __MALI_PROFILING_EVENTS_H__

/* Simple wrapper in order to find the OS specific location of this file */
#include <linux/mali/mali_utgard_profiling_events.h>

#endif /* __MALI_PROFILING_EVENTS_H__ */
