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#include <linux/types.h>
  24
  25#define TICKET_SHIFT    16
  26
  27typedef struct {
  28#ifdef __AARCH64EB__
  29        u16 next;
  30        u16 owner;
  31#else
  32        u16 owner;
  33        u16 next;
  34#endif
  35} __aligned(4) arch_spinlock_t;
  36
  37#define __ARCH_SPIN_LOCK_UNLOCKED       { 0 , 0 }
  38
  39typedef struct {
  40        volatile unsigned int lock;
  41} arch_rwlock_t;
  42
  43#define __ARCH_RW_LOCK_UNLOCKED         { 0 }
  44
  45#endif
  46