Changeset 1569 for trunk/platform/generic/wrappers.c
- Timestamp:
- 01/16/12 08:22:51 (16 months ago)
- Location:
- trunk
- Files:
-
- 2 edited
-
. (modified) (1 prop)
-
platform/generic/wrappers.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk
- Property svn:mergeinfo changed
/branches/reyalp-flt merged: 1527-1568
- Property svn:mergeinfo changed
-
trunk/platform/generic/wrappers.c
r1527 r1569 692 692 // Use suba functions to fill meminfo structure to match firmware GetMemInfo function 693 693 694 voidGetExMemInfo(cam_meminfo *camera_meminfo)694 int GetExMemInfo(cam_meminfo *camera_meminfo) 695 695 { 696 696 extern void suba_getmeminfo(void*, int*, int*, int*, int*, int*, int*); … … 702 702 &camera_meminfo->allocated_size, &camera_meminfo->allocated_peak, &camera_meminfo->allocated_count, 703 703 &camera_meminfo->free_size, &camera_meminfo->free_block_max_size, &camera_meminfo->free_block_count); 704 705 return 1; // return success 704 706 } 705 707 // regular malloc … … 711 713 void free(void *p) { 712 714 return _free(p); 715 } 716 717 // Include this for the module_inspector module to simplify symbol export logic 718 int GetExMemInfo(cam_meminfo *camera_meminfo) 719 { 720 return 0; // return failure (not implemented) 713 721 } 714 722 #endif … … 747 755 } 748 756 757 void GetMemInfo(cam_meminfo *camera_meminfo) 758 { 749 759 #if defined(CAM_FIRMWARE_MEMINFO) 750 760 751 761 // Use firmware GetMemInfo function to retrieve info about Canon heap memory allocation 752 762 753 void GetMemInfo(cam_meminfo *camera_meminfo)754 {755 763 #if defined(CAM_DRYOS) 756 764 // Prior to dryos R39 GetMemInfo returns 9 values, after R39 it returns 10 (all but 1 are used in each case) … … 800 808 #endif 801 809 #endif 802 } 803 804 #endif 810 811 #else //!defined(CAM_FIRMWARE_MEMINFO) 812 // -1 for invalid 813 memset(camera_meminfo,0xFF,sizeof(cam_meminfo)); 814 815 // Calculate largest free block size 816 int size, l_size, d; 817 char* ptr; 818 819 size = 16; 820 while (1) { 821 ptr= malloc(size); 822 if (ptr) { 823 free(ptr); 824 size <<= 1; 825 } else 826 break; 827 } 828 829 l_size = size; 830 size >>= 1; 831 d=1024; 832 while (d) { 833 ptr = malloc(size); 834 if (ptr) { 835 free(ptr); 836 d = l_size-size; 837 if (d<0) d=-d; 838 l_size = size; 839 size += d>>1; 840 } else { 841 d = size-l_size; 842 if (d<0) d=-d; 843 l_size = size; 844 size -= d>>1; 845 } 846 847 } 848 849 camera_meminfo->free_block_max_size = size-1; 850 #endif 851 } 852 805 853 806 854 //----------------------------------------------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.