/**
 * PROJECT:         ExectOS
 * COPYRIGHT:       See COPYING.md in the top level directory
 * FILE:            sdk/xtdk/amd64/hlfuncs.h
 * DESCRIPTION:     XT hardware abstraction layer routines specific to AMD64 architecture
 * DEVELOPERS:      Rafal Kupiec <belliash@codingworkshop.eu.org>
 */

#ifndef __XTDK_AMD64_HLFUNCS_H
#define __XTDK_AMD64_HLFUNCS_H

#include <xtdefs.h>
#include <xtstruct.h>
#include <xttypes.h>
#include <amd64/xtstruct.h>


/* C/C++ specific code */
#ifndef __XTOS_ASSEMBLER__

/* Hardware layer routines forward references */
XTCLINK
XTCDECL
UCHAR
HlReadPort8(IN USHORT Port);

XTCLINK
XTCDECL
USHORT
HlReadPort16(IN USHORT Port);

XTCLINK
XTCDECL
ULONG
HlReadPort32(IN USHORT Port);

XTCLINK
XTCDECL
VOID
HlWritePort8(IN USHORT Port,
             IN UCHAR Data);

XTCLINK
XTCDECL
VOID
HlWritePort16(IN USHORT Port,
              IN USHORT Value);

XTCLINK
XTCDECL
VOID
HlWritePort32(IN USHORT Port,
              IN ULONG Value);

#endif /* __XTOS_ASSEMBLER__ */
#endif /* __XTDK_AMD64_HLFUNCS_H */
