1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
/*
* Copyright (C) 2021-2025 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#include "shared/source/ail/ail_configuration.h"
#include "shared/source/helpers/debug_helpers.h"
#include "shared/source/os_interface/linux/sys_calls.h"
#include <string_view>
// Application detection is performed using the process name of the given application.
namespace NEO {
bool AILConfiguration::initProcessExecutableName() {
char path[512] = {0};
int result = SysCalls::readlink("/proc/self/exe", path, sizeof(path) - 1);
if (result == -1) {
return false;
}
path[result] = '\0';
std::string_view pathView(path);
auto lastPosition = pathView.find_last_of("/");
UNRECOVERABLE_IF(lastPosition == std::string_view::npos);
pathView.remove_prefix(lastPosition + 1u);
processName = pathView;
return true;
}
} // namespace NEO
|