函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:lib\logic_pio.c Create Date:2022-07-27 07:13:49
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称: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.

函数原型:int logic_pio_register_range(struct logic_pio_hwaddr *new_range)

返回类型:int

参数:

类型参数名称
struct logic_pio_hwaddr *new_range
39  mmio_end等于0
40  iio_sz等于MMIO_UPPER_LIMIT
41  ret等于0
43  如果非new_range或非fwnode或非 range size populated flags恒等于LOGIC_PIO_INDIRECT且非ops则返回:负EINVAL
47  start等于hw_start
48  end等于hw_start range size populated
50  mutex_lock( & io_range_mutex)
52  如果fwnode恒等于fwnode
54  转到:end_register
56  如果flags恒等于LOGIC_PIO_CPU_MMIOflags恒等于LOGIC_PIO_CPU_MMIO
59  如果start大于等于hw_start range size populated end小于hw_start
62  否则
63  ret等于负EFAULT
64  转到:end_register
66  否则如果flags恒等于LOGIC_PIO_INDIRECTflags恒等于LOGIC_PIO_INDIRECT
68  iio_sz加等于 range size populated
73  如果flags恒等于LOGIC_PIO_CPU_MMIO
76  如果mmio_endSZ_64K减1大于MMIO_UPPER_LIMIT
77  ret等于负E2BIG
78  转到:end_register
81  打印警告信息("Requested IO range too big, new size set to 64K\n")
83  io_start等于mmio_end
84  否则如果flags恒等于LOGIC_PIO_INDIRECT
85  如果iio_sz range size populated 减1大于IO_SPACE_LIMIT
86  ret等于负E2BIG
87  转到:end_register
89  io_start等于iio_sz
90  否则
92  ret等于负EINVAL
93  转到:end_register
96  添加RCU链表项
98  end_register :
99  mutex_unlock( & io_range_mutex)
100  返回:ret