[svn-commits] kpfleming: branch 1.4 r1998 - in /branches/1.4: ./ wct4xxp/base.c

svn-commits at lists.digium.com svn-commits at lists.digium.com
Mon Jan 29 12:21:34 MST 2007


Author: kpfleming
Date: Mon Jan 29 13:21:33 2007
New Revision: 1998

URL: http://svn.digium.com/view/zaptel?view=rev&rev=1998
Log:
Merged revisions 1996 via svnmerge from 
https://origsvn.digium.com/svn/zaptel/branches/1.2

........
r1996 | kpfleming | 2007-01-29 13:20:32 -0600 (Mon, 29 Jan 2007) | 2 lines

_really_ fix the non-hotplug firmware case

........

Modified:
    branches/1.4/   (props changed)
    branches/1.4/wct4xxp/base.c

Propchange: branches/1.4/
------------------------------------------------------------------------------
Binary property 'branch-1.2-merged' - no diff available.

Modified: branches/1.4/wct4xxp/base.c
URL: http://svn.digium.com/view/zaptel/branches/1.4/wct4xxp/base.c?view=diff&rev=1998&r1=1997&r2=1998
==============================================================================
--- branches/1.4/wct4xxp/base.c (original)
+++ branches/1.4/wct4xxp/base.c Mon Jan 29 13:21:33 2007
@@ -3102,8 +3102,8 @@
 	struct firmware embedded_firmware;
 	const struct firmware *firmware = &embedded_firmware;
 #if !defined(HOTPLUG_FIRMWARE)
-	extern const u32 *_binary_OCT6114_64D_ima_size;
-	extern const u32 *_binary_OCT6114_128D_ima_size;
+	extern void *_binary_OCT6114_64D_ima_size;
+	extern void *_binary_OCT6114_128D_ima_size;
 	extern u8 _binary_OCT6114_64D_ima_start[];
 	extern u8 _binary_OCT6114_128D_ima_start[];
 #endif
@@ -3142,7 +3142,13 @@
 		}
 #else
 		embedded_firmware.data = _binary_OCT6114_64D_ima_start;
-		embedded_firmware.size = *_binary_OCT6114_64D_ima_size;
+		/* Yes... this is weird. objcopy gives us a symbol containing
+		   the size of the firmware, not a pointer a variable containing
+		   the size. The only way we can get the value of the symbol
+		   is to take its address, so we define it as a pointer and
+		   then cast that value to the proper type.
+		*/
+		embedded_firmware.size = (size_t) _binary_OCT6114_64D_ima_size;
 #endif
 		break;
 	case 128:
@@ -3154,7 +3160,13 @@
 		}
 #else
 		embedded_firmware.data = _binary_OCT6114_128D_ima_start;
-		embedded_firmware.size = *_binary_OCT6114_128D_ima_size;
+		/* Yes... this is weird. objcopy gives us a symbol containing
+		   the size of the firmware, not a pointer a variable containing
+		   the size. The only way we can get the value of the symbol
+		   is to take its address, so we define it as a pointer and
+		   then cast that value to the proper type.
+		*/
+		embedded_firmware.size = (size_t) _binary_OCT6114_128D_ima_size;
 #endif
 		break;
 	default:



More information about the svn-commits mailing list