/*
This file is part of jpcsp.
Jpcsp is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Jpcsp is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Jpcsp. If not, see <http://www.gnu.org/licenses/>.
*/
package jpcsp.HLE.kernel.types;
public class SceNetIfMessage extends pspAbstractMemoryMappedStructure {
public static final int TYPE_SHORT_MESSAGE = 2;
public static final int TYPE_LONG_MESSAGE = 9 | TYPE_SHORT_MESSAGE;
public static final int TYPE_UNKNOWN_100 = 0x100;
public int nextDataAddr;
public int nextMessageAddr;
public int dataAddr;
public int dataLength;
public int unknown16;
public int unknown18;
public int unknown20;
public int unknown24;
public int unknown28;
public int unknown48;
public int unknown60;
public int unknown68;
public int unknown72;
@Override
protected void read() {
nextDataAddr = read32(); // Offset 0
nextMessageAddr = read32(); // Offset 4
dataAddr = read32(); // Offset 8
dataLength = read32(); // Offset 12
unknown16 = read16(); // Offset 16
unknown18 = read16(); // Offset 18
unknown20 = read32(); // Offset 20
unknown24 = read32(); // Offset 24
unknown28 = read32(); // Offset 28
readUnknown(16); // Offset 32
unknown48 = read32(); // Offset 48
readUnknown(8); // Offset 52
unknown60 = read32(); // Offset 60
readUnknown(4); // Offset 64
unknown68 = read32(); // Offset 68
unknown72 = read32(); // Offset 72
}
@Override
protected void write() {
write32(nextDataAddr);
write32(nextMessageAddr);
write32(dataAddr);
write32(dataLength);
write16((short) unknown16);
write16((short) unknown18);
write32(unknown20);
write32(unknown24);
write32(unknown28);
writeSkip(16);
write32(unknown48);
writeSkip(8);
write32(unknown60);
writeSkip(4);
write32(unknown68);
write32(unknown72);
}
@Override
public int sizeof() {
return 76;
}
@Override
public String toString() {
return String.format("nextDataAddr=0x%08X, nextMessageAddr=0x%08X, dataAddr=0x%08X, dataLength=0x%X, unknown16=0x%X, unknown18=0x%X, unknown20=0x%X, unknown24=0x%X, unknown28=0x%X", nextDataAddr, nextMessageAddr, dataAddr, dataLength, unknown16, unknown18, unknown20, unknown24, unknown28);
}
}