ptos/amd64: Add port I/O headers
Signed-off-by: Chloe M. <chloe@yiffware.org>
This commit is contained in:
+10
-1
@@ -9,7 +9,12 @@
|
|||||||
include ../mk/ptos.mk
|
include ../mk/ptos.mk
|
||||||
|
|
||||||
.PHONY: all
|
.PHONY: all
|
||||||
all: spkg ke machine
|
all: target spkg ke machine post
|
||||||
|
|
||||||
|
.PHONY: target
|
||||||
|
target:
|
||||||
|
mkdir -p target/machine/
|
||||||
|
rsync -avr head/arch/$(PT_TARGET_ARCH)/*.h target/machine/
|
||||||
|
|
||||||
.PHONY: ke
|
.PHONY: ke
|
||||||
ke:
|
ke:
|
||||||
@@ -22,3 +27,7 @@ spkg:
|
|||||||
.PHONY: machine
|
.PHONY: machine
|
||||||
machine:
|
machine:
|
||||||
cd arch/$(PT_TARGET_ARCH)/; $(MAKE) $(PASSDOWN_ARGS)
|
cd arch/$(PT_TARGET_ARCH)/; $(MAKE) $(PASSDOWN_ARGS)
|
||||||
|
|
||||||
|
.PHONY: post
|
||||||
|
post:
|
||||||
|
rm -rf target/
|
||||||
|
|||||||
@@ -0,0 +1,56 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2026, Chloe M.
|
||||||
|
* Provided under the BSD-3 clause.
|
||||||
|
*
|
||||||
|
* Description: Port I/O helpers
|
||||||
|
* Author: Chloe M.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _MACHINE_PIO_H_
|
||||||
|
#define _MACHINE_PIO_H_ 1
|
||||||
|
|
||||||
|
#include <ptdef.h>
|
||||||
|
|
||||||
|
ALWAYS_INLINE static inline UCHAR
|
||||||
|
MdInb(USHORT Port)
|
||||||
|
{
|
||||||
|
UCHAR result;
|
||||||
|
ASMV("in %%dx, %%al" : "=a" (result) : "d" (Port));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
ALWAYS_INLINE static inline USHORT
|
||||||
|
MdInw(USHORT Port)
|
||||||
|
{
|
||||||
|
USHORT Val;
|
||||||
|
ASMV("inw %w1, %w0" : "=a" (Val) : "Nd" (Port));
|
||||||
|
return Val;
|
||||||
|
}
|
||||||
|
|
||||||
|
ALWAYS_INLINE static inline ULONG
|
||||||
|
MdInl(USHORT Port)
|
||||||
|
{
|
||||||
|
ULONG Val;
|
||||||
|
ASMV("inl %w1, %0" : "=a" (Val) : "Nd" (Port));
|
||||||
|
return Val;
|
||||||
|
}
|
||||||
|
|
||||||
|
ALWAYS_INLINE static inline VOID
|
||||||
|
MdOutb(USHORT Port, UCHAR Val)
|
||||||
|
{
|
||||||
|
ASMV("out %%al, %%dx" : :"a" (Val), "d" (Port));
|
||||||
|
}
|
||||||
|
|
||||||
|
ALWAYS_INLINE static inline VOID
|
||||||
|
MdOutw(USHORT Port, USHORT Val)
|
||||||
|
{
|
||||||
|
ASMV("outw %w0, %w1" : : "a" (Val), "Nd" (Port));
|
||||||
|
}
|
||||||
|
|
||||||
|
ALWAYS_INLINE static inline VOID
|
||||||
|
MdOutl(USHORT Port, ULONG Val)
|
||||||
|
{
|
||||||
|
ASMV("outl %0, %w1" : : "a" (Val), "Nd" (Port));
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* !_MACHINE_PIO_H_ */
|
||||||
@@ -8,6 +8,7 @@
|
|||||||
|
|
||||||
#include <ptdef.h>
|
#include <ptdef.h>
|
||||||
#include <ke/bpal.h>
|
#include <ke/bpal.h>
|
||||||
|
#include <machine/pio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
Reference in New Issue
Block a user