summaryrefslogtreecommitdiff
path: root/sys/dev/qat/qat_api/common/utils/sal_string_parse.c
blob: 4e795bcf9f7a117d8e7aca9fa3ac6dc766288c6d (plain)
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/* SPDX-License-Identifier: BSD-3-Clause */
/* Copyright(c) 2007-2022 Intel Corporation */
/**
 *****************************************************************************
 * @file sal_string_parse.c
 *
 * @ingroup SalStringParse
 *
 * @description
 *    This file contains string parsing functions for both user space and kernel
 *    space
 *
 *****************************************************************************/
#include "cpa.h"
#include "lac_mem.h"
#include "sal_string_parse.h"

CpaStatus
Sal_StringParsing(char *string1,
		  Cpa32U instanceNumber,
		  char *string2,
		  char *result)
{
	char instNumString[SAL_CFG_MAX_VAL_LEN_IN_BYTES] = { 0 };
	Cpa32U instNumStringLen = 0;

	snprintf(instNumString,
		 SAL_CFG_MAX_VAL_LEN_IN_BYTES,
		 "%d",
		 instanceNumber);
	instNumStringLen = strnlen(instNumString, SAL_CFG_MAX_VAL_LEN_IN_BYTES);
	if ((strnlen(string1, SAL_CFG_MAX_VAL_LEN_IN_BYTES) + instNumStringLen +
	     strnlen(string2, SAL_CFG_MAX_VAL_LEN_IN_BYTES)) >
	    SAL_CFG_MAX_VAL_LEN_IN_BYTES) {
		QAT_UTILS_LOG("Size of result too small.\n");
		return CPA_STATUS_FAIL;
	}

	LAC_OS_BZERO(result, SAL_CFG_MAX_VAL_LEN_IN_BYTES);
	snprintf(result,
		 SAL_CFG_MAX_VAL_LEN_IN_BYTES,
		 "%s%d%s",
		 string1,
		 instanceNumber,
		 string2);

	return CPA_STATUS_SUCCESS;
}

Cpa64U
Sal_Strtoul(const char *cp, char **endp, unsigned int cfgBase)
{
	Cpa64U ulResult = 0;

	ulResult = (Cpa64U)simple_strtoull(cp, endp, cfgBase);

	return ulResult;
}