. pci driver now returns devices, even when they have been pci_reserve()d
[minix3.git] / lib / float / FP_types.h
bloba23f32b89e6796669bd145f3a4a4c730bcc77d27
1 /*
2 (c) copyright 1988 by the Vrije Universiteit, Amsterdam, The Netherlands.
3 See the copyright notice in the ACK home directory, in the file "Copyright".
4 */
6 /* $Header$ */
8 /********************************************************/
9 /*
10 Type definitions for C Floating Point Package
11 include file for floating point package
13 /********************************************************/
15 THESE STRUCTURES ARE USED TO ADDRESS THE INDIVIDUAL
16 PARTS OF THE FLOATING POINT NUMBER REPRESENTATIONS.
18 THREE STRUCTURES ARE DEFINED:
19 SINGLE: single precision floating format
20 DOUBLE: double precision floating format
21 EXTEND: double precision extended format
23 /********************************************************/
25 #ifndef __FPTYPES
26 #define __FPTYPES
28 typedef struct {
29 unsigned long h_32; /* higher 32 bits of 64 */
30 unsigned long l_32; /* lower 32 bits of 64 */
31 } B64;
33 typedef unsigned long SINGLE;
35 typedef struct {
36 unsigned long d[2];
37 } DOUBLE;
39 typedef struct { /* expanded float format */
40 short sign;
41 short exp;
42 B64 mantissa;
43 #define m1 mantissa.h_32
44 #define m2 mantissa.l_32
45 } EXTEND;
47 struct fef4_returns {
48 int e;
49 SINGLE f;
52 struct fef8_returns {
53 int e;
54 DOUBLE f;
57 struct fif4_returns {
58 SINGLE ipart;
59 SINGLE fpart;
62 struct fif8_returns {
63 DOUBLE ipart;
64 DOUBLE fpart;
67 #if __STDC__
68 #define _PROTOTYPE(function, params) function params
69 #else
70 #define _PROTOTYPE(function, params) function()
71 #endif
72 _PROTOTYPE( void add_ext, (EXTEND *e1, EXTEND *e2));
73 _PROTOTYPE( void mul_ext, (EXTEND *e1, EXTEND *e2));
74 _PROTOTYPE( void div_ext, (EXTEND *e1, EXTEND *e2));
75 _PROTOTYPE( void sub_ext, (EXTEND *e1, EXTEND *e2));
76 _PROTOTYPE( void sft_ext, (EXTEND *e1, EXTEND *e2));
77 _PROTOTYPE( void nrm_ext, (EXTEND *e1));
78 _PROTOTYPE( void zrf_ext, (EXTEND *e1));
79 _PROTOTYPE( void extend, (unsigned long *from, EXTEND *to, int size));
80 _PROTOTYPE( void compact, (EXTEND *from, unsigned long *to, int size));
81 _PROTOTYPE( void _fptrp, (int));
82 _PROTOTYPE( void adf4, (SINGLE s2, SINGLE s1));
83 _PROTOTYPE( void adf8, (DOUBLE s2, DOUBLE s1));
84 _PROTOTYPE( void sbf4, (SINGLE s2, SINGLE s1));
85 _PROTOTYPE( void sbf8, (DOUBLE s2, DOUBLE s1));
86 _PROTOTYPE( void dvf4, (SINGLE s2, SINGLE s1));
87 _PROTOTYPE( void dvf8, (DOUBLE s2, DOUBLE s1));
88 _PROTOTYPE( void mlf4, (SINGLE s2, SINGLE s1));
89 _PROTOTYPE( void mlf8, (DOUBLE s2, DOUBLE s1));
90 _PROTOTYPE( void ngf4, (SINGLE f));
91 _PROTOTYPE( void ngf8, (DOUBLE f));
92 _PROTOTYPE( void zrf4, (SINGLE *l));
93 _PROTOTYPE( void zrf8, (DOUBLE *z));
94 _PROTOTYPE( void cff4, (DOUBLE src));
95 _PROTOTYPE( void cff8, (SINGLE src));
96 _PROTOTYPE( void cif4, (int ss, long src));
97 _PROTOTYPE( void cif8, (int ss, long src));
98 _PROTOTYPE( void cuf4, (int ss, long src));
99 _PROTOTYPE( void cuf8, (int ss, long src));
100 _PROTOTYPE( long cfu, (int ds, int ss, DOUBLE src));
101 _PROTOTYPE( long cfi, (int ds, int ss, DOUBLE src));
102 _PROTOTYPE( int cmf4, (SINGLE s2, SINGLE s1));
103 _PROTOTYPE( int cmf8, (DOUBLE d1, DOUBLE d2));
104 _PROTOTYPE( void fef4, (struct fef4_returns *r, SINGLE s1));
105 _PROTOTYPE( void fef8, (struct fef8_returns *r, DOUBLE s1));
106 _PROTOTYPE( void fif4, (struct fif4_returns *p, SINGLE x, SINGLE y));
107 _PROTOTYPE( void fif8, (struct fif8_returns *p, DOUBLE x, DOUBLE y));
109 _PROTOTYPE( void b64_sft, (B64 *, int));
110 _PROTOTYPE( void b64_lsft, (B64 *));
111 _PROTOTYPE( void b64_rsft, (B64 *));
112 _PROTOTYPE( int b64_add, (B64 *, B64 *));
113 #endif