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
Sal_StringParsing(char * string1,Cpa32U instanceNumber,char * string2,char * result)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
Sal_Strtoul(const char * cp,char ** endp,unsigned int cfgBase)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