ia64/xen-unstable

view extras/mini-os/include/byteswap.h @ 17042:a905c582a406

Add stubdomain support. See stubdom/README for usage details.

- Move PAGE_SIZE and STACK_SIZE into __PAGE_SIZE and __STACK_SIZE in
arch_limits.h so as to permit getting them from there without
pulling all the internal Mini-OS defines.
- Setup a xen-elf cross-compilation environment in stubdom/cross-root
- Add a POSIX layer on top of Mini-OS by linking against the newlib C
library and lwIP, and implementing the Unixish part in mini-os/lib/sys.c
- Cross-compile zlib and libpci too.
- Add an xs.h-compatible layer on top of Mini-OS' xenbus.
- Cross-compile libxc with an additional xc_minios.c and a few things
disabled.
- Cross-compile ioemu with an additional block-vbd, but without sound,
tpm and other details. A few hacks are needed:
- Align ide and scsi buffers at least on sector size to permit
direct transmission to the block backend. While we are at it, just
page-align it to possibly save a segment. Also, limit the scsi
buffer size because of limitations of the block paravirtualization
protocol.
- Allocate big tables dynamically rather that letting them go to
bss: when Mini-OS gets installed in memory, bss is not lazily
allocated, and doing so during Mini-OS is unnecessarily trick while
we can simply use malloc.
- Had to change the Mini-OS compilation somehow, so as to export
Mini-OS compilation flags to the Makefiles of libxc and ioemu.

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
author Keir Fraser <keir.fraser@citrix.com>
date Tue Feb 12 14:35:39 2008 +0000 (2008-02-12)
parents
children 07ba9aeee347
line source
1 #ifndef _BYTESWAP_H_
2 #define _BYTESWAP_H_
4 /* Unfortunately not provided by newlib. */
5 #define bswap_16(x) \
6 ((((x) & 0xff00) >> 8) | (((x) & 0xff) << 8))
8 #define bswap_32(x) \
9 ((((x) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >> 8) | \
10 (((x) & 0x0000ff00) << 8) | (((x) & 0x000000ff) << 24))
12 #define bswap_64(x) \
13 ((((x) & 0xff00000000000000ULL) >> 56) | \
14 (((x) & 0x00ff000000000000ULL) >> 40) | \
15 (((x) & 0x0000ff0000000000ULL) >> 24) | \
16 (((x) & 0x000000ff00000000ULL) >> 8) | \
17 (((x) & 0x00000000ff000000ULL) << 8) | \
18 (((x) & 0x0000000000ff0000ULL) << 24) | \
19 (((x) & 0x000000000000ff00ULL) << 40) | \
20 (((x) & 0x00000000000000ffULL) << 56))
22 #endif /* _BYTESWAP_H */