/* * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive * for more details. * * Copyright (C) 2000, 07 MIPS Technologies, Inc. * * Multiprocessor Subsystem Register Definitions * */ #ifndef _ASM_GCMPREGS_H #define _ASM_GCMPREGS_H /* Offsets to major blocks within GCMP from GCMP base */ #define GCMP_GCB_OFS 0x0000 /* Global Control Block */ #define GCMP_CLCB_OFS 0x2000 /* Core Local Control Block */ #define GCMP_COCB_OFS 0x4000 /* Core Other Control Block */ #define GCMP_GDB_OFS 0x8000 /* Global Debug Block */ /* Offsets to individual GCMP registers from GCMP base */ #define GCMPOFS(block, tag, reg) \ (GCMP_##block##_OFS + GCMP_##tag##_##reg##_OFS) #define GCMPOFSn(block, tag, reg, n) \ (GCMP_##block##_OFS + GCMP_##tag##_##reg##_OFS(n)) #define GCMPGCBOFS(reg) GCMPOFS(GCB, GCB, reg) #define GCMPGCBOFSn(reg, n) GCMPOFSn(GCB, GCB, reg, n) #define GCMPCLCBOFS(reg) GCMPOFS(CLCB, CCB, reg) #define GCMPCOCBOFS(reg) GCMPOFS(COCB, CCB, reg) #define GCMPGDBOFS(reg) GCMPOFS(GDB, GDB, reg) /* GCMP register access */ #define GCMPGCB(reg) REGP(_gcmp_base, GCMPGCBOFS(reg)) #define GCMPGCBn(reg, n) REGP(_gcmp_base, GCMPGCBOFSn(reg, n)) #define GCMPCLCB(reg) REGP(_gcmp_base, GCMPCLCBOFS(reg)) #define GCMPCOCB(reg) REGP(_gcmp_base, GCMPCOCBOFS(reg)) #define GCMPGDB(reg) REGP(_gcmp_base, GCMPGDBOFS(reg)) /* Mask generation */ #define GCMPMSK(block, reg, bits) (MSK(bits)<