Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v2.6.21 81 lines 2.4 kB view raw
1/* 2 * include/asm-xtensa/coprocessor.h 3 * 4 * This file is subject to the terms and conditions of the GNU General Public 5 * License. See the file "COPYING" in the main directory of this archive 6 * for more details. 7 * 8 * Copyright (C) 2003 - 2005 Tensilica Inc. 9 */ 10 11#ifndef _XTENSA_COPROCESSOR_H 12#define _XTENSA_COPROCESSOR_H 13 14#include <asm/variant/core.h> 15#include <asm/variant/tie.h> 16 17#if !XCHAL_HAVE_CP 18 19#define XTENSA_CP_EXTRA_OFFSET 0 20#define XTENSA_CP_EXTRA_ALIGN 1 /* must be a power of 2 */ 21#define XTENSA_CP_EXTRA_SIZE 0 22 23#else 24 25#define XTOFS(last_start,last_size,align) \ 26 ((last_start+last_size+align-1) & -align) 27 28#define XTENSA_CP_EXTRA_OFFSET 0 29#define XTENSA_CP_EXTRA_ALIGN XCHAL_EXTRA_SA_ALIGN 30 31#define XTENSA_CPE_CP0_OFFSET \ 32 XTOFS(XTENSA_CP_EXTRA_OFFSET, XCHAL_EXTRA_SA_SIZE, XCHAL_CP0_SA_ALIGN) 33#define XTENSA_CPE_CP1_OFFSET \ 34 XTOFS(XTENSA_CPE_CP0_OFFSET, XCHAL_CP0_SA_SIZE, XCHAL_CP1_SA_ALIGN) 35#define XTENSA_CPE_CP2_OFFSET \ 36 XTOFS(XTENSA_CPE_CP1_OFFSET, XCHAL_CP1_SA_SIZE, XCHAL_CP2_SA_ALIGN) 37#define XTENSA_CPE_CP3_OFFSET \ 38 XTOFS(XTENSA_CPE_CP2_OFFSET, XCHAL_CP2_SA_SIZE, XCHAL_CP3_SA_ALIGN) 39#define XTENSA_CPE_CP4_OFFSET \ 40 XTOFS(XTENSA_CPE_CP3_OFFSET, XCHAL_CP3_SA_SIZE, XCHAL_CP4_SA_ALIGN) 41#define XTENSA_CPE_CP5_OFFSET \ 42 XTOFS(XTENSA_CPE_CP4_OFFSET, XCHAL_CP4_SA_SIZE, XCHAL_CP5_SA_ALIGN) 43#define XTENSA_CPE_CP6_OFFSET \ 44 XTOFS(XTENSA_CPE_CP5_OFFSET, XCHAL_CP5_SA_SIZE, XCHAL_CP6_SA_ALIGN) 45#define XTENSA_CPE_CP7_OFFSET \ 46 XTOFS(XTENSA_CPE_CP6_OFFSET, XCHAL_CP6_SA_SIZE, XCHAL_CP7_SA_ALIGN) 47#define XTENSA_CP_EXTRA_SIZE \ 48 XTOFS(XTENSA_CPE_CP7_OFFSET, XCHAL_CP7_SA_SIZE, 16) 49 50#if XCHAL_CP_NUM > 0 51# ifndef __ASSEMBLY__ 52/* 53 * Tasks that own contents of (last user) each coprocessor. 54 * Entries are 0 for not-owned or non-existent coprocessors. 55 * Note: The size of this structure is fixed to 8 bytes in entry.S 56 */ 57typedef struct { 58 struct task_struct *owner; /* owner */ 59 int offset; /* offset in cpextra space. */ 60} coprocessor_info_t; 61# else 62# define COPROCESSOR_INFO_OWNER 0 63# define COPROCESSOR_INFO_OFFSET 4 64# define COPROCESSOR_INFO_SIZE 8 65# endif 66#endif 67 68 69#ifndef __ASSEMBLY__ 70# if XCHAL_CP_NUM > 0 71struct task_struct; 72extern void release_coprocessors (struct task_struct*); 73extern void save_coprocessor_registers(void*, int); 74# else 75# define release_coprocessors(task) 76# endif 77#endif 78 79#endif 80 81#endif /* _XTENSA_COPROCESSOR_H */