FreeCalypso > hg > fc-magnetite
annotate src/cs/services/tty/tty_env.c @ 389:5addc2943fa2
scripts/config-headers-new.sh: written, to be tested
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Wed, 17 Jan 2018 19:54:56 +0000 | 
| parents | 945cf7f506b2 | 
| children | 
| rev | line source | 
|---|---|
| 
0
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1 /** | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
2 * @file tty_env.c | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
3 * | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
4 * Coding of the Riviera Generic Functions, | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
5 * except handle_message and handle_timer, which are | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
6 * in tty_handle_message.c and tty_handle_timer.c | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
7 * | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
8 * @author Frederic Turgis (f-turgis@ti.com) & Gerard Cauvy (g-cauvy@ti.com) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
9 * @version 0.1 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
10 */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
11 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
12 /* | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
13 * History: | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
14 * | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
15 * Date Modification | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
16 * ------------------------------------ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
17 * 01/27/2003 Create | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
18 * | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
19 * (C) Copyright 2003 by Texas Instruments Incorporated, All Rights Reserved | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
20 */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
21 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
22 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
23 #include "tty/tty_i.h" | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
24 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
25 #include "rvm/rvm_priorities.h" | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
26 #include "tty/tty_env.h" | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
27 #include <string.h> | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
28 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
29 /** | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
30 * Pointer on the structure gathering all the global variables | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
31 * used by TTY instance. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
32 */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
33 T_TTY_ENV_CTRL_BLK *tty_env_ctrl_blk_p = NULL; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
34 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
35 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
36 /* External declaration */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
37 extern T_RV_RET tty_core(void); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
38 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
39 /** | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
40 * Called by the RV manager to learn | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
41 * tty requirements in terms of memory, SWEs... | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
42 * | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
43 * @param swe_info Pointer to the structure to fill | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
44 * containing infos related to the tty SWE. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
45 * | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
46 * @return RVM_OK | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
47 */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
48 T_RVM_RETURN tty_get_info(T_RVM_INFO_SWE * swe_info) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
49 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
50 /* TTY is a Type 4 SWE. */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
51 swe_info->swe_type = RVM_SWE_TYPE_4; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
52 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
53 memcpy(swe_info->type_info.type4.swe_name, "TTY", sizeof("TTY")); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
54 swe_info->type_info.type4.swe_use_id = TTY_USE_ID; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
55 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
56 /* SWE info */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
57 swe_info->type_info.type4.stack_size = TTY_STACK_SIZE; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
58 swe_info->type_info.type4.priority = RVM_TTY_TASK_PRIORITY; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
59 swe_info->type_info.type4.version = BUILD_VERSION_NUMBER(0,1,0); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
60 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
61 /* Memory bank info */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
62 swe_info->type_info.type4.nb_mem_bank = 1; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
63 memcpy(swe_info->type_info.type4.mem_bank[0].bank_name, "TTY_PRIM", sizeof("TTY_PRIM")); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
64 swe_info->type_info.type4.mem_bank[0].initial_params.size = TTY_MB_PRIM_SIZE; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
65 swe_info->type_info.type4.mem_bank[0].initial_params.watermark = TTY_MB_PRIM_WATERMARK; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
66 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
67 /* | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
68 * Linked SWE info. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
69 */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
70 swe_info->type_info.type4.nb_linked_swe = 0; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
71 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
72 /* Set the return path: NOT USED. */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
73 swe_info->type_info.type4.return_path.callback_func = NULL; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
74 swe_info->type_info.type4.return_path.addr_id = 0; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
75 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
76 /* Generic functions */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
77 swe_info->type_info.type4.set_info = tty_set_info; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
78 swe_info->type_info.type4.init = tty_init; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
79 swe_info->type_info.type4.core = tty_core; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
80 swe_info->type_info.type4.stop = tty_stop; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
81 swe_info->type_info.type4.kill = tty_kill; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
82 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
83 return RVM_OK; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
84 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
85 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
86 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
87 /** | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
88 * Called by the RV manager to inform the tty SWE about | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
89 * addr_id, return path, mb_id and error function. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
90 * | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
91 * It is called only once. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
92 * | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
93 * @param addr_id Address ID of the TTY SWE. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
94 * Used to send messages to the SWE. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
95 * @param return_path Return path array of the linked SWEs. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
96 * @param bk_id_table Array of memory bank ids allocated to the SWE. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
97 * @param call_back_error_ft Callback function to call in case of unrecoverable error. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
98 * @return RVM_MEMORY_ERR ou RVM_OK. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
99 */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
100 T_RVM_RETURN tty_set_info ( T_RVF_G_ADDR_ID addr_id, | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
101 T_RV_RETURN_PATH return_path[], | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
102 T_RVF_MB_ID bk_id_table[], | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
103 T_RVM_CB_FUNC call_back_error_ft) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
104 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
105 /* Memory bank status (red, yellow, green). */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
106 T_RVF_MB_STATUS mb_status; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
107 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
108 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
109 /* Create instance gathering all the variable used by TTY instance */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
110 mb_status = rvf_get_buf(bk_id_table[0], | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
111 sizeof(T_TTY_ENV_CTRL_BLK), | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
112 (T_RVF_BUFFER**)&tty_env_ctrl_blk_p); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
113 if (mb_status == RVF_RED) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
114 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
115 TTY_SEND_TRACE("TTY: Error to get memory ",RV_TRACE_LEVEL_ERROR); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
116 return RVM_MEMORY_ERR; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
117 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
118 else if (mb_status == RVF_YELLOW) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
119 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
120 /* | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
121 * The flag is yellow, there will soon be not enough memory anymore. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
122 */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
123 TTY_SEND_TRACE("TTY: Getting short on memory ", RV_TRACE_LEVEL_WARNING); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
124 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
125 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
126 /* Store the initial State; default is IDLE. */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
127 tty_env_ctrl_blk_p->state = TTY_IDLE; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
128 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
129 /* Store the address ID. */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
130 tty_env_ctrl_blk_p->addr_id = addr_id; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
131 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
132 /* Store the pointer to the error function. */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
133 tty_env_ctrl_blk_p->error_ft = call_back_error_ft; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
134 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
135 /* | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
136 * Store the mem bank id. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
137 * Memory bank ID (mb_id) can be retrieved later using rvf_get_mb_id function. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
138 */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
139 tty_env_ctrl_blk_p->prim_mb_id = bk_id_table[0]; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
140 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
141 /* | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
142 * Array return_path: Return path of linked SWE. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
143 * If the linked SWE have an API based on messages, their return path given | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
144 * by the set_info function would be stored and used to communicate with them. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
145 * But since the linked SWE of TTY have an API based on functions, it is not | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
146 * necessary to store their return path. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
147 */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
148 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
149 return RVM_OK; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
150 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
151 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
152 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
153 /** | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
154 * Called by the RV manager to initialize the | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
155 * tty SWE before creating the task and calling tty_start. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
156 * | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
157 * @return RVM_OK | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
158 */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
159 T_RVM_RETURN tty_init (void) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
160 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
161 /* | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
162 * TTY Global Initialization. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
163 */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
164 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
165 return RVM_OK; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
166 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
167 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
168 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
169 /** | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
170 * Called by the RV manager to stop the tty SWE. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
171 * | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
172 * @return RVM_OK or RVM_INTERNAL_ERR | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
173 */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
174 T_RVM_RETURN tty_stop (void) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
175 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
176 /* | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
177 * Here we should stop the activities of the SWE | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
178 * It is still possible to send messages to other SWE, to unregister for example. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
179 */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
180 TTY_SEND_TRACE("TTY: stop called", RV_TRACE_LEVEL_DEBUG_LOW); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
181 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
182 return RVM_OK; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
183 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
184 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
185 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
186 /** | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
187 * Called by the RV manager to kill the tty SWE, | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
188 * after the tty_stop function has been called. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
189 * | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
190 * @return RVM_OK | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
191 */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
192 T_RVM_RETURN tty_kill (void) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
193 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
194 /* | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
195 * Here we cannot send messages anymore. We only free the last | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
196 * used resources, like the control block buffer. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
197 */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
198 TTY_SEND_TRACE("TTY: kill called", RV_TRACE_LEVEL_DEBUG_LOW); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
199 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
200 rvf_free_buf(tty_env_ctrl_blk_p); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
201 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
202 return RVM_OK; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
203 } | 
