changeset 867:c4da570dca83

int_osx_receive_prim() in gsm-fw/gpf/osx/osx.c: there was an error in the reconstruction of this function from disassembly in the logic that implements special handling for MPHC_RXLEV_REQ messages. The code is now fixed to properly match what the binary object version does; with this fix the firmware now performs the power measurement phase correctly and the initial network registration succeeds.
author Space Falcon <falcon@ivan.Harhan.ORG>
date Sat, 16 May 2015 06:34:09 +0000
parents 3adb4154f02f
children d92b110e06e0
files gsm-fw/gpf/osx/osx.c
diffstat 1 files changed, 3 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/gsm-fw/gpf/osx/osx.c	Sat May 16 01:38:49 2015 +0000
+++ b/gsm-fw/gpf/osx/osx.c	Sat May 16 06:34:09 2015 +0000
@@ -78,7 +78,7 @@
 int_osx_receive_prim(int caller, int queue_handle)
 {
 	T_QMSG Message;
-	unsigned opc, len;
+	unsigned opc;
 	xSignalHeaderRec *message;
 	int status;
 
@@ -98,10 +98,9 @@
 		message = (xSignalHeaderRec *) Message.Msg.Primitive.Prim;
 		opc = message->SignalCode & 0xFFFF;
 		if (opc == 11 && osx_config & 2)
-			len = *(unsigned *)(message + 1);
+			message->SigP = *(DummyStruct **)(message + 1);
 		else
-			len = sizeof(xSignalHeaderRec);
-		message->SigP = (DummyStruct *)((char *)message + len);
+			message->SigP = (DummyStruct *)(message + 1);
 		if (opc != 0x8000)
 			return(message);
 		vsi_c_primitive(caller, message);