44 * SPDX-License-Identifier: BSD-3-Clause
55 */
66
7- #include <metal/errno.h>
87#include <limits.h>
8+ #include <metal/errno.h>
99#include <metal/io.h>
1010#include <metal/sys.h>
1111
1212void metal_io_init (struct metal_io_region * io , void * virt ,
1313 const metal_phys_addr_t * physmap , size_t size ,
14- unsigned page_shift , unsigned int mem_flags ,
14+ unsigned int page_shift , unsigned int mem_flags ,
1515 const struct metal_io_ops * ops )
1616{
17- const struct metal_io_ops nops = {NULL , NULL , NULL , NULL , NULL , NULL };
17+ const struct metal_io_ops nops = {
18+ NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL
19+ };
1820
1921 io -> virt = virt ;
2022 io -> physmap = physmap ;
@@ -37,7 +39,7 @@ int metal_io_block_read(struct metal_io_region *io, unsigned long offset,
3739 unsigned char * dest = dst ;
3840 int retlen ;
3941
40- if (offset > io -> size )
42+ if (! ptr )
4143 return - ERANGE ;
4244 if ((offset + len ) > io -> size )
4345 len = io -> size - offset ;
@@ -74,7 +76,7 @@ int metal_io_block_write(struct metal_io_region *io, unsigned long offset,
7476 const unsigned char * source = src ;
7577 int retlen ;
7678
77- if (offset > io -> size )
79+ if (! ptr )
7880 return - ERANGE ;
7981 if ((offset + len ) > io -> size )
8082 len = io -> size - offset ;
@@ -110,7 +112,7 @@ int metal_io_block_set(struct metal_io_region *io, unsigned long offset,
110112 unsigned char * ptr = metal_io_virt (io , offset );
111113 int retlen = len ;
112114
113- if (offset > io -> size )
115+ if (! ptr )
114116 return - ERANGE ;
115117 if ((offset + len ) > io -> size )
116118 len = io -> size - offset ;
@@ -123,7 +125,7 @@ int metal_io_block_set(struct metal_io_region *io, unsigned long offset,
123125 unsigned int i ;
124126
125127 for (i = 1 ; i < sizeof (int ); i ++ )
126- cint |= ((unsigned int )value << (8 * i ));
128+ cint |= ((unsigned int )value << (CHAR_BIT * i ));
127129
128130 for (; len && ((uintptr_t )ptr % sizeof (int )); ptr ++ , len -- )
129131 * (unsigned char * )ptr = (unsigned char ) value ;
0 commit comments