cregit-Linux how code gets into the kernel

Release 4.12 include/soc/arc/aux.h

Directory: include/soc/arc
/*
 * Copyright (C) 2016-2017 Synopsys, Inc. (www.synopsys.com)
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 *
 */

#ifndef __SOC_ARC_AUX_H__

#define __SOC_ARC_AUX_H__

#ifdef CONFIG_ARC


#define read_aux_reg(r)		__builtin_arc_lr(r)

/* gcc builtin sr needs reg param to be long immediate */

#define write_aux_reg(r, v)	__builtin_arc_sr((unsigned int)(v), r)

#else	/* !CONFIG_ARC */


static inline int read_aux_reg(u32 r) { return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Vineet Gupta13100.00%1100.00%
Total13100.00%1100.00%

/* * function helps elide unused variable warning * see: http://lists.infradead.org/pipermail/linux-snps-arc/2016-November/001748.html */
static inline void write_aux_reg(u32 r, u32 v) { ; }

Contributors

PersonTokensPropCommitsCommitProp
Vineet Gupta14100.00%1100.00%
Total14100.00%1100.00%

#endif #define READ_BCR(reg, into) \ { \ unsigned int tmp; \ tmp = read_aux_reg(reg); \ if (sizeof(tmp) == sizeof(into)) { \ into = *((typeof(into) *)&tmp); \ } else { \ extern void bogus_undefined(void); \ bogus_undefined(); \ } \ } #define WRITE_AUX(reg, into) \ { \ unsigned int tmp; \ if (sizeof(tmp) == sizeof(into)) { \ tmp = (*(unsigned int *)&(into)); \ write_aux_reg(reg, tmp); \ } else { \ extern void bogus_undefined(void); \ bogus_undefined(); \ } \ } #endif

Overall Contributors

PersonTokensPropCommitsCommitProp
Vineet Gupta82100.00%1100.00%
Total82100.00%1100.00%
Directory: include/soc/arc
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.