annotate gsm-fw/gpf/misc/tools.c @ 923:10b4bed10192

gsm-fw/L1: fix for the DSP patch corruption bug The L1 code we got from the LoCosto fw contains a feature for DSP CPU load measurement. This feature is a LoCosto-ism, i.e., not applicable to earlier DBB chips (Calypso) with their respective earlier DSP ROMs. Most of the code dealing with that feature is conditionalized as #if (DSP >= 38), but one spot was missed, and the MCU code was writing into an API word dealing with this feature. In TCS211 this DSP API word happens to be used by the DSP code patch, hence that write was corrupting the patched DSP code.
author Mychaela Falconia <falcon@ivan.Harhan.ORG>
date Mon, 19 Oct 2015 17:13:56 +0000
parents 397b22c607c8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
320
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
1 /*
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
2 +------------------------------------------------------------------------------
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
3 | File: tools.c
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
4 +------------------------------------------------------------------------------
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
5 | Copyright 2002 Texas Instruments Berlin, AG
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
6 | All rights reserved.
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
7 |
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
8 | This file is confidential and a trade secret of Texas
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
9 | Instruments Berlin, AG
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
10 | The receipt of or possession of this file does not convey
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
11 | any rights to reproduce or disclose its contents or to
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
12 | manufacture, use, or sell anything it may describe, in
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
13 | whole, or in part, without the specific written consent of
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
14 | Texas Instruments Berlin, AG.
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
15 +-----------------------------------------------------------------------------
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
16 | Purpose : This module implements some format conversion functions.
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
17 +-----------------------------------------------------------------------------
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
18 */
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
19
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
20 #ifndef __TOOLS_C__
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
21 #define __TOOLS_C__
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
22 #endif
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
23
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
24 /*==== INCLUDES ===================================================*/
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
25
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
26 #include "typedefs.h"
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
27 #include <string.h>
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
28 #include <ctype.h>
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
29 #include "vsi.h"
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
30 #include "tools.h"
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
31
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
32 /*==== TYPES ======================================================*/
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
33
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
34
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
35 /*==== CONSTANTS ==================================================*/
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
36
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
37
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
38 /*==== EXTERNALS ==================================================*/
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
39
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
40
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
41 /*==== VARIABLES ==================================================*/
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
42
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
43
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
44 /*==== FUNCTIONS ==================================================*/
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
45
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
46
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
47
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
48 #ifndef RUN_INT_RAM
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
49 /*
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
50 +------------------------------------------------------------------------------
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
51 | Function : GetNextToken
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
52 +------------------------------------------------------------------------------
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
53 | Description : Exract text until next separator.
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
54 |
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
55 | Parameters : source - where to search
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
56 | token - destination for text
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
57 | seperator - sperator
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
58 |
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
59 | Return : string length of token
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
60 +------------------------------------------------------------------------------
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
61 */
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
62 unsigned int GetNextToken (char *source, char *token, char const *seperators)
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
63 {
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
64 unsigned int i, j, k, sep_len, src_len;
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
65 BOOL sepFound = FALSE;
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
66
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
67 sep_len = strlen (seperators);
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
68 src_len = strlen (source);
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
69
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
70 i = 0;
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
71 j = 0;
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
72 k = 0;
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
73
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
74 do
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
75 {
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
76 j = 0;
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
77 sepFound = FALSE;
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
78
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
79 while (j < sep_len)
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
80 {
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
81 if (source[i] EQ seperators[j])
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
82 sepFound = TRUE;
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
83 j++;
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
84 }
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
85 if (sepFound)
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
86 i++;
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
87 }
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
88 while (i < src_len AND sepFound);
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
89
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
90 sepFound = FALSE;
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
91
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
92 while (!sepFound AND i < src_len)
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
93 {
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
94 j = 0;
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
95 while (!sepFound AND j < sep_len)
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
96 {
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
97 if (source[i] EQ seperators[j])
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
98 sepFound = TRUE;
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
99 else
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
100 j++;
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
101 }
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
102
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
103 if (!sepFound)
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
104 token[k++] = source[i++];
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
105 }
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
106 token[k] = '\0';
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
107
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
108 return strlen (token);
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
109 }
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
110 #endif
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
111
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
112 #ifndef RUN_FLASH
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
113 /*
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
114 +------------------------------------------------------------------------------
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
115 | Function : HexToASCII
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
116 +------------------------------------------------------------------------------
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
117 | Description : Convert hexadecimal value to ASCII string.
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
118 |
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
119 | Parameters : value - value to be converted
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
120 | *ptr - destination for string
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
121 | num - number of characters
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
122 |
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
123 | Return : pointer behind the end of string
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
124 +------------------------------------------------------------------------------
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
125 */
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
126 char *HexToASCII (ULONG value, char *ptr, int num)
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
127 {
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
128 UBYTE i;
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
129 char v;
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
130
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
131 ptr += (num-1);
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
132
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
133 for (i=0; i<num ;i++)
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
134 {
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
135 v = (char)(value & 0x000000f);
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
136
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
137 value >>= 4;
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
138
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
139 if (v > 9)
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
140 v += ('A'-10);
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
141 else
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
142 v += '0';
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
143
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
144 *ptr-- = v;
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
145 }
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
146
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
147 return(ptr+num+1);
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
148 }
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
149 #endif
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
150
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
151 #ifndef RUN_INT_RAM
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
152 /*
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
153 +------------------------------------------------------------------------------
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
154 | Function : ASCIIToHex
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
155 +------------------------------------------------------------------------------
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
156 | Description : Convert ASCII string to hexadecimal value.
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
157 |
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
158 | Parameters : *ptr - string to be converted
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
159 | num - number of characters
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
160 |
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
161 | Return : value
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
162 +------------------------------------------------------------------------------
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
163 */
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
164 unsigned int ASCIIToHex (char *ptr, int num)
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
165 {
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
166 unsigned int i;
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
167 unsigned int result = 0;
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
168 unsigned int len;
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
169 char c;
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
170
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
171 len = strlen(ptr);
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
172 if ( len < (unsigned int)num )
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
173 num = (int)len;
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
174
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
175 ptr += (num-1);
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
176
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
177 for (i=0; i < (unsigned int)num; i++)
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
178 {
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
179 if (isxdigit (*ptr) )
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
180 {
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
181 if (*ptr > '9')
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
182 c = *ptr-- - 'A' + 10;
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
183 else
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
184 c = *ptr-- - '0';
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
185
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
186 /*lint -e701 suppress Info -- shift left of signed quantity */
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
187 result += (c << (i*4));
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
188 /*lint +e701 */
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
189 }
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
190 }
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
191 return result;
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
192 }
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
193 #endif
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
194
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
195 #ifndef RUN_FLASH
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
196 /*
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
197 +------------------------------------------------------------------------------
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
198 | Function : InsertString
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
199 +------------------------------------------------------------------------------
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
200 | Description : write a string into the buffer. If the string has less than
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
201 | 'num' characters, spaces are added.
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
202 |
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
203 | Parameters : *string - string to be written
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
204 | *ptr - pointer to destination
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
205 | num - number of characters to be filled
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
206 |
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
207 | Return : pointer to next character
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
208 +------------------------------------------------------------------------------
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
209 */
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
210 char *InsertString (char *string, char *ptr, int num)
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
211 {
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
212 UBYTE i;
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
213 BYTE end_detected = FALSE;
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
214
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
215 for (i=0;i<num;i++)
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
216 {
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
217 if (end_detected)
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
218 *ptr++ = ' ';
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
219 else
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
220 {
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
221 if (string [i] == 0)
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
222 {
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
223 end_detected = TRUE;
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
224 *ptr++ = ' ';
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
225 }
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
226 else
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
227 *ptr++ = string [i];
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
228 }
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
229 }
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
230 return(ptr);
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
231 }
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
232 #endif
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
233
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
234
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
235 #ifndef RUN_INT_RAM
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
236 /*
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
237 +------------------------------------------------------------------------------
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
238 | Function : rm_path
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
239 +------------------------------------------------------------------------------
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
240 | Description : remove path name from file name
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
241 |
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
242 | Parameters : *file - file name
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
243 |
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
244 | Return : file name without path information
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
245 |
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
246 +------------------------------------------------------------------------------
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
247 */
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
248 char *rm_path ( const char *file )
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
249 {
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
250 char *end;
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
251
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
252 /*
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
253 * to avoid crashes in case the passed parameter file is a pointer to
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
254 * anywhere it is checked if file begins with a character that is allowed
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
255 * at the beginning of file/path names (any alpanumeric character, '.', '/',
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
256 * and '\')
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
257 */
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
258 if ( isalpha(*file) == 0 && *file != '.' && *file != '/' && *file != '\\' )
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
259 return ((char*)"NO VALID FILENAME");
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
260
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
261 end = (char*)file + strlen(file);
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
262
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
263 while ((*end != 0x2f) && (*end != 0x5c) && (end >= (char*)file))
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
264 end--;
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
265
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
266 return end + 1;
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
267 }
397b22c607c8 gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
268 #endif