Fix IS_PERIPH_ADDR() and IS_MEMORY_ADDR() macros
The macros assume that constants that are compared against "addr" are either unsigned or less than INT_MAX. In some cases it is not true so change costants to unsigned using U32_C macros. The correct solution would be to change teh MEM_ADDR, PMM_BASE, etc. to be unsigned long but currently "U" suffix is appended in various places so the assumption is that those macros use default definition (which is int). Put "addr" into brackets by the way since it could be an expression rather than one variable. Signed-off-by: Zbigniew Bodek <zbigniew.bodek@huawei.com> Change-Id: Ife9bc5863b4934ecaab64b24faa084b87d7d7ea5
This commit is contained in:
parent
994ad00de7
commit
07c89a8473
|
@ -46,8 +46,8 @@ enum DmaMemType {
|
||||||
DMA_NOCACHE
|
DMA_NOCACHE
|
||||||
};
|
};
|
||||||
|
|
||||||
#define IS_PERIPH_ADDR(addr) ((addr >= PERIPH_PMM_BASE) && (addr <= PERIPH_PMM_BASE + PERIPH_PMM_SIZE))
|
#define IS_PERIPH_ADDR(addr) (((addr) >= U32_C(PERIPH_PMM_BASE)) && ((addr) <= U32_C(PERIPH_PMM_BASE) + U32_C(PERIPH_PMM_SIZE)))
|
||||||
#define IS_MEMORY_ADDR(addr) ((addr >= DDR_MEM_ADDR) && (addr <= DDR_MEM_ADDR + DDR_MEM_SIZE))
|
#define IS_MEMORY_ADDR(addr) (((addr) >= U32_C(DDR_MEM_ADDR)) && ((addr) <= U32_C(DDR_MEM_ADDR) + U32_C(DDR_MEM_SIZE)))
|
||||||
|
|
||||||
/* thread safety */
|
/* thread safety */
|
||||||
VOID *LOS_DmaMemAlloc(DMA_ADDR_T *dmaAddr, size_t size, size_t align, enum DmaMemType type);
|
VOID *LOS_DmaMemAlloc(DMA_ADDR_T *dmaAddr, size_t size, size_t align, enum DmaMemType type);
|
||||||
|
|
Loading…
Reference in New Issue