ASR_BASE

Change-Id: Icf3719cc0afe3eeb3edc7fa80a2eb5199ca9dda1
diff --git a/marvell/lte-telephony/apps/common/genlib/utlVString.h b/marvell/lte-telephony/apps/common/genlib/utlVString.h
new file mode 100644
index 0000000..ad3f35e
--- /dev/null
+++ b/marvell/lte-telephony/apps/common/genlib/utlVString.h
@@ -0,0 +1,70 @@
+/******************************************************************************
+*(C) Copyright 2008 Marvell International Ltd.
+* All Rights Reserved
+******************************************************************************/
+/*****************************************************************************
+* Utility Library
+*
+* Variable-length string utilities header file
+*
+*****************************************************************************/
+
+#ifndef _UTL_VSTRING_INCLUDED
+#define _UTL_VSTRING_INCLUDED
+
+#include <stdarg.h>
+#include <stdlib.h>
+
+#include "utlTypes.h"
+
+
+/*--- Data Types ------------------------------------------------------------*/
+
+typedef struct utlVString_S {
+	char   *s_p;
+	size_t length;  /* length of string in characters */
+	size_t size;    /* size   of buffer in characters */
+}             utlVString_T, *utlVString_P;
+typedef const utlVString_T  *utlVString_P2c;
+
+#define utlEMPTY_VSTRING { NULL, 0, 0 }
+
+#define utlVString(v_string_p)       ((v_string_p)->s_p)
+#define utlVStringLength(v_string_p) ((v_string_p)->length)
+#define utlVStringEnd(v_string_p)    ((v_string_p)->s_p + (v_string_p)->length)
+
+#define utlVStringTruncate(v_string_p, c_p) { *(c_p) = '\0'; (v_string_p)->length = (c_p) - (v_string_p)->s_p; }
+
+#define utlInitVString(v_string_p) { \
+		(v_string_p)->s_p    = NULL;	  \
+		(v_string_p)->length = 0;	   \
+		(v_string_p)->size   = 0;	    \
+}
+
+
+/*--- Prototypes ------------------------------------------------------------*/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern utlReturnCode_T utlVStringReserve(const utlVString_P v_string_p,
+					 const size_t n);
+extern utlReturnCode_T utlVStringCat(const utlVString_P v_string_p,
+				     const char           *s_p);
+extern utlReturnCode_T utlVStringFree(const utlVString_P v_string_p);
+extern int             utlVStringVPrintF(const utlVString_P v_string_p,
+					 const char           *format_p,
+					 va_list va_arg_p);
+extern int             utlVStringPrintF(const utlVString_P v_string_p,
+					const char           *format_p,
+					...);
+extern int             utlVStringPuts(const utlVString_P2c v_string_p,
+				      FILE                 *file_p);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UTL_VSTRING_INCLUDED */
+