summaryrefslogtreecommitdiff
path: root/src/cim
diff options
context:
space:
mode:
authorJordan Crouse <jordan.crouse@amd.com>2006-07-07 13:05:19 -0600
committerJordan Crouse <jordan.crouse@amd.com>2006-07-07 13:35:53 -0600
commit726d46c8da96b2a0168b39d36be32467d54a9de3 (patch)
treec1bdf5bff463b5f6f56a732cd4e663fa6750fef5 /src/cim
parentc3ab9f1a60afe1f5e86db1cf2635acda14fae2f5 (diff)
Update with cleanup and other fixes
Final commit of cleanup fixes prior to pushing
Diffstat (limited to 'src/cim')
-rw-r--r--src/cim/cim_defs.h466
1 files changed, 239 insertions, 227 deletions
diff --git a/src/cim/cim_defs.h b/src/cim/cim_defs.h
index 638ba8e..176bdb4 100644
--- a/src/cim/cim_defs.h
+++ b/src/cim/cim_defs.h
@@ -1,16 +1,32 @@
- /*
- * <LIC_AMD_STD>
- * Copyright (C) 2005 Advanced Micro Devices, Inc. All Rights Reserved.
- * </LIC_AMD_STD>
- *
- * <CTL_AMD_STD>
- * </CTL_AMD_STD>
- *
- * <DOC_AMD_STD>
- * Cimarron hardware access macros.
- * </DOC_AMD_STD>
- *
- */
+/*
+ * Copyright (c) 2006 Advanced Micro Devices, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Neither the name of the Advanced Micro Devices, Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ */
+
+/*
+ * Cimarron hardware access macros.
+ */
#ifndef _cim_defs_h
#define _cim_defs_h
@@ -100,17 +116,18 @@
* Read the contents of a 64 bit MSR into a data structure
*-----------------------------------------------------------------*/
-#define MSR_READ(msr_reg, device_add, data64_ptr) \
-{ \
- unsigned long msr_add = (unsigned long)(msr_reg) | (unsigned long)(device_add); \
- unsigned long data_high, data_low; \
- _asm { mov ecx, msr_add } \
- _asm { rdmsr } \
- _asm { mov data_high, edx } \
- _asm { mov data_low, eax } \
- \
- ((Q_WORD *)(data64_ptr))->high = data_high; \
- ((Q_WORD *)(data64_ptr))->low = data_low; \
+#define MSR_READ(msr_reg, device_add, data64_ptr) \
+{ \
+ unsigned long msr_add = (unsigned long)(msr_reg) | \
+ (unsigned long)(device_add); \
+ unsigned long data_high, data_low; \
+ _asm { mov ecx, msr_add } \
+ _asm { rdmsr } \
+ _asm { mov data_high, edx } \
+ _asm { mov data_low, eax } \
+ \
+ ((Q_WORD *)(data64_ptr))->high = data_high; \
+ ((Q_WORD *)(data64_ptr))->low = data_low; \
}
/*-----------------------------------------------------------------
@@ -118,18 +135,19 @@
* Write the contents of a 64 bit data structure to a MSR.
*-----------------------------------------------------------------*/
-#define MSR_WRITE(msr_reg, device_add, data64_ptr) \
-{ \
- unsigned long msr_add = (unsigned long)(msr_reg) | (unsigned long)(device_add); \
- unsigned long data_high, data_low; \
- \
- data_high = ((Q_WORD *)(data64_ptr))->high; \
- data_low = ((Q_WORD *)(data64_ptr))->low; \
- \
- _asm { mov ecx, msr_add } \
- _asm { mov edx, data_high } \
- _asm { mov eax, data_low } \
- _asm { wrmsr } \
+#define MSR_WRITE(msr_reg, device_add, data64_ptr) \
+{ \
+ unsigned long msr_add = (unsigned long)(msr_reg) | \
+ (unsigned long)(device_add); \
+ unsigned long data_high, data_low; \
+ \
+ data_high = ((Q_WORD *)(data64_ptr))->high; \
+ data_low = ((Q_WORD *)(data64_ptr))->low; \
+ \
+ _asm { mov ecx, msr_add } \
+ _asm { mov edx, data_high } \
+ _asm { mov eax, data_low } \
+ _asm { wrmsr } \
}
#elif CIMARRON_MSR_VSA_IO
@@ -139,23 +157,24 @@
* Read the contents of a 64 bit MSR into a data structure
*-----------------------------------------------------------------*/
-#define MSR_READ(msr_reg, device_add, data64_ptr) \
-{ \
- unsigned long msr_add = (unsigned long)(msr_reg) | (unsigned long)(device_add); \
- unsigned long data_high, data_low; \
- \
- _asm { mov dx, 0x0AC1C } \
- _asm { mov eax, 0x0FC530007 } \
- _asm { out dx, eax } \
- \
- _asm { add dl, 2 } \
- _asm { mov ecx, msr_add } \
- _asm { in ax, dx } \
- _asm { mov data_high, edx } \
- _asm { mov data_low, eax } \
- \
- ((Q_WORD *)(data64_ptr))->high = data_high; \
- ((Q_WORD *)(data64_ptr))->low = data_low; \
+#define MSR_READ(msr_reg, device_add, data64_ptr) \
+{ \
+ unsigned long msr_add = (unsigned long)(msr_reg) | \
+ (unsigned long)(device_add); \
+ unsigned long data_high, data_low; \
+ \
+ _asm { mov dx, 0x0AC1C } \
+ _asm { mov eax, 0x0FC530007 } \
+ _asm { out dx, eax } \
+ \
+ _asm { add dl, 2 } \
+ _asm { mov ecx, msr_add } \
+ _asm { in ax, dx } \
+ _asm { mov data_high, edx } \
+ _asm { mov data_low, eax } \
+ \
+ ((Q_WORD *)(data64_ptr))->high = data_high; \
+ ((Q_WORD *)(data64_ptr))->low = data_low; \
}
/*-----------------------------------------------------------------
@@ -163,26 +182,27 @@
* Write the contents of a 64 bit data structure to a MSR.
*-----------------------------------------------------------------*/
-#define MSR_WRITE(msr_reg, device_add, data64_ptr) \
-{ \
- unsigned long msr_add = (unsigned long)(msr_reg) | (unsigned long)(device_add); \
- unsigned long data_high, data_low; \
- \
- data_high = ((Q_WORD *)(data64_ptr))->high; \
- data_low = ((Q_WORD *)(data64_ptr))->low; \
- \
- _asm { mov dx, 0x0AC1C } \
- _asm { mov eax, 0x0FC530007 } \
- _asm { out dx, eax } \
- \
- _asm { add dl, 2 } \
- _asm { mov ecx, msr_add } \
- _asm { mov ebx, data_high } \
- _asm { mov eax, data_low } \
- \
- _asm { mov esi, 0 } \
- _asm { mov edi, 0 } \
- _asm { out dx, ax } \
+#define MSR_WRITE(msr_reg, device_add, data64_ptr) \
+{ \
+ unsigned long msr_add = (unsigned long)(msr_reg) | \
+ (unsigned long)(device_add); \
+ unsigned long data_high, data_low; \
+ \
+ data_high = ((Q_WORD *)(data64_ptr))->high; \
+ data_low = ((Q_WORD *)(data64_ptr))->low; \
+ \
+ _asm { mov dx, 0x0AC1C } \
+ _asm { mov eax, 0x0FC530007 } \
+ _asm { out dx, eax } \
+ \
+ _asm { add dl, 2 } \
+ _asm { mov ecx, msr_add } \
+ _asm { mov ebx, data_high } \
+ _asm { mov eax, data_low } \
+ \
+ _asm { mov esi, 0 } \
+ _asm { mov edi, 0 } \
+ _asm { out dx, ax } \
}
#elif CIMARRON_MSR_ABSTRACTED_ASM
@@ -235,15 +255,15 @@
* Read the contents of a 64 bit MSR into a data structure
*-----------------------------------------------------------------*/
-#define MSR_READ(msr_reg, device_add, data64_ptr) \
-{ \
- unsigned long addr, val1, val2; \
- \
- addr = device_add | msr_reg; \
- rdmsr (addr, val1, val2); \
- \
- ((Q_WORD *)(data64_ptr))->high = val2; \
- ((Q_WORD *)(data64_ptr))->low = val1; \
+#define MSR_READ(msr_reg, device_add, data64_ptr) \
+{ \
+ unsigned long addr, val1, val2; \
+ \
+ addr = device_add | msr_reg; \
+ rdmsr (addr, val1, val2); \
+ \
+ ((Q_WORD *)(data64_ptr))->high = val2; \
+ ((Q_WORD *)(data64_ptr))->low = val1; \
}
/*-----------------------------------------------------------------
@@ -251,15 +271,15 @@
* Read the contents of a 64 bit data structure to a MSR.
*-----------------------------------------------------------------*/
-#define MSR_WRITE(msr_reg, device_add, data64_ptr) \
-{ \
- unsigned long addr, val1, val2; \
- \
- val2 = ((Q_WORD *)(data64_ptr))->high; \
- val1 = ((Q_WORD *)(data64_ptr))->low; \
- \
- addr = (device_add & 0xFFFF0000) | (unsigned long)msr_reg; \
- wrmsr(addr, val1, val2); \
+#define MSR_WRITE(msr_reg, device_add, data64_ptr) \
+{ \
+ unsigned long addr, val1, val2; \
+ \
+ val2 = ((Q_WORD *)(data64_ptr))->high; \
+ val1 = ((Q_WORD *)(data64_ptr))->low; \
+ \
+ addr = (device_add & 0xFFFF0000) | (unsigned long)msr_reg; \
+ wrmsr(addr, val1, val2); \
}
#endif
@@ -350,13 +370,14 @@
* Write a series of DWORDs to the current command buffer offset
*-----------------------------------------------------------------*/
-#define WRITE_COMMAND_STRING32(offset, dataptr, dataoffset, dword_count) \
-{ \
- unsigned long i; \
- unsigned long tempdata = (unsigned long)dataptr + (dataoffset); \
- unsigned long byte_off = 0; \
- for (i = 0; i < dword_count; i++, byte_off += 4) \
- WRITE_COMMAND32 ((offset) + byte_off, *((unsigned long *)(tempdata + byte_off))); \
+#define WRITE_COMMAND_STRING32(offset, dataptr, dataoffset, dword_count) \
+{ \
+ unsigned long i; \
+ unsigned long tempdata = (unsigned long)dataptr + (dataoffset); \
+ unsigned long byte_off = 0; \
+ for (i = 0; i < dword_count; i++, byte_off += 4) \
+ WRITE_COMMAND32 ((offset) + byte_off, \
+ *((unsigned long *)(tempdata + byte_off))); \
}
/*-----------------------------------------------------------------
@@ -364,13 +385,14 @@
* Write a series of DWORDS to video memory.
*-----------------------------------------------------------------*/
-#define WRITE_FB_STRING32(offset, dataptr, dword_count) \
-{ \
- unsigned long i; \
- unsigned long tempdata = (unsigned long)dataptr; \
- unsigned long byte_off = 0; \
- for (i = 0; i < dword_count; i++, byte_off += 4) \
- WRITE_FB32 ((offset) + byte_off, *((unsigned long *)(tempdata + byte_off))); \
+#define WRITE_FB_STRING32(offset, dataptr, dword_count) \
+{ \
+ unsigned long i; \
+ unsigned long tempdata = (unsigned long)dataptr; \
+ unsigned long byte_off = 0; \
+ for (i = 0; i < dword_count; i++, byte_off += 4) \
+ WRITE_FB32 ((offset) + byte_off, \
+ *((unsigned long *)(tempdata + byte_off))); \
}
/*-----------------------------------------------------------------
@@ -378,12 +400,12 @@
* Write a constant DWORD to multiple video memory addresses
*-----------------------------------------------------------------*/
-#define WRITE_FB_CONSTANT(offset, value, dword_count) \
-{ \
- unsigned long i; \
- unsigned long tempoffset = offset; \
- for (i = 0; i < dword_count; i++, tempoffset += 4) \
- WRITE_FB32 (tempoffset, value); \
+#define WRITE_FB_CONSTANT(offset, value, dword_count) \
+{ \
+ unsigned long i; \
+ unsigned long tempoffset = offset; \
+ for (i = 0; i < dword_count; i++, tempoffset += 4) \
+ WRITE_FB32 (tempoffset, value); \
}
/*-----------------------------------------------------------------
@@ -391,13 +413,14 @@
* Write a series of DWORDs to the GP host source register
*-----------------------------------------------------------------*/
-#define WRITE_HOST_SOURCE_STRING32(dataptr, dataoffset, dword_count) \
-{ \
- unsigned long i; \
- unsigned long tempdata = (unsigned long)dataptr + (dataoffset); \
- unsigned long byte_off = 0; \
- for (i = 0; i < dword_count; i++, byte_off += 4) \
- WRITE_GP32 (byte_off + GP3_HST_SRC_RANGE, *((unsigned long *)(tempdata + byte_off))); \
+#define WRITE_HOST_SOURCE_STRING32(dataptr, dataoffset, dword_count) \
+{ \
+ unsigned long i; \
+ unsigned long tempdata = (unsigned long)dataptr + (dataoffset); \
+ unsigned long byte_off = 0; \
+ for (i = 0; i < dword_count; i++, byte_off += 4) \
+ WRITE_GP32 (byte_off + GP3_HST_SRC_RANGE, \
+ *((unsigned long *)(tempdata + byte_off))); \
}
#elif CIMARRON_OPTIMIZE_ABSTRACTED_ASM
@@ -428,13 +451,14 @@
* Write a series of DWORDS to video memory.
*-----------------------------------------------------------------*/
-#define WRITE_FB_STRING32(offset, dataptr, dword_count) \
-{ \
- unsigned long i; \
- unsigned long tempdata = (unsigned long)dataptr; \
- unsigned long byte_off = 0; \
- for (i = 0; i < dword_count; i++, byte_off += 4) \
- WRITE_FB32 ((offset) + byte_off, *((unsigned long *)(tempdata + byte_off))); \
+#define WRITE_FB_STRING32(offset, dataptr, dword_count) \
+{ \
+ unsigned long i; \
+ unsigned long tempdata = (unsigned long)dataptr; \
+ unsigned long byte_off = 0; \
+ for (i = 0; i < dword_count; i++, byte_off += 4) \
+ WRITE_FB32 ((offset) + byte_off, \
+ *((unsigned long *)(tempdata + byte_off))); \
}
/*-----------------------------------------------------------------
@@ -442,12 +466,12 @@
* Write a constant DWORD to multiple video memory addresses
*-----------------------------------------------------------------*/
-#define WRITE_FB_CONSTANT(offset, value, dword_count) \
-{ \
- unsigned long i; \
- unsigned long tempoffset = offset; \
- for (i = 0; i < dword_count; i++, tempoffset += 4) \
- WRITE_FB32 (tempoffset, value); \
+#define WRITE_FB_CONSTANT(offset, value, dword_count) \
+{ \
+ unsigned long i; \
+ unsigned long tempoffset = offset; \
+ for (i = 0; i < dword_count; i++, tempoffset += 4) \
+ WRITE_FB32 (tempoffset, value); \
}
/*-----------------------------------------------------------------
@@ -455,13 +479,14 @@
* Write a series of DWORDs to the GP host source register
*-----------------------------------------------------------------*/
-#define WRITE_HOST_SOURCE_STRING32(dataptr, dataoffset, dword_count) \
-{ \
- unsigned long i; \
- unsigned long tempdata = (unsigned long)dataptr + (dataoffset); \
- unsigned long byte_off = 0; \
- for (i = 0; i < dword_count; i++, byte_off += 4) \
- WRITE_GP32 (byte_off + GP3_HST_SRC_RANGE, *((unsigned long *)(tempdata + byte_off))); \
+#define WRITE_HOST_SOURCE_STRING32(dataptr, dataoffset, dword_count) \
+{ \
+ unsigned long i; \
+ unsigned long tempdata = (unsigned long)dataptr + (dataoffset); \
+ unsigned long byte_off = 0; \
+ for (i = 0; i < dword_count; i++, byte_off += 4) \
+ WRITE_GP32 (byte_off + GP3_HST_SRC_RANGE, \
+ *((unsigned long *)(tempdata + byte_off))); \
}
#endif
@@ -486,21 +511,22 @@
* Write a series of bytes to the host source register
*-----------------------------------------------------------------*/
-#define WRITE_HOST_SOURCE_STRING8(dataptr, dataoffset, byte_count) \
-{ \
- unsigned long temp1 = (unsigned long)dataptr + (dataoffset); \
- unsigned long temp2 = 0; \
- unsigned long shift = 0; \
- unsigned long counter; \
- if (byte_count) \
- { \
- for (counter = 0; counter < byte_count; counter++) \
- { \
- temp2 |= ((unsigned long)(*((unsigned char *)(temp1 + counter)))) << shift; \
- shift += 8; \
- } \
- WRITE_GP32 (GP3_HST_SRC, temp2); \
- } \
+#define WRITE_HOST_SOURCE_STRING8(dataptr, dataoffset, byte_count) \
+{ \
+ unsigned long temp1 = (unsigned long)dataptr + (dataoffset); \
+ unsigned long temp2 = 0; \
+ unsigned long shift = 0; \
+ unsigned long counter; \
+ if (byte_count) \
+ { \
+ for (counter = 0; counter < byte_count; counter++) \
+ { \
+ temp2 |= ((unsigned long)(*((unsigned char *) \
+ (temp1 + counter)))) << shift; \
+ shift += 8; \
+ } \
+ WRITE_GP32 (GP3_HST_SRC, temp2); \
+ } \
}
/*-----------------------------------------*/
@@ -528,15 +554,11 @@
*-------------------------------------------*/
#define OUTD(port, data) cim_outd(port, data)
-void cim_outd (unsigned short port, unsigned long data)
+void
+cim_outd(unsigned short port, unsigned long data)
{
- _asm {
- pushf
- mov eax, data
- mov dx, port
- out dx, eax
- popf
- }
+ _asm {
+ pushf mov eax, data mov dx, port out dx, eax popf}
}
/*-------------------------------------------
@@ -545,17 +567,14 @@ void cim_outd (unsigned short port, unsigned long data)
*-------------------------------------------*/
#define IND(port) cim_ind(port)
-unsigned long cim_ind (unsigned short port)
+unsigned long
+cim_ind(unsigned short port)
{
- unsigned long data;
- _asm {
- pushf
- mov dx, port
- in eax, dx
- mov data, eax
- popf
- }
- return data;
+ unsigned long data;
+
+ _asm {
+ pushf mov dx, port in eax, dx mov data, eax popf}
+ return data;
}
/*-------------------------------------------
@@ -564,15 +583,11 @@ unsigned long cim_ind (unsigned short port)
*-------------------------------------------*/
#define OUTW(port, data) cim_outw(port, data)
-void cim_outw (unsigned short port, unsigned short data)
+void
+cim_outw(unsigned short port, unsigned short data)
{
- _asm {
- pushf
- mov ax, data
- mov dx, port
- out dx, ax
- popf
- }
+ _asm {
+ pushf mov ax, data mov dx, port out dx, ax popf}
}
/*-------------------------------------------
@@ -581,17 +596,14 @@ void cim_outw (unsigned short port, unsigned short data)
*-------------------------------------------*/
#define INW(port) cim_inw(port)
-unsigned short cim_inw (unsigned short port)
+unsigned short
+cim_inw(unsigned short port)
{
- unsigned short data;
- _asm {
- pushf
- mov dx, port
- in ax, dx
- mov data, ax
- popf
- }
- return data;
+ unsigned short data;
+
+ _asm {
+ pushf mov dx, port in ax, dx mov data, ax popf}
+ return data;
}
/*-------------------------------------------
@@ -600,15 +612,11 @@ unsigned short cim_inw (unsigned short port)
*-------------------------------------------*/
#define OUTB(port, data) cim_outb(port, data)
-void cim_outb (unsigned short port, unsigned char data)
+void
+cim_outb(unsigned short port, unsigned char data)
{
- _asm {
- pushf
- mov al, data
- mov dx, port
- out dx, al
- popf
- }
+ _asm {
+ pushf mov al, data mov dx, port out dx, al popf}
}
/*-------------------------------------------
@@ -617,17 +625,14 @@ void cim_outb (unsigned short port, unsigned char data)
*-------------------------------------------*/
#define INB(port) cim_inb(port)
-unsigned char cim_inb (unsigned short port)
+unsigned char
+cim_inb(unsigned short port)
{
- unsigned char data;
- _asm {
- pushf
- mov dx, port
- in al, dx
- mov data, al
- popf
- }
- return data;
+ unsigned char data;
+
+ _asm {
+ pushf mov dx, port in al, dx mov data, al popf}
+ return data;
}
#elif CIMARRON_IO_ABSTRACTED_ASM
@@ -638,10 +643,11 @@ unsigned char cim_inb (unsigned short port)
*-------------------------------------------*/
#define OUTD(port, data) cim_outd(port, data)
-void cim_outd (unsigned short port, unsigned long data);
-void cim_outd (unsigned short port, unsigned long data)
+void cim_outd(unsigned short port, unsigned long data);
+void
+cim_outd(unsigned short port, unsigned long data)
{
- __asm__ __volatile__ ("outl %0,%w1" : : "a" (data), "Nd" (port));
+ __asm__ __volatile__("outl %0,%w1"::"a"(data), "Nd"(port));
}
/*-------------------------------------------
@@ -650,11 +656,12 @@ void cim_outd (unsigned short port, unsigned long data)
*-------------------------------------------*/
#define IND(port) cim_ind(port)
-unsigned long cim_ind (unsigned short port);
-unsigned long cim_ind (unsigned short port)
+unsigned long cim_ind(unsigned short port);
+unsigned long
+cim_ind(unsigned short port)
{
- unsigned long value;
- __asm__ __volatile__ ("inl %w1,%0" : "=a" (value) : "Nd" (port) );
+ unsigned long value;
+ __asm__ __volatile__("inl %w1,%0":"=a"(value):"Nd"(port));
return value;
}
@@ -665,10 +672,11 @@ unsigned long cim_ind (unsigned short port)
*-------------------------------------------*/
#define OUTW(port, data) cim_outw(port, data)
-void cim_outw (unsigned short port, unsigned short data);
-void cim_outw (unsigned short port, unsigned short data)
+void cim_outw(unsigned short port, unsigned short data);
+void
+cim_outw(unsigned short port, unsigned short data)
{
- __asm__ volatile ("out %0,%1" : : "a" (data),"d" (port));
+ __asm__ volatile ("out %0,%1"::"a" (data), "d"(port));
}
/*-------------------------------------------
@@ -677,11 +685,13 @@ void cim_outw (unsigned short port, unsigned short data)
*-------------------------------------------*/
#define INW(port) cim_inw(port)
-unsigned short cim_inw (unsigned short port);
-unsigned short cim_inw (unsigned short port)
+unsigned short cim_inw(unsigned short port);
+unsigned short
+cim_inw(unsigned short port)
{
- unsigned short value;
- __asm__ volatile ("in %1,%0" : "=a" (value) : "d" (port));
+ unsigned short value;
+ __asm__ volatile ("in %1,%0":"=a" (value):"d"(port));
+
return value;
}
@@ -692,12 +702,13 @@ unsigned short cim_inw (unsigned short port)
#define INB(port) cim_inb(port)
unsigned char cim_inb(unsigned short port);
-unsigned char cim_inb(unsigned short port)
+unsigned char
+cim_inb(unsigned short port)
{
- unsigned char value;
- __asm__ volatile ("inb %1,%0":"=a" (value):"d"(port));
+ unsigned char value;
+ __asm__ volatile ("inb %1,%0":"=a" (value):"d"(port));
- return value;
+ return value;
}
/*-------------------------------------------
@@ -707,9 +718,10 @@ unsigned char cim_inb(unsigned short port)
#define OUTB(port) cim_outb(port)
void cim_outb(unsigned short port, unsigned char data);
-void cim_outb(unsigned short port, unsigned char data)
+void
+cim_outb(unsigned short port, unsigned char data)
{
- __asm__ volatile ("outb %0,%1"::"a" (data), "d"(port));
+ __asm__ volatile ("outb %0,%1"::"a" (data), "d"(port));
}
#endif