root/sys/dev/qat/qat_api/common/utils/sal_user_process.c
/* SPDX-License-Identifier: BSD-3-Clause */
/* Copyright(c) 2007-2022 Intel Corporation */
/**
 *****************************************************************************
 * @file sal_user_process.c
 *
 * @ingroup SalUserProcess
 *
 * @description
 *    This file contains implementation of functions to set/get user process
 *    name
 *
 *****************************************************************************/

#include "qat_utils.h"
#include "lac_common.h"
static char lacProcessName[LAC_USER_PROCESS_NAME_MAX_LEN + 1] =
    LAC_KERNEL_PROCESS_NAME;

/**< Process name used to obtain values from correct section of config file. */

/*
 * @ingroup LacCommon
 * @description
 *      This function sets the process name
 *
 * @context
 *      This functions is called from module_init or from user space process
 *      initialisation function
 *
 * @assumptions
 *      None
 * @sideEffects
 *      None
 * @reentrant
 *      No
 * @threadSafe
 *      No
 *
 * param[in]  processName    Process name to be set
*/
CpaStatus
icpSetProcessName(const char *processName)
{
        LAC_CHECK_NULL_PARAM(processName);

        if (strnlen(processName, LAC_USER_PROCESS_NAME_MAX_LEN) ==
            LAC_USER_PROCESS_NAME_MAX_LEN) {
                QAT_UTILS_LOG(
                    "Process name too long, maximum process name is %d>\n",
                    LAC_USER_PROCESS_NAME_MAX_LEN);
                return CPA_STATUS_FAIL;
        }

        strncpy(lacProcessName, processName, LAC_USER_PROCESS_NAME_MAX_LEN);
        lacProcessName[LAC_USER_PROCESS_NAME_MAX_LEN] = '\0';

        return CPA_STATUS_SUCCESS;
}

/*
 * @ingroup LacCommon
 * @description
 *      This function gets the process name
 *
 * @context
 *      This functions is called from LAC context
 *
 * @assumptions
 *      None
 * @sideEffects
 *      None
 * @reentrant
 *      No
 * @threadSafe
 *      Yes
 *
*/
char *
icpGetProcessName(void)
{
        return lacProcessName;
}