FreeCalypso > hg > fc-magnetite
comparison src/cs/drivers/drv_app/kpd/kpd_power_api.c @ 0:945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
binary blobs and LCD demo files have been excluded,
all line endings are LF only
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 25 Sep 2016 22:50:11 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:945cf7f506b2 |
---|---|
1 /** | |
2 * @file kpd_power_api.c | |
3 * | |
4 * Implementation of bridge function for PWR SWE interface. | |
5 * | |
6 * @author Laurent Sollier (l-sollier@ti.com) | |
7 * @version 0.1 | |
8 */ | |
9 | |
10 /* | |
11 * History: | |
12 * | |
13 * Date Author Modification | |
14 * ---------------------------------------- | |
15 * 11/02/2001 L Sollier Create | |
16 * | |
17 * | |
18 * (C) Copyright 2001 by Texas Instruments Incorporated, All Rights Reserved | |
19 */ | |
20 | |
21 #include "kpd/kpd_power_api.h" | |
22 #include "kpd/kpd_messages_i.h" | |
23 #include "kpd/kpd_physical_key_def.h" | |
24 #include "kpd/kpd_env.h" | |
25 | |
26 #include "rvm/rvm_use_id_list.h" | |
27 | |
28 /* External declaration */ | |
29 extern T_KPD_ENV_CTRL_BLK* kpd_env_ctrl_blk; | |
30 | |
31 /* This variable ius defined here but is used by the PWR SWE */ | |
32 T_KPD_KEYPAD Kp = {0}; | |
33 | |
34 | |
35 /** | |
36 * @name Functions implementation | |
37 * | |
38 */ | |
39 /*@{*/ | |
40 | |
41 | |
42 /** | |
43 * function: kpd_power_key_pressed | |
44 */ | |
45 T_RV_RET kpd_power_key_pressed(void) | |
46 { | |
47 T_RV_RET ret = RV_OK; | |
48 | |
49 T_RVF_MB_STATUS mb_status; | |
50 T_KPD_KEY_PRESSED_MSG* msg_key_pressed; | |
51 | |
52 /* Check if initialization has been correctly done */ | |
53 if ( (kpd_env_ctrl_blk == 0) || (kpd_env_ctrl_blk->swe_is_initialized == FALSE) ) | |
54 { | |
55 KPD_SEND_TRACE("KPD: Initialization is not yet done or failed", RV_TRACE_LEVEL_ERROR); | |
56 return RV_INTERNAL_ERR; | |
57 } | |
58 | |
59 /* Reserve memory for message */ | |
60 mb_status = rvf_get_buf (kpd_env_ctrl_blk->prim_id, sizeof(T_KPD_KEY_PRESSED_MSG), (void **) &msg_key_pressed); | |
61 | |
62 if (mb_status == RVF_GREEN) /* Memory allocation success */ | |
63 { | |
64 /* Fill the message */ | |
65 msg_key_pressed->hdr.msg_id = KPD_KEY_PRESSED_MSG; | |
66 msg_key_pressed->value = KPD_SHORT_PRESS_PWR_KEY; | |
67 msg_key_pressed->key_to_process = TRUE; | |
68 | |
69 /* Send message to the keypad task */ | |
70 rvf_send_msg(kpd_env_ctrl_blk->addr_id, msg_key_pressed); | |
71 } | |
72 else | |
73 { | |
74 KPD_SEND_TRACE("KPD: Memory allocation error", RV_TRACE_LEVEL_ERROR); | |
75 if (mb_status == RVF_YELLOW) | |
76 rvf_free_buf(msg_key_pressed); | |
77 ret = RV_MEMORY_ERR; | |
78 } | |
79 | |
80 | |
81 return ret; | |
82 } | |
83 | |
84 | |
85 /*@}*/ |