home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / asm-arm / fpstate.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  1.5 KB  |  78 lines

  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 double precision data registers
  21.  *  - an implementation-dependant word of state for FLDMX/FSTMX
  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.     __u64 fpregs[16];
  28. #if __LINUX_ARM_ARCH__ < 6
  29.     __u32 fpmx_state;
  30. #endif
  31.     __u32 fpexc;
  32.     __u32 fpscr;
  33.     /*
  34.      * VFP implementation specific state
  35.      */
  36.     __u32 fpinst;
  37.     __u32 fpinst2;
  38. };
  39.  
  40. union vfp_state {
  41.     struct vfp_hard_struct    hard;
  42. };
  43.  
  44. extern void vfp_flush_thread(union vfp_state *);
  45. extern void vfp_release_thread(union vfp_state *);
  46.  
  47. #define FP_HARD_SIZE 35
  48.  
  49. struct fp_hard_struct {
  50.     unsigned int save[FP_HARD_SIZE];        /* as yet undefined */
  51. };
  52.  
  53. #define FP_SOFT_SIZE 35
  54.  
  55. struct fp_soft_struct {
  56.     unsigned int save[FP_SOFT_SIZE];        /* undefined information */
  57. };
  58.  
  59. #define IWMMXT_SIZE    0x98
  60.  
  61. struct iwmmxt_struct {
  62.     unsigned int save[IWMMXT_SIZE / sizeof(unsigned int)];
  63. };
  64.  
  65. union fp_state {
  66.     struct fp_hard_struct    hard;
  67.     struct fp_soft_struct    soft;
  68. #ifdef CONFIG_IWMMXT
  69.     struct iwmmxt_struct    iwmmxt;
  70. #endif
  71. };
  72.  
  73. #define FP_SIZE (sizeof(union fp_state) / sizeof(int))
  74.  
  75. #endif
  76.  
  77. #endif
  78.