Re: help me to understand __atomic_hash()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



hello,

El Mon, 19 Mar 2007 21:40:53 +0900
"N Cocy" <novu3novrin@xxxxxxxxxxx> ha escrit:

> Dear All,
> 
> I saw the following code in linux kernel 2.6's code (arch/sparc/lib/
> atomic32.c #L17).
> ( you can also check the code by the following url,
> http://www.linux-m32r.org/lxr/http/source/arch/sparc/lib/atomic32.c#L17)
> 
> >    spinlock_t __atomic_hash[ATOMIC_HASH_SIZE] = {
> >	    [0 ... (ATOMIC_HASH_SIZE-1)] = SPIN_LOCK_UNLOCKED
> >    };
> 
> , where
> "SPIN_LOCK_UNLOCKED" returns spinlock_t type of struct,
> ATOMIC_HASH_SIZE is defined as "4" just above that function in the
> same file,
> and "spinlock_t"  is defined as struct in include/linux/
> spinlock_types.h file.
> 
> Now, what does the description
> 
>     [0 ... (ATOMIC_HASH_SIZE-1)] = SPIN_LOCK_UNLOCKED
> 
> means exactly?
> 
> Does this mean initializing anonymous array or something??? like
>    [0] = SPIN_LOCK_UNLOCKED
>    [1] = SPIN_LOCK_UNLOCKED
>    [2] = SPIN_LOCK_UNLOCKED
>    [3] = SPIN_LOCK_UNLOCKED
> ???

yes

> 
> What I don't understand most is the part "..." in
> "[0 ... (ATOMIC_HASH_SIZE-1)]".  I've never seen this description in
> C before, except for indicating possibility of additional arguments of
> a function (but it's still different from the declaration like
> "func(arg1, arg2, ...)" ).
> 
this array initialization is a gnu gcc extension, documented at:

 http://gcc.gnu.org/onlinedocs/gcc/Designated-Inits.html

"To initialize a range of elements to the same value, write `[first ...
last] = value'."


> Could anyone please help me to understand what does this code
> mean exactly?
> 
> Thanks in advance.

hth,

topi

> 
> Cocy
> 
> _________________________________________________________________
> 究極のWEBブラウジング環境を実現!MSN版IE7が待望のデビュー 
> http://promotion.msn.co.jp/ie7/ 
> 
> 
> --
> To unsubscribe from this list: send an email with
> "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
> Please read the FAQ at http://kernelnewbies.org/FAQ
> 

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ



[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux