~ubuntu-branches/ubuntu/trusty/apex/trusty

« back to all changes in this revision

Viewing changes to include/asm-arm/fpstate.h

  • Committer: Bazaar Package Importer
  • Author(s): Oliver Grawert
  • Date: 2009-11-10 11:55:15 UTC
  • mfrom: (2.2.2 squeeze)
  • Revision ID: james.westby@ubuntu.com-20091110115515-6jjsf6rc8py35awe
Tags: 1.6.10ubuntu1
* Merge from debian testing, remaining changes:
  - Move apex VMA address to 4MiB to leave enough space for the ubuntu
  kernel and not overwrite apex in ram when loading.
  - nslu2 configuration: set CONFIG_RAMDISK_SIZE=0x0055FFF0 instead of
  0x005FFFF0 to make enough room for ubuntu initramfs.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 *  linux/include/asm-arm/fpstate.h
 
3
 *
 
4
 *  Copyright (C) 1995 Russell King
 
5
 *
 
6
 * This program is free software; you can redistribute it and/or modify
 
7
 * it under the terms of the GNU General Public License version 2 as
 
8
 * published by the Free Software Foundation.
 
9
 */
 
10
 
 
11
#ifndef __ASM_ARM_FPSTATE_H
 
12
#define __ASM_ARM_FPSTATE_H
 
13
 
 
14
 
 
15
#ifndef __ASSEMBLY__
 
16
 
 
17
/*
 
18
 * VFP storage area has:
 
19
 *  - FPEXC, FPSCR, FPINST and FPINST2.
 
20
 *  - 16 or 32 double precision data registers
 
21
 *  - an implementation-dependant word of state for FLDMX/FSTMX (pre-ARMv6)
 
22
 * 
 
23
 *  FPEXC will always be non-zero once the VFP has been used in this process.
 
24
 */
 
25
 
 
26
struct vfp_hard_struct {
 
27
#ifdef CONFIG_VFPv3
 
28
        __u64 fpregs[32];
 
29
#else
 
30
        __u64 fpregs[16];
 
31
#endif
 
32
#if __LINUX_ARM_ARCH__ < 6
 
33
        __u32 fpmx_state;
 
34
#endif
 
35
        __u32 fpexc;
 
36
        __u32 fpscr;
 
37
        /*
 
38
         * VFP implementation specific state
 
39
         */
 
40
        __u32 fpinst;
 
41
        __u32 fpinst2;
 
42
 
 
43
#ifdef CONFIG_SMP
 
44
        __u32 cpu;
 
45
#endif
 
46
};
 
47
 
 
48
union vfp_state {
 
49
        struct vfp_hard_struct  hard;
 
50
};
 
51
 
 
52
extern void vfp_flush_thread(union vfp_state *);
 
53
extern void vfp_release_thread(union vfp_state *);
 
54
 
 
55
#define FP_HARD_SIZE 35
 
56
 
 
57
struct fp_hard_struct {
 
58
        unsigned int save[FP_HARD_SIZE];                /* as yet undefined */
 
59
};
 
60
 
 
61
#define FP_SOFT_SIZE 35
 
62
 
 
63
struct fp_soft_struct {
 
64
        unsigned int save[FP_SOFT_SIZE];                /* undefined information */
 
65
};
 
66
 
 
67
#define IWMMXT_SIZE     0x98
 
68
 
 
69
struct iwmmxt_struct {
 
70
        unsigned int save[IWMMXT_SIZE / sizeof(unsigned int)];
 
71
};
 
72
 
 
73
union fp_state {
 
74
        struct fp_hard_struct   hard;
 
75
        struct fp_soft_struct   soft;
 
76
#ifdef CONFIG_IWMMXT
 
77
        struct iwmmxt_struct    iwmmxt;
 
78
#endif
 
79
};
 
80
 
 
81
#define FP_SIZE (sizeof(union fp_state) / sizeof(int))
 
82
 
 
83
struct crunch_state {
 
84
        unsigned int    mvdx[16][2];
 
85
        unsigned int    mvax[4][3];
 
86
        unsigned int    dspsc[2];
 
87
};
 
88
 
 
89
#define CRUNCH_SIZE     sizeof(struct crunch_state)
 
90
 
 
91
#endif
 
92
 
 
93
#endif