@@ -172,9 +172,9 @@ int _varea_map_with_msg(rt_varea_t varea, struct rt_aspace_fault_msg *msg)
172
172
* the page returned by handler is not checked
173
173
* cause no much assumption can make on it
174
174
*/
175
- void * store = msg -> response .vaddr ;
175
+ char * store = msg -> response .vaddr ;
176
176
rt_size_t store_sz = msg -> response .size ;
177
- if (msg -> fault_vaddr + store_sz > varea -> start + varea -> size )
177
+ if (( char * ) msg -> fault_vaddr + store_sz > ( char * ) varea -> start + varea -> size )
178
178
{
179
179
LOG_W ("%s: too much (0x%lx) of buffer on vaddr %p is provided" ,
180
180
__func__ , store_sz , msg -> fault_vaddr );
@@ -224,9 +224,9 @@ static int _do_prefetch(rt_aspace_t aspace, rt_varea_t varea, void *start,
224
224
int err = RT_EOK ;
225
225
226
226
/* it's ensured by caller that start & size ara page-aligned */
227
- void * end = start + size ;
228
- void * vaddr = start ;
229
- rt_size_t off = varea -> offset + ((start - varea -> start ) >> ARCH_PAGE_SHIFT );
227
+ char * end = ( char * ) start + size ;
228
+ char * vaddr = start ;
229
+ rt_size_t off = varea -> offset + ((vaddr - ( char * ) varea -> start ) >> ARCH_PAGE_SHIFT );
230
230
231
231
while (vaddr != end )
232
232
{
@@ -378,7 +378,7 @@ rt_varea_t _varea_create(void *start, rt_size_t size)
378
378
}
379
379
380
380
#define _IS_OVERFLOW (start , length ) ((length) > (0ul - (uintptr_t)(start)))
381
- #define _IS_OVERSIZE (start , length , limit_s , limit_sz ) (((length) + (rt_size_t)((start) - (limit_start))) > (limit_size))
381
+ #define _IS_OVERSIZE (start , length , limit_s , limit_sz ) (((length) + (rt_size_t)((char *)( start) - (char *) (limit_start))) > (limit_size))
382
382
383
383
static inline int _not_in_range (void * start , rt_size_t length ,
384
384
void * limit_start , rt_size_t limit_size )
@@ -634,7 +634,7 @@ int rt_aspace_unmap(rt_aspace_t aspace, void *addr)
634
634
if (_not_in_range (addr , 1 , aspace -> start , aspace -> size ))
635
635
{
636
636
LOG_I ("%s: %lx not in range of aspace[%lx:%lx]" , __func__ , addr ,
637
- aspace -> start , aspace -> start + aspace -> size );
637
+ aspace -> start , ( char * ) aspace -> start + aspace -> size );
638
638
return - RT_EINVAL ;
639
639
}
640
640
@@ -650,7 +650,7 @@ static inline void *_lower(void *a, void *b)
650
650
651
651
static inline void * _align (void * va , rt_ubase_t align_mask )
652
652
{
653
- return (void * )((rt_ubase_t )(va + ~align_mask ) & align_mask );
653
+ return (void * )((rt_ubase_t )(( char * ) va + ~align_mask ) & align_mask );
654
654
}
655
655
656
656
static void * _ascending_search (rt_varea_t varea , rt_size_t req_size ,
@@ -659,17 +659,17 @@ static void *_ascending_search(rt_varea_t varea, rt_size_t req_size,
659
659
void * ret = RT_NULL ;
660
660
while (varea && varea -> start < limit .end )
661
661
{
662
- void * candidate = varea -> start + varea -> size ;
662
+ char * candidate = ( char * ) varea -> start + varea -> size ;
663
663
candidate = _align (candidate , align_mask );
664
664
665
- if (candidate > limit .end || limit .end - candidate + 1 < req_size )
665
+ if (candidate > ( char * ) limit .end || ( char * ) limit .end - candidate + 1 < req_size )
666
666
break ;
667
667
668
668
rt_varea_t nx_va = ASPACE_VAREA_NEXT (varea );
669
669
if (nx_va )
670
670
{
671
671
rt_size_t gap_size =
672
- _lower (limit .end , nx_va -> start - 1 ) - candidate + 1 ;
672
+ ( char * ) _lower (limit .end , ( char * ) nx_va -> start - 1 ) - candidate + 1 ;
673
673
if (gap_size >= req_size )
674
674
{
675
675
ret = candidate ;
@@ -695,15 +695,15 @@ static void *_find_head_and_asc_search(rt_aspace_t aspace, rt_size_t req_size,
695
695
rt_varea_t varea = _aspace_bst_search_exceed (aspace , limit .start );
696
696
if (varea )
697
697
{
698
- void * candidate = _align (limit .start , align_mask );
699
- rt_size_t gap_size = varea -> start - candidate ;
698
+ char * candidate = _align (limit .start , align_mask );
699
+ rt_size_t gap_size = ( char * ) varea -> start - candidate ;
700
700
if (gap_size >= req_size )
701
701
{
702
702
rt_varea_t former = _aspace_bst_search (aspace , limit .start );
703
703
if (former )
704
704
{
705
- candidate = _align (former -> start + former -> size , align_mask );
706
- gap_size = varea -> start - candidate ;
705
+ candidate = _align (( char * ) former -> start + former -> size , align_mask );
706
+ gap_size = ( char * ) varea -> start - candidate ;
707
707
708
708
if (gap_size >= req_size )
709
709
va = candidate ;
@@ -722,12 +722,12 @@ static void *_find_head_and_asc_search(rt_aspace_t aspace, rt_size_t req_size,
722
722
}
723
723
else
724
724
{
725
- void * candidate ;
725
+ char * candidate ;
726
726
rt_size_t gap_size ;
727
727
728
728
candidate = limit .start ;
729
729
candidate = _align (candidate , align_mask );
730
- gap_size = limit .end - candidate + 1 ;
730
+ gap_size = ( char * ) limit .end - candidate + 1 ;
731
731
732
732
if (gap_size >= req_size )
733
733
va = candidate ;
@@ -742,7 +742,7 @@ static void *_find_free(rt_aspace_t aspace, void *prefer, rt_size_t req_size,
742
742
{
743
743
rt_varea_t varea = NULL ;
744
744
void * va = RT_NULL ;
745
- struct _mm_range limit = {limit_start , limit_start + limit_size - 1 };
745
+ struct _mm_range limit = {limit_start , ( char * ) limit_start + limit_size - 1 };
746
746
747
747
rt_ubase_t align_mask = ~0ul ;
748
748
if (flags & MMF_REQUEST_ALIGN )
@@ -754,7 +754,7 @@ static void *_find_free(rt_aspace_t aspace, void *prefer, rt_size_t req_size,
754
754
{
755
755
/* if prefer and free, just return the prefer region */
756
756
prefer = _align (prefer , align_mask );
757
- struct _mm_range range = {prefer , prefer + req_size - 1 };
757
+ struct _mm_range range = {prefer , ( char * ) prefer + req_size - 1 };
758
758
varea = _aspace_bst_search_overlap (aspace , range );
759
759
760
760
if (!varea )
@@ -772,7 +772,7 @@ static void *_find_free(rt_aspace_t aspace, void *prefer, rt_size_t req_size,
772
772
if (va == RT_NULL )
773
773
{
774
774
/* rewind to first range */
775
- limit .end = varea -> start - 1 ;
775
+ limit .end = ( char * ) varea -> start - 1 ;
776
776
va = _find_head_and_asc_search (aspace , req_size , align_mask ,
777
777
limit );
778
778
}
@@ -790,7 +790,7 @@ int rt_aspace_load_page(rt_aspace_t aspace, void *addr, rt_size_t npage)
790
790
{
791
791
int err = RT_EOK ;
792
792
rt_varea_t varea ;
793
- void * end = addr + (npage << ARCH_PAGE_SHIFT );
793
+ char * end = ( char * ) addr + (npage << ARCH_PAGE_SHIFT );
794
794
795
795
WR_LOCK (aspace );
796
796
varea = _aspace_bst_search (aspace , addr );
@@ -801,7 +801,7 @@ int rt_aspace_load_page(rt_aspace_t aspace, void *addr, rt_size_t npage)
801
801
LOG_W ("%s: varea not exist" , __func__ );
802
802
err = - RT_ENOENT ;
803
803
}
804
- else if (addr >= end || (rt_size_t )addr & ARCH_PAGE_MASK ||
804
+ else if (( char * ) addr >= end || (rt_size_t )addr & ARCH_PAGE_MASK ||
805
805
_not_in_range (addr , npage << ARCH_PAGE_SHIFT , varea -> start ,
806
806
varea -> size ))
807
807
{
@@ -930,12 +930,12 @@ static int _dump(rt_varea_t varea, void *arg)
930
930
{
931
931
if (varea -> mem_obj && varea -> mem_obj -> get_name )
932
932
{
933
- rt_kprintf ("[%p - %p] %s\n" , varea -> start , varea -> start + varea -> size ,
933
+ rt_kprintf ("[%p - %p] %s\n" , varea -> start , ( char * ) varea -> start + varea -> size ,
934
934
varea -> mem_obj -> get_name (varea ));
935
935
}
936
936
else
937
937
{
938
- rt_kprintf ("[%p - %p] phy-map\n" , varea -> start , varea -> start + varea -> size );
938
+ rt_kprintf ("[%p - %p] phy-map\n" , varea -> start , ( char * ) varea -> start + varea -> size );
939
939
rt_kprintf ("\t\\_ paddr = %p\n" , varea -> offset << MM_PAGE_SHIFT );
940
940
}
941
941
return 0 ;
0 commit comments