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