Commit 23e0affdd293d0f6625a097911800b48b5428727
Committed by
Anthony Liguori
1 parent
d56dd6cf
ioport: consolidate duplicated logic in register_ioport_{read, write}().
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Showing
1 changed file
with
16 additions
and
14 deletions
ioport.c
... | ... | @@ -121,19 +121,27 @@ static void default_ioport_writel(void *opaque, uint32_t address, uint32_t data) |
121 | 121 | #endif |
122 | 122 | } |
123 | 123 | |
124 | +static int ioport_bsize(int size, int *bsize) | |
125 | +{ | |
126 | + if (size == 1) { | |
127 | + *bsize = 0; | |
128 | + } else if (size == 2) { | |
129 | + *bsize = 1; | |
130 | + } else if (size == 4) { | |
131 | + *bsize = 2; | |
132 | + } else { | |
133 | + return -1; | |
134 | + } | |
135 | + return 0; | |
136 | +} | |
137 | + | |
124 | 138 | /* size is the word size in byte */ |
125 | 139 | int register_ioport_read(int start, int length, int size, |
126 | 140 | IOPortReadFunc *func, void *opaque) |
127 | 141 | { |
128 | 142 | int i, bsize; |
129 | 143 | |
130 | - if (size == 1) { | |
131 | - bsize = 0; | |
132 | - } else if (size == 2) { | |
133 | - bsize = 1; | |
134 | - } else if (size == 4) { | |
135 | - bsize = 2; | |
136 | - } else { | |
144 | + if (ioport_bsize(size, &bsize)) { | |
137 | 145 | hw_error("register_ioport_read: invalid size"); |
138 | 146 | return -1; |
139 | 147 | } |
... | ... | @@ -152,13 +160,7 @@ int register_ioport_write(int start, int length, int size, |
152 | 160 | { |
153 | 161 | int i, bsize; |
154 | 162 | |
155 | - if (size == 1) { | |
156 | - bsize = 0; | |
157 | - } else if (size == 2) { | |
158 | - bsize = 1; | |
159 | - } else if (size == 4) { | |
160 | - bsize = 2; | |
161 | - } else { | |
163 | + if (ioport_bsize(size, &bsize)) { | |
162 | 164 | hw_error("register_ioport_write: invalid size"); |
163 | 165 | return -1; |
164 | 166 | } | ... | ... |