list_entry返回值

发布于 2024-11-02 18:46:41 字数 132 浏览 4 评论 0原文

嘿伙计们!

我正在更改 Rat Hat 操作系统的内核代码,并且我想使用宏“列表条目”。 我在任何地方都找不到失败时的返回值是什么。

如果列表为空,它会返回什么?或者在任何其他情况下...

谢谢! 阿美

Hay guys!

I'm changing the kernel code at the Rat Hat OS and I want to use the macro "list entry".
I can't find anywhere what is the return value in case of failure..

What will it return if the list is empty? or at any other case...

Thanks!!
Ami

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

往日情怀 2024-11-09 18:46:41

如果列表为空,它应该是未定义的。 (您试图取消引用不在列表元素类型的结构中的列表指针)

通常,如果必须直接使用 list_entry,则需要首先检查 list_empty 。这将验证您的列表头没有指向自身。

否则,坚持始终使用 list_for_each 宏,它将在元素上生成 for 循环。

It should be something undefined if the list is empty. (You're trying to dereference a list pointer that's not in a struct of the list's element type)

Generally, if you must use list_entry directly, you want to check if list_empty first. This will verify your list head doesn't point to itself.

Otherwise stick to always using the list_for_each macros which will generate a for loop over your elements.

土豪 2024-11-09 18:46:41

我们可以通过两种方式使用这个list_head:

1)独立的单个全局变量,将列表作为所有的头,

尽管有列表成员,但我们不能在此变量事件上使用list_entry
在其中。因为这不是任何结构的一部分。

2)我们可以使用list_head作为您的结构的成员,同时添加到您将要添加的列表中
将此成员指针赋予列表 HEAD。

我们将在此成员上使用 list_entry 来获取您的结构,即使您的
列表成员不属于任何列表(它用 next=NULL 和 priv=NULL 初始化)
你可以获得结构,没有办法失败。

list_entry 是简单的container_of(),我们用它来通过成员指针获取结构指针。

We can use this list_head in two ways

1) independent single global variable, to HOLD the list as head to all

we can not use the list_entry on this variable event though there are list members
in it. because this is not part of any structure.

2) we can use list_head as member of the your structure, wile adding to the list you will
give this member pointer to the list HEAD.

we will use list_entry on this member to get the your structure even though your
list member is not part of any List(it initialized with next=NULL and priv=NULL)
you can get structure there is no way to fail.

list_entry is simple container_of() we use this to get the structure pointer using member pointer.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文