Use of list_head struct
From: Bogdan PRICOP <hidden>
Date: 2016-06-20 07:57:44
Bogdan PRICOP ---------------------------------------- Mobile: +353 86 075 3349 E-mail: pricopb at gmail.com ---------------------------------------- On 17 June 2016 at 11:35, Pranay Srivastava [off-list ref] wrote:
On Fri, Jun 17, 2016 at 3:41 PM, Martin Houry [off-list ref] wrote:quoted
Hello mailing list! I've read some code in the NFS4.1 client. I have trouble to access variables in a list_head. So I have : (include/linux/sunrpc/xprt.h line 168) struct rpc_xprt{ . . struct rpc_wait_queue pending; /* requests in flight */ . . } ==> struct rpc_wait_queue { . struct list_head tasks[RPC_NR_PRIORITY]; /* task queue for each priority level */ . } The struct "list_head" is a classical linked list. But How do I know the type of the struct in this list? I can maybe guess the struct in it : struct rpc_task {} But how can I be certain that "struct list_head tasks" contains some "struct rpc_task"?some magic value perhaps?quoted
I'm new here, thank you for your help! Martin
Hi Martin, I think the main idea behind Linux kernel implementation of the linked list (struct list_head) is to work with any kind of items which need to be linked. Please have a look at the below links which explain the internals of Linux kernel list and its usage: https://isis.poly.edu/kulesh/stuff/src/klist/ http://www.makelinux.net/ldd3/chp-11-sect-5 Thanks, Bogdan