1 #include "fs.h"
2 #include "buf.h"
3 #include "inode.h"
4 #include "super.h"
5
6
7 /*===========================================================================*
8 * conv2 *
9 *===========================================================================*/
conv2(norm,w)10 unsigned conv2(norm, w)
11 int norm; /* TRUE if no swap, FALSE for byte swap */
12 int w; /* promotion of 16-bit word to be swapped */
13 {
14 /* Possibly swap a 16-bit word between 8086 and 68000 byte order. */
15 if (norm) return( (unsigned) w & 0xFFFF);
16 return( ((w&BYTE) << 8) | ( (w>>8) & BYTE));
17 }
18
19
20 /*===========================================================================*
21 * conv4 *
22 *===========================================================================*/
conv4(norm,x)23 long conv4(norm, x)
24 int norm; /* TRUE if no swap, FALSE for byte swap */
25 long x; /* 32-bit long to be byte swapped */
26 {
27 /* Possibly swap a 32-bit long between 8086 and 68000 byte order. */
28 unsigned lo, hi;
29 long l;
30
31 if (norm) return(x); /* byte order was already ok */
32 lo = conv2(FALSE, (int) x & 0xFFFF); /* low-order half, byte swapped */
33 hi = conv2(FALSE, (int) (x>>16) & 0xFFFF); /* high-order half, swapped */
34 l = ( (long) lo <<16) | hi;
35 return(l);
36 }
37