audk/OvmfPkg/Include/IndustryStandard/Xen
Ard Biesheuvel d401a48741 Ovmf/Xen: add Xen PV console SerialPortLib driver
This implements a SerialPortLib instance that wires up to the
PV console ring used by domU guests. Also imports the required
upstream Xen io/console.h header.

Contributed-under: TianoCore Contribution Agreement 1.0
Reviewed-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Acked-by: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Laszlo Ersek <lersek@redhat.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16976 6f19259b-4bc3-4df7-8a09-765794883524
2015-02-28 20:33:45 +00:00
..
arch-arm Ovmf/Xen: implement XenHypercallLib for ARM 2015-02-28 20:33:22 +00:00
arch-x86 OvmfPkg/Include/...Xen: Convert __i386__/__x86_64__ to MDE_CPU_IA32/MDE_CPU_X64. 2014-10-31 21:25:11 +00:00
hvm OvmfPkg/Include/...Xen: Convert __i386__/__x86_64__ to MDE_CPU_IA32/MDE_CPU_X64. 2014-10-31 21:25:11 +00:00
io Ovmf/Xen: add Xen PV console SerialPortLib driver 2015-02-28 20:33:45 +00:00
README OvmfPkg/Include/...Xen: Convert __i386__/__x86_64__ to MDE_CPU_IA32/MDE_CPU_X64. 2014-10-31 21:25:11 +00:00
event_channel.h OvmfPkg/XenBusDxe: Add Event Channel Notify. 2014-10-29 06:50:24 +00:00
grant_table.h OvmfPkg: Add public headers from Xen Project. 2014-10-29 06:48:29 +00:00
memory.h OvmfPkg: Add public headers from Xen Project. 2014-10-29 06:48:29 +00:00
xen-compat.h OvmfPkg: Add public headers from Xen Project. 2014-10-29 06:48:29 +00:00
xen.h Ovmf/Xen: implement XenHypercallLib for ARM 2015-02-28 20:33:22 +00:00

README

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

The headers in this directory have been imported from the Xen Project with few
modification that are described in this README.

The modifications that needed to be done are:
- Use of ZeroMem() or SetMem() instead of memset().
- If a struct is using a 64bit field, then a #pragma(4) might be needed
  for IA32, like in io/blkif.h.
- Replace the types with the ones used in UEFI.


* Command to run to change types:
find OvmfPkg/Include/IndustryStandard/Xen -type f -name '*.h' -exec sed --regexp-extended --file=fix_type_in_xen_includes.sed --in-place {} \;

$ cat fix_type_in_xen_includes.sed
# Avoid changing the 'long' that is not a type.
/as long as/b

s/([^a-zA-Z0-9_]|^)uint8_t([^a-zA-Z0-9_]|$)/\1UINT8\2/g
s/([^a-zA-Z0-9_]|^)uint16_t([^a-zA-Z0-9_]|$)/\1UINT16\2/g
s/([^a-zA-Z0-9_]|^)uint32_t([^a-zA-Z0-9_]|$)/\1UINT32\2/g
s/([^a-zA-Z0-9_]|^)uint64_t([^a-zA-Z0-9_]|$)/\1UINT64\2/g

s/([^a-zA-Z0-9_]|^)int8_t([^a-zA-Z0-9_]|$)/\1INT8\2/g
s/([^a-zA-Z0-9_]|^)int16_t([^a-zA-Z0-9_]|$)/\1INT16\2/g
s/([^a-zA-Z0-9_]|^)int32_t([^a-zA-Z0-9_]|$)/\1INT32\2/g
s/([^a-zA-Z0-9_]|^)int64_t([^a-zA-Z0-9_]|$)/\1INT64\2/g

s/([^a-zA-Z0-9_]|^)void([^a-zA-Z0-9_]|$)/\1VOID\2/g
s/([^a-zA-Z0-9_]|^)unsigned int([^a-zA-Z0-9_]|$)/\1UINT32\2/g
s/([^a-zA-Z0-9_]|^)int([^a-zA-Z0-9_]|$)/\1INT32\2/g
s/([^a-zA-Z0-9_]|^)unsigned char([^a-zA-Z0-9_]|$)/\1UINT8\2/g
s/([^a-zA-Z0-9_]|^)char([^a-zA-Z0-9_]|$)/\1CHAR8\2/g
s/([^a-zA-Z0-9_]|^)unsigned long([^a-zA-Z0-9_]|$)/\1UINTN\2/g
s/([^a-zA-Z0-9_]|^)long([^a-zA-Z0-9_]|$)/\1INTN\2/g

s/__i386__/MDE_CPU_IA32/g
s/__x86_64__/MDE_CPU_X64/g