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:
committed by
Stefan Reinauer
parent
11e45cd3ff
commit
f394c7593f
@ -2,6 +2,7 @@
|
|||||||
* This file is part of the libpayload project.
|
* This file is part of the libpayload project.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2008 Advanced Micro Devices, Inc.
|
* Copyright (C) 2008 Advanced Micro Devices, Inc.
|
||||||
|
* Copyright (C) 2008 coresystems GmbH
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions
|
* 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));
|
__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
|
#endif
|
||||||
|
Reference in New Issue
Block a user