Revision: 5997
http://sourceforge.net/p/jnode/svn/5997
Author: epr
Date: 2013-11-12 15:20:54 +0000 (Tue, 12 Nov 2013)
Log Message:
-----------
Avoid nullpointer exception.
Modified Paths:
--------------
trunk/core/src/driver/org/jnode/driver/chipset/i440BX/i82371AB_ACPI_SMBusControler.java
Modified: trunk/core/src/driver/org/jnode/driver/chipset/i440BX/i82371AB_ACPI_SMBusControler.java
===================================================================
--- trunk/core/src/driver/org/jnode/driver/chipset/i440BX/i82371AB_ACPI_SMBusControler.java 2013-11-12 15:20:24 UTC (rev 5996)
+++ trunk/core/src/driver/org/jnode/driver/chipset/i440BX/i82371AB_ACPI_SMBusControler.java 2013-11-12 15:20:54 UTC (rev 5997)
@@ -20,8 +20,11 @@
package org.jnode.driver.chipset.i440BX;
+import java.io.IOException;
import java.security.PrivilegedExceptionAction;
+
import javax.naming.NameNotFoundException;
+
import org.apache.log4j.Logger;
import org.jnode.driver.DeviceUtils;
import org.jnode.driver.DriverException;
@@ -129,12 +132,20 @@
public boolean sendByte(byte address, byte value)
throws java.security.InvalidParameterException, java.lang.UnsupportedOperationException {
+ if (ioRes == null) {
+ throw new UnsupportedOperationException("IO resource not available");
+ }
ioRes.outPortByte(hostAddressIORegister, address | ADDRESS_WRITE_TAG);
ioRes.outPortByte(hostData0IORegister, value);
ioRes.outPortByte(hostCommandIORegister, value);
ioRes.outPortByte(hostControlIORegister,
CONTROL_START | CONTROL_PROTOCOL_READWRITE_BYTE | CONTROL_INTERUPT_DISABLED);
- byte status = statusWait();
+ byte status;
+ try {
+ status = statusWait();
+ } catch (IOException e) {
+ throw new UnsupportedOperationException(e);
+ }
return status == 0;
}
@@ -317,12 +328,15 @@
}
- private void reset() {
+ private void reset() throws IOException {
statusWait(); // just make sure it is available (may be errors due to last conditions so...
ioRes.outPortByte(hostStatusIORegister, 0x1e); // ...clears the error bits
}
- private byte statusWait() {
+ private byte statusWait() throws IOException {
+ if (ioRes == null) {
+ throw new IOException("IO resource not available");
+ }
byte status = 0;
for (int i = 0; i < 500; i++) ; // dumb delay : see specification update
status = (byte) ioRes.inPortByte(hostStatusIORegister);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|