1 /* SPDX-License-Identifier: BSD-3-Clause */ 2 /* Copyright(c) 2007-2022 Intel Corporation */ 3 /** 4 ***************************************************************************** 5 * @file sal_string_parse.c 6 * 7 * @ingroup SalStringParse 8 * 9 * @description 10 * This file contains string parsing functions for both user space and kernel 11 * space 12 * 13 *****************************************************************************/ 14 #include "cpa.h" 15 #include "lac_mem.h" 16 #include "sal_string_parse.h" 17 18 CpaStatus 19 Sal_StringParsing(char *string1, 20 Cpa32U instanceNumber, 21 char *string2, 22 char *result) 23 { 24 char instNumString[SAL_CFG_MAX_VAL_LEN_IN_BYTES] = { 0 }; 25 Cpa32U instNumStringLen = 0; 26 27 snprintf(instNumString, 28 SAL_CFG_MAX_VAL_LEN_IN_BYTES, 29 "%d", 30 instanceNumber); 31 instNumStringLen = strnlen(instNumString, SAL_CFG_MAX_VAL_LEN_IN_BYTES); 32 if ((strnlen(string1, SAL_CFG_MAX_VAL_LEN_IN_BYTES) + instNumStringLen + 33 strnlen(string2, SAL_CFG_MAX_VAL_LEN_IN_BYTES)) > 34 SAL_CFG_MAX_VAL_LEN_IN_BYTES) { 35 QAT_UTILS_LOG("Size of result too small.\n"); 36 return CPA_STATUS_FAIL; 37 } 38 39 LAC_OS_BZERO(result, SAL_CFG_MAX_VAL_LEN_IN_BYTES); 40 snprintf(result, 41 SAL_CFG_MAX_VAL_LEN_IN_BYTES, 42 "%s%d%s", 43 string1, 44 instanceNumber, 45 string2); 46 47 return CPA_STATUS_SUCCESS; 48 } 49 50 Cpa64U 51 Sal_Strtoul(const char *cp, char **endp, unsigned int cfgBase) 52 { 53 Cpa64U ulResult = 0; 54 55 ulResult = (Cpa64U)simple_strtoull(cp, endp, cfgBase); 56 57 return ulResult; 58 } 59