linux/arch/sh/include/asm/bl_bit_64.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0
   2 *
   3 * Copyright (C) 2000, 2001  Paolo Alberelli
   4 * Copyright (C) 2003  Paul Mundt
   5 * Copyright (C) 2004  Richard Curnow
   6 */
   7#ifndef __ASM_SH_BL_BIT_64_H
   8#define __ASM_SH_BL_BIT_64_H
   9
  10#include <asm/processor.h>
  11
  12#define SR_BL_LL        0x0000000010000000LL
  13
  14static inline void set_bl_bit(void)
  15{
  16        unsigned long long __dummy0, __dummy1 = SR_BL_LL;
  17
  18        __asm__ __volatile__("getcon    " __SR ", %0\n\t"
  19                             "or        %0, %1, %0\n\t"
  20                             "putcon    %0, " __SR "\n\t"
  21                             : "=&r" (__dummy0)
  22                             : "r" (__dummy1));
  23
  24}
  25
  26static inline void clear_bl_bit(void)
  27{
  28        unsigned long long __dummy0, __dummy1 = ~SR_BL_LL;
  29
  30        __asm__ __volatile__("getcon    " __SR ", %0\n\t"
  31                             "and       %0, %1, %0\n\t"
  32                             "putcon    %0, " __SR "\n\t"
  33                             : "=&r" (__dummy0)
  34                             : "r" (__dummy1));
  35}
  36
  37#endif /* __ASM_SH_BL_BIT_64_H */
  38