blob: b924630bacc3fee9721ea6a590285415e3363a1b [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001/*****************************************************************************
2* Copyright Statement:
3* --------------------
4* This software is protected by Copyright and the information contained
5* herein is confidential. The software may not be copied and the information
6* contained herein may not be used or disclosed except with the written
7* permission of MediaTek Inc. (C) 2013
8*
9* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
10* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
11* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
12* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
13* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
14* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
15* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
16* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
17* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
18* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
19* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
20* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
21*
22* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
23* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
24* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
25* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
26* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
27*
28* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
29* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
30* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
31* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
32* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
33*
34*****************************************************************************/
35
36/*******************************************************************************
37 * Filename:
38 * ---------
39 * drv_hsl.c
40 *
41 * Project:
42 * --------
43 * MOLY
44 *
45 * Description:
46 * ------------
47 * Driver of LTE L1 ESL High Speed Logger
48 *
49 * Author:
50 * -------
51 * -------
52 *
53 * ==========================================================================
54 * $Log$
55 ****************************************************************************/
56#include <kal_public_api.h>
57#include <drv_hsl.h>
58
59#define HSL_MAX_BUFFER_SIZE 512
60#define HSL_MAX_RAW_TRACE_SIZE (128)
61
62static char _hslBuffer[HSL_MAX_BUFFER_SIZE];
63
64/*-----------------------------------------------------------------------*
65* FUNCTION
66* HSLPrintSting
67*
68* DESCRIPTION
69* This function print a string with given length to HSL
70*
71* PARAMETERS
72* string: string to print
73* size: length of the string
74*
75* RETURNS
76* None.
77*
78*------------------------------------------------------------------------*/
79void HSLPrintString(char * string, unsigned long int size)
80{
81 unsigned long int idx;
82
83 for(idx = 0; idx < size; idx++)
84 {
85 M_HSLPrintChar(string[idx]);
86 }
87}
88
89/*-----------------------------------------------------------------------*
90* FUNCTION
91* HSLPrintf
92*
93* DESCRIPTION
94* This function is a generic printf entry for HSL
95*
96* PARAMETERS
97* fmt: string format
98*
99* RETURNS
100* None.
101*
102*------------------------------------------------------------------------*/
103void HSLPrintf(const char * fmt, ... )
104{
105 unsigned long int size;
106 va_list args;
107
108 va_start(args, fmt);
109 size = vsnprintf(_hslBuffer, HSL_MAX_BUFFER_SIZE, fmt, args);
110 va_end(args);
111
112 if(size >= HSL_MAX_BUFFER_SIZE)
113 {
114 /* truncated */
115 size = HSL_MAX_BUFFER_SIZE - 1;
116 }
117
118 HSLPrintString(_hslBuffer, size);
119}
120
121void hsl_printf(const char * fmt, ... )
122{
123 char buffer[HSL_MAX_RAW_TRACE_SIZE];
124 unsigned long int size;
125 va_list args;
126
127 va_start(args, fmt);
128 size = vsnprintf(_hslBuffer, HSL_MAX_BUFFER_SIZE, fmt, args);
129 va_end(args);
130
131 if(size >= HSL_MAX_RAW_TRACE_SIZE)
132 {
133 /* truncated */
134 buffer[HSL_MAX_RAW_TRACE_SIZE-1] = 0;
135 size = HSL_MAX_RAW_TRACE_SIZE - 1;
136 }
137
138 HSLPrintString(_hslBuffer, size);
139}