MCPcopy Create free account
hub / github.com/F-Stack/f-stack / skeleton_rawdev_close

Function skeleton_rawdev_close

dpdk/drivers/raw/skeleton/skeleton_rawdev.c:166–211  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

164}
165
166static int skeleton_rawdev_close(struct rte_rawdev *dev)
167{
168 int ret = 0, i;
169 struct skeleton_rawdev *skeldev;
170 enum skeleton_firmware_state fw_state;
171 enum skeleton_device_state device_state;
172
173 SKELETON_PMD_FUNC_TRACE();
174
175 if (dev == NULL)
176 return -EINVAL;
177
178 skeldev = skeleton_rawdev_get_priv(dev);
179
180 fw_state = skeldev->fw.firmware_state;
181 device_state = skeldev->device_state;
182
183 reset_queues(skeldev);
184 reset_attribute_table(skeldev);
185
186 switch (fw_state) {
187 case SKELETON_FW_LOADED:
188 if (device_state == SKELETON_DEV_RUNNING) {
189 SKELETON_PMD_ERR("Cannot close running device");
190 ret = -EINVAL;
191 } else {
192 /* Probably call fw reset here */
193 skeldev->fw.firmware_state = SKELETON_FW_READY;
194 }
195 break;
196 case SKELETON_FW_READY:
197 SKELETON_PMD_DEBUG("Device already in stopped state");
198 break;
199 case SKELETON_FW_ERROR:
200 default:
201 SKELETON_PMD_DEBUG("Device in impossible state");
202 ret = -EINVAL;
203 break;
204 }
205
206 /* Clear all allocated queues */
207 for (i = 0; i < SKELETON_MAX_QUEUES; i++)
208 clear_queue_bufs(i);
209
210 return ret;
211}
212
213static int skeleton_rawdev_reset(struct rte_rawdev *dev)
214{

Callers

nothing calls this directly

Calls 4

skeleton_rawdev_get_privFunction · 0.85
reset_queuesFunction · 0.85
reset_attribute_tableFunction · 0.85
clear_queue_bufsFunction · 0.85

Tested by

no test coverage detected