FreeCalypso > hg > fc-magnetite
annotate src/gpf2/frame/cust_os/osx.c @ 662:8cd8fd15a095
SIM speed enhancement re-enabled and made configurable
TI's original code supported SIM speed enhancement, but Openmoko had it
disabled, and OM's disabling of speed enhancement somehow caused certain
SIM cards to start working which didn't work before (OM's bug #666).
Because our FC community is much smaller in year 2020 than OM's community
was in their day, we are not able to find one of those #666-affected SIMs,
thus the real issue they had encountered remains elusive. Thus our
solution is to re-enable SIM speed enhancement and simply wait for if
and when someone runs into a #666-affected SIM once again. We provide
a SIM_allow_speed_enhancement global variable that allows SIM speed
enhancement to be enabled or disabled per session, and an /etc/SIM_spenh
file in FFS that allows it to enabled or disabled on a non-volatile
basis. SIM speed enhancement is now enabled by default.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 24 May 2020 05:02:28 +0000 |
parents | 5ce1598de1a6 |
children |
rev | line source |
---|---|
505
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 * This C module is a reconstruction based on the disassembly of |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 * osx.obj in osx_na7_db.lib from the Leonardo package. |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 */ |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 /* reconstructed set of included headers from COFF symtab: */ |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 #include <stdio.h> |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 #include <stdlib.h> |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 #include <string.h> |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 #include "typedefs.h" |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 #include "vsi.h" |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 #include "cust_os.h" |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 int osx_config = 2; |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 int _caller; |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 T_OSX_REGISTER _osx_registry[MAX_OSX_QUEUE]; |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 void |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 int_osx_send_sig(int caller, unsigned long opc, void *signal_ptr, |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 int queue_handle) |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 { |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 T_QMSG Message; |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 int status; |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 TRACE_ASSERT(queue_handle != 0); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 Message.MsgType = MSG_SIGNAL; |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 Message.Msg.Signal.SigOPC = opc; |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 Message.Msg.Signal.SigBuffer = signal_ptr; |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 Message.Msg.Signal.SigLen = sizeof(xSignalHeaderRec); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 status = vsi_c_send(caller, queue_handle, &Message FILE_LINE_MACRO); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 TRACE_ASSERT(status == VSI_OK); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 } |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 void |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 osx_send_sig(unsigned long opc, void *signal_ptr, T_ENUM_OS_QUEUE queue_type) |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 { |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 int caller, queue_handle; |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 caller = _osx_registry[queue_type].caller; |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 queue_handle = _osx_registry[queue_type].queue_handle; |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 TRACE_ASSERT(queue_handle != 0); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 int_osx_send_sig(caller, opc, signal_ptr, queue_handle); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 } |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 void |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 int_osx_free_prim(int caller, xSignalHeaderRec *prim_ptr) |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 { |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 vsi_c_free(caller, (T_VOID_STRUCT **) &prim_ptr FILE_LINE_MACRO); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 } |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 void |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 int_osx_send_prim(int caller, xSignalHeaderRec *prim_ptr, int queue_handle) |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 { |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 T_QMSG Message; |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 int status; |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 if (osx_config & 1 && prim_ptr->SignalCode == 0x7D) { |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 vsi_c_free(caller, (T_VOID_STRUCT **) &prim_ptr |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 FILE_LINE_MACRO); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 return; |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 } |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 TRACE_ASSERT(queue_handle != 0); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 Message.MsgType = MSG_PRIMITIVE; |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 Message.Msg.Primitive.Prim = (T_VOID_STRUCT *) prim_ptr; |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 Message.Msg.Primitive.PrimLen = sizeof(xSignalHeaderRec); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 status = vsi_c_send(caller, queue_handle, &Message FILE_LINE_MACRO); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 TRACE_ASSERT(status == VSI_OK); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 } |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 void |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 osx_send_prim(xSignalHeaderRec *prim_ptr, T_ENUM_OS_QUEUE queue_type) |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 { |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 int_osx_send_prim(_osx_registry[queue_type].caller, prim_ptr, |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 _osx_registry[queue_type].queue_handle); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 } |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 xSignalHeaderRec * |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 int_osx_receive_prim(int caller, int queue_handle) |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 { |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 T_QMSG Message; |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 unsigned opc; |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 xSignalHeaderRec *message; |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 int status; |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 TRACE_ASSERT(queue_handle != OSX_ERROR); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 for (;;) { |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 status = vsi_c_await(caller, queue_handle, &Message, |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 0xFFFFFFFF); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 TRACE_ASSERT(status == VSI_OK); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 /* |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91 * Disassembly reveals that the original code expects |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 * the received message to be a primitive, rather than |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93 * a signal or a timeout. If one of the latter comes |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 * in, the original code would go haywire. Hence the |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 * following TRACE_ASSERT is a FreeCalypso addition. |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 */ |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 TRACE_ASSERT(Message.MsgType == MSG_PRIMITIVE); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 message = (xSignalHeaderRec *) Message.Msg.Primitive.Prim; |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 opc = message->SignalCode & 0xFFFF; |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 if (opc == 11 && osx_config & 2) |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101 message->SigP = *(DummyStruct **)(message + 1); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102 else |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103 message->SigP = (DummyStruct *)(message + 1); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104 if (opc != 0x8000) |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105 return(message); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106 vsi_c_primitive(caller, message); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 } |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 } |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 xSignalHeaderRec * |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 osx_receive_prim(T_ENUM_OS_QUEUE queue_type) |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 { |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113 return int_osx_receive_prim(_osx_registry[queue_type].caller, |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114 _osx_registry[queue_type].queue_handle); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115 } |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116 |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117 void |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 osx_free_prim(xSignalHeaderRec *prim_ptr) |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
119 { |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
120 vsi_c_free(_caller, (T_VOID_STRUCT **) &prim_ptr FILE_LINE_MACRO); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
121 } |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
122 |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
123 void |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
124 int_osx_free_mem(int caller, void *mem_ptr) |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
125 { |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
126 int status; |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
127 |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
128 TRACE_ASSERT(mem_ptr != 0); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
129 status = D_FREE(mem_ptr); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
130 TRACE_ASSERT(status == VSI_OK); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
131 } |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
132 |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
133 void |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
134 osx_free_mem(void *mem_ptr) |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
135 { |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
136 int_osx_free_mem(_caller, mem_ptr); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
137 } |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
138 |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
139 xSignalHeaderRec * |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
140 int_osx_alloc_prim(int caller, unsigned long len, int pool_group_handle) |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
141 { |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
142 xSignalHeaderRec *prim_ptr; |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
143 |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
144 prim_ptr = (xSignalHeaderRec *) vsi_c_new(caller, |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
145 (len & 0xFFFF) + sizeof(xSignalHeaderRec), 0 |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
146 FILE_LINE_MACRO); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
147 /* This check is a FreeCalypso addition */ |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
148 TRACE_ASSERT(prim_ptr != 0); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
149 prim_ptr->SigP = (DummyStruct *)(prim_ptr + 1); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
150 return(prim_ptr); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
151 } |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
152 |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
153 xSignalHeaderRec * |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
154 osx_alloc_prim(unsigned long len) |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
155 { |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
156 xSignalHeaderRec *prim_ptr; |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
157 |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
158 prim_ptr = (xSignalHeaderRec *) vsi_c_new(_caller, |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
159 (len & 0xFFFF) + sizeof(xSignalHeaderRec), 0 |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
160 FILE_LINE_MACRO); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
161 /* This check is a FreeCalypso addition */ |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
162 TRACE_ASSERT(prim_ptr != 0); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
163 prim_ptr->SigP = (DummyStruct *)(prim_ptr + 1); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
164 return(prim_ptr); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
165 } |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
166 |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
167 void * |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
168 int_osx_alloc_mem(int caller, unsigned long len) |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
169 { |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
170 void *mem_ptr; |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
171 |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
172 DMALLOC(mem_ptr, len); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
173 TRACE_ASSERT(mem_ptr != 0); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
174 return(mem_ptr); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
175 } |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
176 |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
177 void * |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
178 osx_alloc_mem(unsigned long len) |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
179 { |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
180 return int_osx_alloc_mem(_caller, len); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
181 } |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
182 |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
183 int |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
184 _osx_open(int caller, unsigned short queue_type, int queue_handle) |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
185 { |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
186 if (!queue_type && !queue_handle) { |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
187 _caller = caller; |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
188 return(OSX_ERROR); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
189 } |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
190 if (queue_type >= MAX_OSX_QUEUE) |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
191 return(OSX_ERROR); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
192 if (_osx_registry[queue_type].queue_handle != queue_handle && |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
193 _osx_registry[queue_type].queue_handle != -1) |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
194 return(OSX_ERROR); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
195 _osx_registry[queue_type].queue_handle = queue_handle; |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
196 _osx_registry[queue_type].caller = caller; |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
197 return(OSX_OK); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
198 } |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
199 |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
200 void |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
201 _osx_init(void) |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
202 { |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
203 USHORT i; |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
204 |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
205 for (i = 0; i < MAX_OSX_QUEUE; i++) |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
206 _osx_registry[i].queue_handle = -1; |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
207 } |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
208 |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
209 int |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
210 _osx_config(const char *config) |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
211 { |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
212 if (!strcmp(config, L1S_TRACE_DISABLE)) { |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
213 osx_config |= 1; |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
214 return(OSX_OK); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
215 } |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
216 if (!strcmp(config, L1S_TRACE_ENABLE)) { |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
217 osx_config &= ~1; |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
218 return(OSX_OK); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
219 } |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
220 if (!strcmp(config, NO_SPECIAL_MPHC_RXLEV_REQ)) { |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
221 osx_config &= ~2; |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
222 return(OSX_OK); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
223 } |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
224 return(OSX_ERROR); |
5ce1598de1a6
osx.c reconstructed source integrated, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
225 } |