linux/arch/arm64/include/asm/spinlock_types.h
<<
>>
Prefs
   1/*
   2 * Copyright (C) 2012 ARM Ltd.
   3 *
   4 * This program is free software; you can redistribute it and/or modify
   5 * it under the terms of the GNU General Public License version 2 as
   6 * published by the Free Software Foundation.
   7 *
   8 * This program is distributed in the hope that it will be useful,
   9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  11 * GNU General Public License for more details.
  12 *
  13 * You should have received a copy of the GNU General Public License
  14 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  15 */
  16#ifndef __ASM_SPINLOCK_TYPES_H
  17#define __ASM_SPINLOCK_TYPES_H
  18
  19#if !defined(__LINUX_SPINLOCK_TYPES_H) && !defined(__ASM_SPINLOCK_H)
  20# error "please don't include this file directly"
  21#endif
  22
  23#define TICKET_SHIFT    16
  24
  25typedef struct {
  26#ifdef __AARCH64EB__
  27        u16 next;
  28        u16 owner;
  29#else
  30        u16 owner;
  31        u16 next;
  32#endif
  33} __aligned(4) arch_spinlock_t;
  34
  35#define __ARCH_SPIN_LOCK_UNLOCKED       { 0 , 0 }
  36
  37typedef struct {
  38        volatile unsigned int lock;
  39} arch_rwlock_t;
  40
  41#define __ARCH_RW_LOCK_UNLOCKED         { 0 }
  42
  43#endif
  44