Changes
Summary
- Ghost image: further cleanups and fixes
- Ghost image: fix crash (issues #2796, #2783, #2878, #2885)
- features.tmpl edited online with Bitbucket: use id in th section heading to allow for direct linking via anchor
- Merged in edmac (pull request #886) EDMAC module: fixes for DIGIC 4, connection map
- Merged in adv_int (pull request #907) Advanced intervalometer updates
- Merged in memory-backend (pull request #906) Memory backend improvements
- Makefile: fix "make install_qemu CONFIG_QEMU=y" for minimal targets
- memset64/memcpy64: use versions from b831cb1; fix calls from Magic Zoom to ensure proper alignment
- Backout b831cb1 (breaks Magic Zoom and CONFIG_MARK_UNUSED_MEMORY_AT_STARTUP, as memset64 is not the same as memset)
- adv_int: ignore empty lines when loading keyframes
- adv_int: use strstr instead of my_strstr (fixes slow load)
- Include strstr in ML core
- adv_int: refactor keyframe time formatting
- adv_int: auto-load the saved sequence at startup
- adv_int: renamed menu entry to "Ramping options"
- Memory backend: drop timestamps from history; show last 1024 events
- Memory backend: show total allocations (number and amount), including untracked ones
- Memory backend: allow using shoot_malloc as a last resort, even for small blocks; allow small blocks (smaller than minimum_free_space / 64) to break the minimum_free_space limit (until minimum_free_space / 4) fine-tuned until the old set of Lua scripts were able to run on 1100D without umm_malloc
- Memory backend: a pointer to task names (rather than copying the full string) should be enough
- Memory backend: renamed memcheck_mallocbuf to memcheck_entries
- Moved memset64 and memcpy64 to bench.mo - simplified to accept only 32-bit aligned pointers - using regular memset for Magic Zoom - closing issue #1995
- Memory backend: if shoot_malloc fails, try SRM next (poor man's autodetection, since we don't know how to query the available size in advance)
- exmem: reworked shoot_malloc to handle large requests better - moved autodetection to dedicated functions (for both fragmented and continuous allocations) - autodetect the max available size for large requests (slower, but when it fails, it fails gracefully)
- exmem: removed the "relaxed" checks introduced in 04f02a4 (not sure why they were needed; we'll find out if it fails)
- exmem: speed-up shoot_malloc (1s timeout probably not needed)
- exmem: do not keep track of full shoot memory allocations (allows reserving some memory in advance and allocating all the remaining RAM afterwards)
- Memory backend: fix handling of untracked blocks (possible buffer overflow before this fix)
- Memory backend: figured out why AllocateContinuousMemoryResource may crash with many small blocks (todo: figure out where to keep 89e3b12 or not; adapt tests if not)
- Memory backend: when checking available memory, allocate both Shoot ans SRM at the same time (they may overlap)
- Memory backend: fix initialization
- mem.c: option to disable heap poisoning (useful when running in QEMU with -d memcheck - with this, overflowing reads will be caught as well)
- Memory backend: allow breaking minimum_free_space for small blocks (it was possible to fail the allocation for very small blocks that could not be covered by shoot_malloc)
- Memory backend: allow AllocateMemory as a last resort, even if free space is below limit (it was possible to fail the allocation for very small blocks that could not be covered by shoot_malloc)
- memory backend: reduce memcheck area (should reduce overhead a bit)
- memory backend: ignore null pointers passed to free (Lua does that)
- exmem: when autodetecting available memory, print all srm/shoot memory blocks to console
- edmac: make sure the log files don't have unnecessary newlines (channels with complex size configuration may get printed on multiple lines; that makes the log file harder to parse)
- edmac: LOG_INTERVAL can now be changed from menu (persistent setting)
- edmac: use numbered log file names
- edmac: fix behavior when the extra info buffer gets full
- edmac: use half-shutter as trigger for logging EDMAC channels; fine-tuned messages
- edmac: fix crash on models other than 5D3 (there was a hardcoded stub)
- edmac: fix crash when using "Log EDMAC usage" on D4 models
- Merged unified into edmac
- Added edmac.mo to nightly builds
- edmac-memcpy: check to make sure all models have AbortEDmac (to make sure it's correct: selftest.mo -> Stubs API test)
- edmac.mo: display connection map (experiment)