=============================================================================== = cam_os_wrapper change log = =============================================================================== v1.0.23 - 2019-12-11 Added - Support CamOsMemoryBarrier. v1.0.22 - 2019-12-09 Added - Support CamOsIdrInitEx for create IDR with maximum entry number. v1.0.21 - 2019-08-09 Added - Support CamOsThreadChangePriority. v1.0.20 - 2019-08-02 Changed - cam_os_util_list.h enable CAM_OS_HLIST_EMPTY again, it will cause ABICC check g++ build fail. v1.0.19 - 2019-08-01 Changed - Change parameter order of following atomic function for alignment API style CamOsAtomicAddReturn CamOsAtomicSubReturn CamOsAtomicSubAndTest CamOsAtomicAddNegative v1.0.18 - 2019-08-01 Added - CamOsAtomicAndFetch / CamOsAtomicFetchAnd for AND operation. - CamOsAtomicNandFetch / CamOsAtomicFetchNand for NAND operation. - CamOsAtomicOrFetch / CamOsAtomicFetchOr for OR operation. - CamOsAtomicXorFetch / CamOsAtomicFetchXor for XOR operation. v1.0.17 - 2019-05-16 Enhanced - CamOsGetTimeOfDay and CamOsSetTimeOfDay support nanosecond field in RTK. v1.0.16 - 2019-05-10 Fixed - cam_os_util_list.h cause ABICC check g++ build fail. v1.0.15 - 2019-05-06 Added - Add CamOsMemInvalidate for invalidate data in cache. v1.0.14 - 2019-04-10 Fixed - CamOsSetTimeOfDay, _TestCamOsSystemTime Fix coverity issue - "Memory - illegal accesses". v1.0.13 - 2019-03-05 Added - CamOsIrq### Support interrupt handler setup and control. v1.0.12 - 2019-02-01 Fixed - CamOsMutex_t and other CamOs### strust may cause alignment exception issue in Linux. v1.0.11 - 2019-01-24 Changed - CamOsGetMonotonicTime sourcing from arch in RTK. - Update Software Copyright. v1.0.10 - 2019-01-16 Added - CamOsMiuPipeFlush Flush MIU write buffer. Changed - CamOsSpinLockIrq and CamOsSpinUnlockIrq are no longer supported. v1.0.9 - 2018-12-27 Added - CamOsPrintString Writes the C string pointed without format to the standard output. Fixed - CamOsPrintf Fix system crash if print more than 256 characters in RTK. v1.0.8 - 2018-12-20 Added - In kernel space, redirect atoi and qsort to linux kernel's implement. Fixed - In RTK and user space, CamOsAtomicIncReturn AND CamOsAtomicDecReturn will return the value that before add or sub. v1.0.7 - 2018-12-11 Added - CamOsMsDelay / CamOsUsDelay - CamOsSpin### Support spinlock synchronization. Fixed - Replace __always_inline with FORCE_INLINE to avoid warnings in RTK. v1.0.6 - 2018-09-13 Added - CamOsHexdump Print memory data in hex format. - CamOsUsSleep Suspend execution for microsecond intervals. - CamOsTimeDiff Returns the difference between two CamOsTimespec_t. - CamOsMemFlush Clean and invalidate cache. - CamOsAtomicCompareAndSwap An atomic instruction used in multithreading to achieve synchronization. It compares the contents of a memory location with a given value and, only if they are the same, modifies the contents of that memory location to a new given value. Changed - CamOsThreadAttrb_t Add szName field and support set name while thread created. - CamOsTsemDownInterruptible Change prototype define, it will return CamOsRet_e now. - CamOsTcondWaitInterruptible Change prototype define, it will return CamOsRet_e now. v1.0.5 - 2017-12-18 Added - CAM_OS_MAX_INT - Makefile_Linux_user Add Makefile for shared library build(make -f Makefile_Linux_user). Changed - CamOsTsemInit In RTK, use MsCreateDynSemExtend to set nVal to current value, and set init value to (CAM_OS_MAX_INT - 1). Because MsCreateDynSem sets nVal to current value and init value and current value is larger than init value will trigger exception. - CAM_OS_MAX_TIMEOUT Use u32 max value as CAM_OS_MAX_TIMEOUT v1.0.4 - 2017-12-06 Changed - Move offsetof definition to cam_os_util.h and add definition without size_t to avoid compile error if stddef.h not be included. Fixed - In RTK, if timer has stopped, CamOsTimerModify start a new timer and don't release the old timer. v1.0.3 - 2017-11-30 Changed - Integrate all header files into cam_os_wrapper.h. All functions could be used just include cam_os_wrapper.h. - CamOsTcond### Replace wait queue with completion for Linux kernel to simplify control flow. v1.0.2 - 2017-11-24 Added - CAM_OS_LIST_LAST_ENTRY Support "list last entry" in cam_os_util_list.h - NO_MDRV_MSYS Support disable relative functions for msys (add -DNO_MDRV_MSYS in Makefile) Changed - CamOsMemAlloc / CamOsMemCalloc Use kzalloc when requested size <= 2KB(half of page size), and use vzalloc when requested size > 2KB to improve memory usage Fixed - CamOsThreadSchedule / CamOsThreadWakeUp Fix schedule and wakeup function in RTK - CamOsRwsem### Fix read write semaphore function in RTK - CamOsTimer### Fix timer function in RTK v1.0.1 - 2017-11-20 Added - CamOsTsemDownInterruptible Add prototype define in cam_os_wrapper.h - CamOsListSort Add symbol to cam_os_export.c Changed - Support CamOsPhyMemMap/CamOsPhyMemUnMap in Linux user space - Mutex can be used without initialization. It will be inited automatically. - Support CamOsThreadStop/CamOsThreadShouldStop in RTK - uint8_t/int8_t/uint16_t/int16_t/uint32_t/int32_t/uint64_t /int64_t. Use u8/s8/u16/s16/u32/s32/u64/s64 to keep portability - Remove bool(replace with u8) to keep portability v1.0.0 - 2017-11-03 Added - CamOsThreadSchedule/CamOsThreadWakeUp Control thread to idle and wake up. - CamOsMutexTryLock Try lock the mutex, and return as non-blocking mode. - CamOsRwsem### Support read-write semaphore operation. - CamOsPhyMemMap/CamOsPhyMemUnMap Map and unmap physical memory to virtual address. - CamOsMemCache### Create a memory cache(memory pool) and allocate with specified size to ignore internal fragmentation. - CamOsTimer### Support timer operation. - CamOsIdr### Support data record with IDR data structure. In Linux user space and RTK, it is implemented with informal IDR(bitmap and array). - CamOsInInterrupt Check if current function runs in ISR. - CamOsSmpMemoryBarrier Symmetric multiprocessing memory barrier. - CamOsStrError Return string describing error number. - CamOsPanic Put system into panic. - CamOsStrtol/CamOsStrtoul/CamOsStrtoull Convert C string to long, unsigned long, unsigned long long. - cam_os_util_bug.h Support error handle function: CAM_OS_BUG, CAM_OS_BUG_ON, CAM_OS_IS_ERR_VALUE, ... - cam_os_util_ioctl.h Support ioctl number function: CAM_OS_IO, CAM_OS_IOW, ... Changed - Replace u8/s8/u16/s16/u32/s32/u64/s64 with uint8_t/int8_t/uint16_t/int16_t uint32_t/int32_t/uint64_t/int64_t. - CamOsThreadSetName/CamOsThreadGetName Only support to access name by thread self in uclibc. v0.1.2 - 2017-10-27 Added - CamOsTcond### Condition wait functions, please reference to cam_os_wrapper.h. - CAM_OS_HASH_### Hash table operation functions, please reference to cam_os_hash.h. - CAM_OS_BITMAP_### Bitmap opration functions, please reference to cam_os_bitmap.h. - CAM_OS_LIKELY, CAM_OS_UNLIKELY, and CAM_OS_ARRAY_SIZE Changed - Use native semaphore of operation system. Original functions comprise one mutex and one counter(CamOsTsem###). - Supplement list operation functions, please reference cam_os_list.h. Removed - Remove CamOsTsemGetValue and CamOsTsemReset because this two APIs do not fit general semaphore usage. v0.1.1 - 2017-10-23 Added - CamOsSnprintf