From mboxrd@z Thu Jan 1 00:00:00 1970 From: amirali.shambayati@gmail.com (Amirali Shambayati) Date: Mon, 6 Jun 2011 11:01:37 +0430 Subject: kernel list data structure In-Reply-To: References: <20110606053558.GB15929@internetdog.org> Message-ID: To: kernelnewbies@lists.kernelnewbies.org List-Id: kernelnewbies.lists.kernelnewbies.org As I have read this pdf, I think I have assigned them right. I don't know what's wrong? :-? https://prof.hti.bfh.ch/myf1/adv-linux/courseNotes/*klist*-*intro*-1.3.*pdf* On Mon, Jun 6, 2011 at 10:52 AM, Amirali Shambayati < amirali.shambayati@gmail.com> wrote: > As I have read the attached pdf, I think I have assigned them right. I > don't know what's wrong? :-? > > > On Mon, Jun 6, 2011 at 10:43 AM, Amirali Shambayati < > amirali.shambayati at gmail.com> wrote: > >> Ali thanks for your valuable comments. Would you suggest me an alternative >> method to implement the structure I explained? >> >> >> On Mon, Jun 6, 2011 at 10:05 AM, Ali Bahar wrote: >> >>> >>> 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; >>> > }; >>> >> >> >> >> -- >> Amirali Shambayati >> Bachelor Student >> Computer Engineering Department >> Sharif University of Technology >> Tehran, Iran >> >> > > > -- > Amirali Shambayati > Bachelor Student > Computer Engineering Department > Sharif University of Technology > Tehran, Iran > > -- Amirali Shambayati Bachelor Student Computer Engineering Department Sharif University of Technology Tehran, Iran -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20110606/3f9f0ac5/attachment-0001.html