FreeCalypso > hg > fc-magnetite
annotate src/condat3/com/include/kbd.h @ 516:1ed9de6c90bd
src/g23m-gsm/sms/sms_for.c: bogus malloc removed
The new error handling code that was not present in TCS211 blob version
contains a malloc call that is bogus for 3 reasons:
1) The memory allocation in question is not needed in the first place;
2) libc malloc is used instead of one of the firmware's proper ways;
3) The memory allocation is made inside a function and then never freed,
i.e., a memory leak.
This bug was caught in gcc-built FreeCalypso fw projects (Citrine
and Selenite) because our gcc environment does not allow any use of
libc malloc (any reference to malloc produces a link failure),
but this code from TCS3.2 is wrong even for Magnetite: if this code
path is executed repeatedly over a long time, the many small allocations
made by this malloc call without a subsequent free will eventually
exhaust the malloc heap provided by the TMS470 environment, malloc will
start returning NULL, and the bogus code will treat it as an error.
Because the memory allocation in question is not needed at all,
the fix entails simply removing it.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 22 Jul 2018 06:04:49 +0000 |
parents | c8bd5a927942 |
children |
rev | line source |
---|---|
18
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 +----------------------------------------------------------------------------- |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 | Project : GSM (6301) |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 | Modul : |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 +----------------------------------------------------------------------------- |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 | Copyright 2002 Texas Instruments Berlin, AG |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 | All rights reserved. |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 | |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 | This file is confidential and a trade secret of Texas |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 | Instruments Berlin, AG |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 | The receipt of or possession of this file does not convey |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 | any rights to reproduce or disclose its contents or to |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 | manufacture, use, or sell anything it may describe, in |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 | whole, or in part, without the specific written consent of |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 | Texas Instruments Berlin, AG. |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 +----------------------------------------------------------------------------- |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 | Purpose : Types definitions for the keybord driver |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 | . |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 +----------------------------------------------------------------------------- |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 */ |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 #ifndef KBD_H |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 #define KBD_H |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 /* |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 * typematic rates (character per second) |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 */ |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 #define KBD_TYPERATE_NONE 0 |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 #define KBD_TYPERATE_6 1 |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 #define KBD_TYPERATE_8 2 |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 #define KBD_TYPERATE_10 3 |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 #define KBD_TYPERATE_12 4 |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 #define KBD_TYPERATE_15 5 |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 #define KBD_TYPERATE_20 6 |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 #define KBD_TYPERATE_24 7 |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 #define KBD_TYPERATE_30 8 |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 /* |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 * type delay (in milliseconds) |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 */ |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 #define KBD_TYPEDELAY_250 1 |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 #define KBD_TYPEDELAY_500 2 |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 #define KBD_TYPEDELAY_750 3 |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 #define KBD_TYPEDELAY_1000 4 |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 /* |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 * Keyboard operations |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 */ |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 #define KBD_KEYDOWN 1 |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 #define KBD_KEYUP 2 |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 #define KBD_KEYREPEAT 3 |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 /* |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 * Keyboard signals |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 */ |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 #define KBD_SIGTYPE_STATUSCHG 1 |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 /* |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 * Driver Control Block |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 */ |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 typedef struct kbd_DCB_Type |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 { |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 USHORT TypematicRate; |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 USHORT TypematicDelay; |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 } kbd_DCB_Type; |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 #if defined (NEW_FRAME) |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 /* |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 * to achieve backward compatibility with older definitions |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 */ |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 #define drv_SignalCB_Type T_DRV_CB_FUNC |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 #define drv_SignalID_Type T_DRV_SIGNAL |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 #define T_VSI_THANDLE USHORT |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 #endif |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 /* Marcus: Issue 811: 05:09/2002: Start */ |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 /* |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 * Number of elements in the keypad arrays |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 */ |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 #define NUM_KPD_KEYS 32 |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 /* |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 * External data |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 */ |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 extern const UBYTE kbd_map [NUM_KPD_KEYS]; |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 extern const UBYTE simkbd_map [NUM_KPD_KEYS]; |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 extern char * const config_map [NUM_KPD_KEYS]; |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 /* Marcus: Issue 811: 05:09/2002: End */ |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 /* |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 * Prototypes |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91 */ |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 EXTERN UBYTE kbd_Init (drv_SignalCB_Type in_SignalCBPtr); |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93 EXTERN void kbd_Exit (void); |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 EXTERN UBYTE kbd_SetConfig (kbd_DCB_Type * in_DCBPtr); |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 EXTERN UBYTE kbd_GetConfig (kbd_DCB_Type * out_DCBPtr); |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 EXTERN UBYTE kbd_SetSignal (drv_SignalID_Type * in_SignalIDPtr); |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 EXTERN UBYTE kbd_ResetSignal (drv_SignalID_Type * in_SignalIDPtr); |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 EXTERN ULONG kbd_GetStatus (void); |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 |
c8bd5a927942
src/condat3: import of "condat" tree from TCS3.2, pruned
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 #endif |