Garrett/James
Yes i did actually (trying it out wouldn't harm anyone) , and for
some reason i got an undefined symbol error for 'list_remove_head' function
(snippet of system log below:) . Now i do not know why only this symbol would
go undefined,i am using Solaris 10 U7 ,could it be that this is not in in that
release? I know i could do list_head() ,followed by list_remove_node() ,but you
think that extra call might have an impact in fastpath ?
/usr/kernel/drv/amd64/<mydrivername>: undefined symbol
Sep 7 15:38:58 se genunix: [ID 826211 kern.notice] 'list_remove_head'
Also,while we are on this, just wanted to know if there are equivalents to
cpu_to_le32 ,cpu_to_le16 etc which are pretty useful wrappers that turn to a
NOP if the host is a LE m/c ,take the right step otherwise ,or do i have to
define my own such wrappers?
Thanks
Som
----- Original Message ----
From: Garrett D'Amore <[email protected]>
To: James C. McPherson <[email protected]>
Cc: Somnath kotur <[email protected]>; [email protected]
Sent: Tuesday, September 8, 2009 8:12:55 AM
Subject: Re: [driver-discuss] Generic linked list implementation in kernel
James C. McPherson wrote:
> On Mon, 07 Sep 2009 09:14:52 -0700
> Garrett D'Amore <[email protected]> wrote:
>
>
>> Somnath kotur wrote:
>>
>>> Hi All,
>>> Is there a generic linked list implementation in Solaris 10 U7
>>> along with usage examples in the kernel ala linux? I see that even the
>>> e1000g driver seems to use it's own linked list implementation.,just wanted
>>> to know is there any particular reason for this? I see a <sys/list.h> and a
>>> list.c but now many users of this ? Pls correct me if i am wrong and /or
>>> point me to it's usage /semantics?
>>>
>> list.c and list.h are relatively recent additions. Boomer (the audio
>> subsystem) uses them pretty heavily. Look in OpenSolaris in
>> usr/src/uts/common/io/audio/impl/*.c
>>
>
>
> Garrett - they've been there since Solaris 9 update 5. 2003 isn't
> on my "recent" radar any more :-P
>
I figured they were introduced in S10... to me 2003 is still kind of recent,
since most of the other DDI interfaces date back to Solaris 8 or earlier. :-)
>
> Somnath - I strongly encourage you to use <sys/list.h> for your code. The
> best way to get examples of its usage is to
> use OpenGrok and see what pops up:
>
Yep.
> http://src.opensolaris.org/source/search?q=sys%2Flist.h&defs=&refs=&path=&hist=&project=%2Fonnv
>
Btw, I think these interfaces should become an official part of the DDI. I'd
be happy to sponsor a fast track to make them so, if someone else wanted to
write up the initial case materials.
- Garrett
>
>
> cheers,
> James C. McPherson
> --
> Senior Kernel Software Engineer, Solaris
> Sun Microsystems
> http://blogs.sun.com/jmcp http://www.jmcp.homeunix.com/blog
>
_______________________________________________
driver-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/driver-discuss