add block io functions
Signed-off-by: Stefan Reinauer <stepan@coresystems.de> Acked-by: Stefan Reinauer <stepan@coresystems.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3513 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
parent
11e45cd3ff
commit
f394c7593f
|
@ -2,6 +2,7 @@
|
|||
* This file is part of the libpayload project.
|
||||
*
|
||||
* Copyright (C) 2008 Advanced Micro Devices, Inc.
|
||||
* Copyright (C) 2008 coresystems GmbH
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
|
@ -74,4 +75,34 @@ static inline void outb(unsigned char val, int port)
|
|||
__asm__ __volatile__("outb %b0, %w1" : : "a"(val), "Nd"(port));
|
||||
}
|
||||
|
||||
static inline void outsl(int port, const void *addr, unsigned long count)
|
||||
{
|
||||
__asm__ __volatile__("rep; outsl" : "+S"(addr), "+c"(count) : "d"(port));
|
||||
}
|
||||
|
||||
static inline void outsw(int port, const void *addr, unsigned long count)
|
||||
{
|
||||
__asm__ __volatile__("rep; outsw" : "+S"(addr), "+c"(count) : "d"(port));
|
||||
}
|
||||
|
||||
static inline void outsb(int port, const void *addr, unsigned long count)
|
||||
{
|
||||
__asm__ __volatile__("rep; outsb" : "+S"(addr), "+c"(count) : "d"(port));
|
||||
}
|
||||
|
||||
static inline void insl(int port, void *addr, unsigned long count)
|
||||
{
|
||||
__asm__ __volatile__("rep; insl" : "+D"(addr), "+c"(count) : "d"(port));
|
||||
}
|
||||
|
||||
static inline void insw(int port, void *addr, unsigned long count)
|
||||
{
|
||||
__asm__ __volatile__("rep; insw" : "+D"(addr), "+c"(count) : "d"(port));
|
||||
}
|
||||
|
||||
static inline void insb(int port, void *addr, unsigned long count)
|
||||
{
|
||||
__asm__ __volatile__("rep; insb" : "+D"(addr), "+c"(count) : "d"(port));
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue