function [timerSourceFile, headerFile, timerFunction, dataType] = ...
        getHostTimerInfo()
%GETHOSTTIMERINFO returns details of execution profiling sources

%   Copyright 2009-2018 The MathWorks, Inc.
    
dataType = 'uint64';
driverDir = fullfile(matlabroot, 'toolbox', 'coder', 'profile', 'src');

csaSettings = coder.profile.pmu.csaTimer;

if strcmpi(computer, 'GLNXA64') && csaSettings.CSA && ~isempty(csaSettings.HWCounter) % HW metric
    timerSourceFile = fullfile(driverDir, 'host_hwcount_glnxa64.c');
    headerFile = fullfile(driverDir, 'host_hwcount_glnxa64.h');
    timerFunction = sprintf('hwcount_%s_glnxa64', csaSettings.HWCounter);
elseif csaSettings.CSA
    timerSourceFile = fullfile(driverDir, 'host_timer_csa_x86.c');
    headerFile = fullfile(driverDir, 'host_timer_x86.h');
    timerFunction = 'timestamp_x86';
else
    timerSourceFile = fullfile(driverDir, 'host_timer_x86.c');
    timerFunction = 'timestamp_x86';
    headerFile = fullfile(driverDir, 'host_timer_x86.h');
end

