linux/arch/mips/include/asm/spinlock_types.h
<<
>>
Prefs
   1#ifndef _ASM_SPINLOCK_TYPES_H
   2#define _ASM_SPINLOCK_TYPES_H
   3
   4#ifndef __LINUX_SPINLOCK_TYPES_H
   5# error "please don't include this file directly"
   6#endif
   7
   8#include <linux/types.h>
   9
  10#include <asm/byteorder.h>
  11
  12typedef union {
  13        /*
  14         * bits  0..15 : serving_now
  15         * bits 16..31 : ticket
  16         */
  17        u32 lock;
  18        struct {
  19#ifdef __BIG_ENDIAN
  20                u16 ticket;
  21                u16 serving_now;
  22#else
  23                u16 serving_now;
  24                u16 ticket;
  25#endif
  26        } h;
  27} arch_spinlock_t;
  28
  29#define __ARCH_SPIN_LOCK_UNLOCKED       { .lock = 0 }
  30
  31typedef struct {
  32        volatile unsigned int lock;
  33} arch_rwlock_t;
  34
  35#define __ARCH_RW_LOCK_UNLOCKED         { 0 }
  36
  37#endif
  38