Function report |
Source Code:lib\logic_pio.c |
Create Date:2022-07-28 06:16:31 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
home page | Tree |
Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:logic_pio_register_range - register logical PIO range for a host*@new_range: pointer to the IO range to be registered.* Returns 0 on success, the error code in case of failure.* Register a new IO range node in the IO range list.
Proto:int logic_pio_register_range(struct logic_pio_hwaddr *new_range)
Type:int
Parameter:
Type | Parameter | Name |
---|---|---|
struct logic_pio_hwaddr * | new_range |
39 | mmio_end = 0 |
40 | iio_sz = MMIO_UPPER_LIMIT |
41 | ret = 0 |
43 | If Not new_range || Not fwnode || Not range size populated || flags == LOGIC_PIO_INDIRECT && Not ops Then Return -EINVAL |
48 | end = hw_start + range size populated |
50 | mutex_lock( & io_range_mutex) |
54 | Go to end_register |
56 | If flags == LOGIC_PIO_CPU_MMIO && flags == LOGIC_PIO_CPU_MMIO Then |
59 | If start >= hw_start + range size populated || end < hw_start Then |
61 | mmio_end = io_start + range size populated |
62 | Else |
64 | Go to end_register |
66 | Else if flags == LOGIC_PIO_INDIRECT && flags == LOGIC_PIO_INDIRECT Then |
68 | iio_sz += range size populated |
73 | If flags == LOGIC_PIO_CPU_MMIO Then |
74 | If mmio_end + range size populated - 1 > MMIO_UPPER_LIMIT Then |
76 | If mmio_end + SZ_64K - 1 > MMIO_UPPER_LIMIT Then |
78 | Go to end_register |
81 | pr_warn("Requested IO range too big, new size set to 64K\n") |
84 | Else if flags == LOGIC_PIO_INDIRECT Then |
85 | If iio_sz + range size populated - 1 > IO_SPACE_LIMIT Then |
87 | Go to end_register |
90 | Else |
93 | Go to end_register |
98 | end_register : |
99 | mutex_unlock( & io_range_mutex) |
100 | Return ret |
Source code conversion tool public plug-in interface | X |
---|---|
Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |