help me to understand __atomic_hash()

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

 



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
???

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, ...)" ).

Could anyone please help me to understand what does this code
mean exactly?

Thanks in advance.

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


[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