I forgot to say that I use INIT_LIST_HEAD(&nd->writeQueue) and when I malloc a bundle, I use INIT_LIST_HEAD(&bun->reqsQueue) to make them as list heads. "nd" and "bun" are instantiations for noop_data and bundle.
On Mon, Jun 6, 2011 at 11:01 AM, Amirali Shambayati < [email protected]> wrote: > 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 < > [email protected]> 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 < >> [email protected]> 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 <[email protected]> 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 > > -- Amirali Shambayati Bachelor Student Computer Engineering Department Sharif University of Technology Tehran, Iran
_______________________________________________ Kernelnewbies mailing list [email protected] http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
