kernel list data structure
Ali Bahar
ali at internetdog.org
Mon Jun 6 01:35:58 EDT 2011
All right, let's take another stab at this.
> list. But as I debugged my code, it seems that my concept is wrong. Would
> anyone guide me how to implement a two-dimensioned list, or introduce me a
My interpretation of what you got is as follows, based on what you've
said you'll be assigning each list_head to:
struct noop_data {
struct list_head readQueue; // You haven't explicitly stated which
// LL this will be assigned to.
struct list_head writeQueue;// The head of a LL of 'struct bundle'
// nodes.
struct bundle {
int bundleNumber;
int size;
struct list_head bundlesQueue; // The LL of 'struct bundle'
struct list_head reqsQueue; // The head of a LL of
// 'struct request'?
int filled[8];
} bun;
unsigned int starved;
};
Depending on how you're going to assign these, you may end up with
spaghetti. As I indicated before, the nested inclusion of 'struct
bundle' is likely wrong.
later,
ali
> "noop_data" has a reference to start point of bundles list, called
> "writeQueue"
> "bundle" has a reference to start point of requests list, called
> "reqsQueue".
> "bundle" knows its related list using "bundlesQueue".
> "request" knows its related list using "queuelist". (request struct is
> already implemented in kernel)
>
> struct bundle {
> int bundleNumber;
> int size;
> struct list_head bundlesQueue;
> struct list_head reqsQueue;
> int filled[8];
> };
>
> struct noop_data {
> struct list_head readQueue;
> struct list_head writeQueue;
> struct bundle bun;
> unsigned int starved;
> };
More information about the Kernelnewbies
mailing list