PageRenderTime 18ms CodeModel.GetById 14ms app.highlight 2ms RepoModel.GetById 1ms app.codeStats 0ms

/arch/unicore32/include/mach/ocd.h

http://github.com/mirrors/linux
C Header | 33 lines | 18 code | 7 blank | 8 comment | 2 complexity | d2a1f2507b42cb0c13dd3fc41236f6b1 MD5 | raw file
 1/* SPDX-License-Identifier: GPL-2.0-only */
 2/*
 3 * linux/arch/unicore32/include/mach/ocd.h
 4 *
 5 * Code specific to PKUnity SoC and UniCore ISA
 6 *
 7 * Copyright (C) 2001-2010 GUAN Xue-tao
 8 */
 9
10#ifndef __MACH_PUV3_OCD_H__
11#define __MACH_PUV3_OCD_H__
12
13#if defined(CONFIG_DEBUG_OCD)
14static inline void ocd_putc(unsigned int c)
15{
16	int status, i = 0x2000000;
17
18	do {
19		if (--i < 0)
20			return;
21
22		asm volatile ("movc %0, p1.c0, #0" : "=r" (status));
23	} while (status & 2);
24
25	asm("movc p1.c1, %0, #1" : : "r" (c));
26}
27
28#define putc(ch)	ocd_putc(ch)
29#else
30#define putc(ch)
31#endif
32
33#endif