~ubuntu-branches/ubuntu/gutsy/vnc4/gutsy

« back to all changes in this revision

Viewing changes to unix/xc/extras/x86emu/include/x86emu/fpu_regs.h

  • Committer: Bazaar Package Importer
  • Author(s): Ola Lundqvist
  • Date: 2006-05-15 20:35:17 UTC
  • mfrom: (1.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20060515203517-l4lre1ku942mn26k
Tags: 4.1.1+X4.3.0-10
* Correction of critical security issue. Thanks to Martin Kogler
  <e9925248@student.tuwien.ac.at> that informed me about the issue,
  and provided the patch.
  This flaw was originally found by Steve Wiseman of intelliadmin.com.
* Applied patch from Javier Kohen <jkohen@users.sourceforge.net> that
  inform the user that only 8 first characters of the password will
  actually be used when typing more than 8 characters, closes:
  #355619.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/****************************************************************************
 
2
*
 
3
*                                               Realmode X86 Emulator Library
 
4
*
 
5
*               Copyright (C) 1996-1999 SciTech Software, Inc.
 
6
*                                    Copyright (C) David Mosberger-Tang
 
7
*                                          Copyright (C) 1999 Egbert Eich
 
8
*
 
9
*  ========================================================================
 
10
*
 
11
*  Permission to use, copy, modify, distribute, and sell this software and
 
12
*  its documentation for any purpose is hereby granted without fee,
 
13
*  provided that the above copyright notice appear in all copies and that
 
14
*  both that copyright notice and this permission notice appear in
 
15
*  supporting documentation, and that the name of the authors not be used
 
16
*  in advertising or publicity pertaining to distribution of the software
 
17
*  without specific, written prior permission.  The authors makes no
 
18
*  representations about the suitability of this software for any purpose.
 
19
*  It is provided "as is" without express or implied warranty.
 
20
*
 
21
*  THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 
22
*  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
 
23
*  EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 
24
*  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
 
25
*  USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
 
26
*  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 
27
*  PERFORMANCE OF THIS SOFTWARE.
 
28
*
 
29
*  ========================================================================
 
30
*
 
31
* Language:             ANSI C
 
32
* Environment:  Any
 
33
* Developer:    Kendall Bennett
 
34
*
 
35
* Description:  Header file for FPU register definitions.
 
36
*
 
37
****************************************************************************/
 
38
 
 
39
#ifndef __X86EMU_FPU_REGS_H
 
40
#define __X86EMU_FPU_REGS_H
 
41
 
 
42
#ifdef X86_FPU_SUPPORT
 
43
 
 
44
#pragma pack(1)
 
45
 
 
46
/* Basic 8087 register can hold any of the following values: */
 
47
 
 
48
union x86_fpu_reg_u {
 
49
    s8                  tenbytes[10];
 
50
    double              dval;
 
51
    float               fval;
 
52
    s16                 sval;
 
53
    s32                 lval;
 
54
        };
 
55
 
 
56
struct x86_fpu_reg {
 
57
        union x86_fpu_reg_u reg;
 
58
        char                tag;
 
59
        };
 
60
 
 
61
/*
 
62
 * Since we are not going to worry about the problems of aliasing
 
63
 * registers, every time a register is modified, its result type is
 
64
 * set in the tag fields for that register.  If some operation
 
65
 * attempts to access the type in a way inconsistent with its current
 
66
 * storage format, then we flag the operation.  If common, we'll
 
67
 * attempt the conversion.
 
68
 */
 
69
 
 
70
#define  X86_FPU_VALID          0x80
 
71
#define  X86_FPU_REGTYP(r)      ((r) & 0x7F)
 
72
 
 
73
#define  X86_FPU_WORD           0x0
 
74
#define  X86_FPU_SHORT          0x1
 
75
#define  X86_FPU_LONG           0x2
 
76
#define  X86_FPU_FLOAT          0x3
 
77
#define  X86_FPU_DOUBLE         0x4
 
78
#define  X86_FPU_LDBL           0x5
 
79
#define  X86_FPU_BSD            0x6
 
80
 
 
81
#define  X86_FPU_STKTOP  0
 
82
 
 
83
struct x86_fpu_registers {
 
84
    struct x86_fpu_reg  x86_fpu_stack[8];
 
85
    int                 x86_fpu_flags;
 
86
    int                 x86_fpu_config;         /* rounding modes, etc. */
 
87
    short               x86_fpu_tos, x86_fpu_bos;
 
88
        };
 
89
 
 
90
#pragma pack()
 
91
 
 
92
/*
 
93
 * There are two versions of the following macro.
 
94
 *
 
95
 * One version is for opcode D9, for which there are more than 32
 
96
 * instructions encoded in the second byte of the opcode.
 
97
 *
 
98
 * The other version, deals with all the other 7 i87 opcodes, for
 
99
 * which there are only 32 strings needed to describe the
 
100
 * instructions.
 
101
 */
 
102
 
 
103
#endif /* X86_FPU_SUPPORT */
 
104
 
 
105
#ifdef DEBUG
 
106
# define DECODE_PRINTINSTR32(t,mod,rh,rl)       \
 
107
        DECODE_PRINTF(t[(mod<<3)+(rh)]);
 
108
# define DECODE_PRINTINSTR256(t,mod,rh,rl)      \
 
109
        DECODE_PRINTF(t[(mod<<6)+(rh<<3)+(rl)]);
 
110
#else
 
111
# define DECODE_PRINTINSTR32(t,mod,rh,rl)
 
112
# define DECODE_PRINTINSTR256(t,mod,rh,rl)
 
113
#endif
 
114
 
 
115
#endif /* __X86EMU_FPU_REGS_H */