[coreboot] r3513 - trunk/payloads/libpayload/include/arch

svn at coreboot.org svn at coreboot.org
Sat Aug 16 17:17:36 CEST 2008


Author: stepan
Date: 2008-08-16 17:17:36 +0200 (Sat, 16 Aug 2008)
New Revision: 3513

Modified:
   trunk/payloads/libpayload/include/arch/io.h
Log:
add block io functions 

Signed-off-by: Stefan Reinauer <stepan at coresystems.de>
Acked-by: Stefan Reinauer <stepan at coresystems.de>



Modified: trunk/payloads/libpayload/include/arch/io.h
===================================================================
--- trunk/payloads/libpayload/include/arch/io.h	2008-08-16 15:16:36 UTC (rev 3512)
+++ trunk/payloads/libpayload/include/arch/io.h	2008-08-16 15:17:36 UTC (rev 3513)
@@ -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 @@
 	__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





More information about the coreboot mailing list