package csp.scj.watchdog;
import javax.realtime.RawByte;
import javax.realtime.RawByteArray;
import javax.realtime.RawByteArrayRead;
import javax.realtime.RawByteArrayWrite;
import javax.realtime.RawByteRead;
import javax.realtime.RawByteWrite;
import javax.realtime.RawInt;
import javax.realtime.RawIntArray;
import javax.realtime.RawIntArrayRead;
import javax.realtime.RawIntArrayWrite;
import javax.realtime.RawIntRead;
import javax.realtime.RawIntWrite;
import javax.realtime.RawIntegralAccessFactory;
import javax.realtime.RawMemory;
import javax.realtime.RawMemoryName;
import javax.safetycritical.annotate.Level;
import javax.safetycritical.annotate.SCJAllowed;
import javax.safetycritical.annotate.SCJRestricted;
import com.jopdesign.sys.Native;
public class GeneralIOFactory implements RawIntegralAccessFactory{
@Override
@SCJAllowed(Level.LEVEL_0)
public RawMemoryName getName() {
return RawMemory.IO_MEM_MAPPED;
}
@Override
@SCJAllowed(Level.LEVEL_0)
@SCJRestricted(mayAllocate = false, maySelfSuspend = false)
public RawByte newRawByte(long offset) {
// TODO Auto-generated method stub
return null;
}
@Override
@SCJAllowed(Level.LEVEL_0)
@SCJRestricted(mayAllocate = false, maySelfSuspend = false)
public RawByteArray newRawByteArray(long base, int entries) {
// TODO Auto-generated method stub
return null;
}
@Override
@SCJAllowed(Level.LEVEL_0)
@SCJRestricted(mayAllocate = false, maySelfSuspend = false)
public RawByteArrayRead newRawByteArrayRead(long base, int entries) {
// TODO Auto-generated method stub
return null;
}
@Override
@SCJAllowed(Level.LEVEL_0)
@SCJRestricted(mayAllocate = false, maySelfSuspend = false)
public RawByteArrayWrite newRawByteArrayWrite(long base, int entries) {
// TODO Auto-generated method stub
return null;
}
@Override
@SCJAllowed(Level.LEVEL_0)
@SCJRestricted(mayAllocate = false, maySelfSuspend = false)
public RawByteRead newRawByteRead(long offset) {
// TODO Auto-generated method stub
return null;
}
@Override
@SCJAllowed(Level.LEVEL_0)
@SCJRestricted(mayAllocate = false, maySelfSuspend = false)
public RawByteWrite newRawByteWrite(long offset) {
// TODO Auto-generated method stub
return null;
}
@Override
@SCJAllowed(Level.LEVEL_0)
@SCJRestricted(mayAllocate = false, maySelfSuspend = false)
public RawInt newRawInt(long offset) {
final int address = (int) offset;
return new RawInt() {
@Override
@SCJAllowed(Level.LEVEL_0)
@SCJRestricted(mayAllocate = false, maySelfSuspend = false)
public void put(int value) {
Native.wrMem(value, address);
}
@Override
@SCJAllowed(Level.LEVEL_0)
@SCJRestricted(mayAllocate = false, maySelfSuspend = false)
public int get() {
return Native.rdMem(address);
}
};
}
@Override
@SCJAllowed(Level.LEVEL_0)
@SCJRestricted(mayAllocate = false, maySelfSuspend = false)
public RawIntRead newRawIntRead(long offset) {
final int address = (int) offset;
return new RawIntRead() {
@Override
@SCJAllowed(Level.LEVEL_0)
@SCJRestricted(mayAllocate = false, maySelfSuspend = false)
public int get() {
return Native.rdMem(address);
}
};
}
@Override
@SCJAllowed(Level.LEVEL_0)
@SCJRestricted(mayAllocate = false, maySelfSuspend = false)
public RawIntWrite newRawIntWrite(long offset) {
final int address = (int) offset;
return new RawIntWrite() {
@Override
@SCJAllowed(Level.LEVEL_0)
@SCJRestricted(mayAllocate = false, maySelfSuspend = false)
public void put(int value) {
Native.wrMem(value, address);
}
};
}
@Override
@SCJAllowed(Level.LEVEL_0)
@SCJRestricted(mayAllocate = false, maySelfSuspend = false)
public RawIntArray newRawIntArray(long base, int entries) {
// TODO Auto-generated method stub
return null;
}
@Override
@SCJAllowed(Level.LEVEL_0)
@SCJRestricted(mayAllocate = false, maySelfSuspend = false)
public RawIntArrayRead newRawIntArrayRead(long base, int entries) {
// TODO Auto-generated method stub
return null;
}
@Override
@SCJAllowed(Level.LEVEL_0)
@SCJRestricted(mayAllocate = false, maySelfSuspend = false)
public RawIntArrayWrite newRawIntArrayWrite(long base, int entries) {
// TODO Auto-generated method stub
return null;
}
}