changed reading hint
[gromacs/adressmacs.git] / include / inout.h
blob0ca7ee76302905a9b633a16a5f43024b1929b1ba
1 /*
2 * $Id$
3 *
4 * This source code is part of
5 *
6 * G R O M A C S
7 *
8 * GROningen MAchine for Chemical Simulations
9 *
10 * VERSION 2.0
12 * Copyright (c) 1991-1999
13 * BIOSON Research Institute, Dept. of Biophysical Chemistry
14 * University of Groningen, The Netherlands
16 * Please refer to:
17 * GROMACS: A message-passing parallel molecular dynamics implementation
18 * H.J.C. Berendsen, D. van der Spoel and R. van Drunen
19 * Comp. Phys. Comm. 91, 43-56 (1995)
21 * Also check out our WWW page:
22 * http://md.chem.rug.nl/~gmx
23 * or e-mail to:
24 * gromacs@chem.rug.nl
26 * And Hey:
27 * Good ROcking Metal Altar for Chronical Sinners
30 #ifndef _inout_h
31 #define _inout_h
33 static char *SRCID_inout_h = "$Id$";
35 #ifdef HAVE_IDENT
36 #ident "@(#) inout.h 1.6 11/23/92"
37 #endif /* HAVE_IDENT */
39 /***************************************************************************/
40 /* */
41 /* Memory mapped io for the SPC-i860 by A. Sijbers, (c) 1991 */
42 /* */
43 /* General description: */
44 /* */
45 /* The i860 io buffers (both dual ported rams, idt7130 and hd63310) are */
46 /* organised as bytes located at the lowest byte address in a 64 bit word. */
47 /* So to address consecutive bytes of the io buffers, it is necessary to */
48 /* increment the i860 byte address by 8. */
49 /* This module implements a general method of accessing the io buffers by */
50 /* specifying the base address of the buffer and an offset. The base */
51 /* address is the physical address of the buffer, the offset is byte count */
52 /* in the buffers local address space (to address the first byte of an io */
53 /* buffer, specify 0, for the second byte 1 etc.). */
54 /* Although it is possible to use any address and buffer size combination */
55 /* for the put_io_buf and get_io_buf routines, it is strongly recommended */
56 /* to use only long word aligned addresses and sizes which are multiple */
57 /* of 4 for maximum speed. The value of offset has no influence on the */
58 /* transfer rate. For details, see the implementation. */
59 /* */
60 /***************************************************************************/
62 #define HD63310 0xb0000000 /* HD63310 dual port ram base */
63 #define IDT7130 0xd0000000 /* IDT7130 dual port ram base */
65 extern void poke_io_buf(int iobase,int offset,int byte);
67 * Puts byte at io buffer, pointed to by iobase, location offset.
70 extern int peek_io_buf(int iobase,int offset);
72 * Returns the byte at offset from io buffer pointed to by iobase.
75 extern void put_io_buf(int iobase,int offset,void *buf,int bufsize);
77 * Puts bufsize bytes of buffer, pointed to by buf, into io buffer,
78 * pointed to by iobase, starting at offset.
81 extern void get_io_buf(int iobase,int offset,void *buf,int bufsize);
83 * Puts bufsize bytes from io buffer, pointed to by iobase, location
84 * offset into the buffer pointed to by buf.
87 #endif /* _inout_h */