mirror of
https://github.com/momo5502/emulator.git
synced 2026-01-24 22:21:03 +00:00
Support reading and writing memory
This commit is contained in:
@@ -8,7 +8,11 @@ import { Event, unionToEvent, unionListToEvent } from '../debugger/event.js';
|
||||
import { GetStateRequest, GetStateRequestT } from '../debugger/get-state-request.js';
|
||||
import { GetStateResponse, GetStateResponseT } from '../debugger/get-state-response.js';
|
||||
import { PauseRequest, PauseRequestT } from '../debugger/pause-request.js';
|
||||
import { ReadMemoryRequest, ReadMemoryRequestT } from '../debugger/read-memory-request.js';
|
||||
import { ReadMemoryResponse, ReadMemoryResponseT } from '../debugger/read-memory-response.js';
|
||||
import { RunRequest, RunRequestT } from '../debugger/run-request.js';
|
||||
import { WriteMemoryRequest, WriteMemoryRequestT } from '../debugger/write-memory-request.js';
|
||||
import { WriteMemoryResponse, WriteMemoryResponseT } from '../debugger/write-memory-response.js';
|
||||
|
||||
|
||||
export class DebugEvent implements flatbuffers.IUnpackableObject<DebugEventT> {
|
||||
@@ -96,7 +100,7 @@ unpackTo(_o: DebugEventT): void {
|
||||
export class DebugEventT implements flatbuffers.IGeneratedObject {
|
||||
constructor(
|
||||
public eventType: Event = Event.NONE,
|
||||
public event: GetStateRequestT|GetStateResponseT|PauseRequestT|RunRequestT|null = null
|
||||
public event: GetStateRequestT|GetStateResponseT|PauseRequestT|ReadMemoryRequestT|ReadMemoryResponseT|RunRequestT|WriteMemoryRequestT|WriteMemoryResponseT|null = null
|
||||
){}
|
||||
|
||||
|
||||
|
||||
@@ -5,7 +5,11 @@
|
||||
import { GetStateRequest, GetStateRequestT } from '../debugger/get-state-request.js';
|
||||
import { GetStateResponse, GetStateResponseT } from '../debugger/get-state-response.js';
|
||||
import { PauseRequest, PauseRequestT } from '../debugger/pause-request.js';
|
||||
import { ReadMemoryRequest, ReadMemoryRequestT } from '../debugger/read-memory-request.js';
|
||||
import { ReadMemoryResponse, ReadMemoryResponseT } from '../debugger/read-memory-response.js';
|
||||
import { RunRequest, RunRequestT } from '../debugger/run-request.js';
|
||||
import { WriteMemoryRequest, WriteMemoryRequestT } from '../debugger/write-memory-request.js';
|
||||
import { WriteMemoryResponse, WriteMemoryResponseT } from '../debugger/write-memory-response.js';
|
||||
|
||||
|
||||
export enum Event {
|
||||
@@ -13,34 +17,46 @@ export enum Event {
|
||||
PauseRequest = 1,
|
||||
RunRequest = 2,
|
||||
GetStateRequest = 3,
|
||||
GetStateResponse = 4
|
||||
GetStateResponse = 4,
|
||||
WriteMemoryRequest = 5,
|
||||
WriteMemoryResponse = 6,
|
||||
ReadMemoryRequest = 7,
|
||||
ReadMemoryResponse = 8
|
||||
}
|
||||
|
||||
export function unionToEvent(
|
||||
type: Event,
|
||||
accessor: (obj:GetStateRequest|GetStateResponse|PauseRequest|RunRequest) => GetStateRequest|GetStateResponse|PauseRequest|RunRequest|null
|
||||
): GetStateRequest|GetStateResponse|PauseRequest|RunRequest|null {
|
||||
accessor: (obj:GetStateRequest|GetStateResponse|PauseRequest|ReadMemoryRequest|ReadMemoryResponse|RunRequest|WriteMemoryRequest|WriteMemoryResponse) => GetStateRequest|GetStateResponse|PauseRequest|ReadMemoryRequest|ReadMemoryResponse|RunRequest|WriteMemoryRequest|WriteMemoryResponse|null
|
||||
): GetStateRequest|GetStateResponse|PauseRequest|ReadMemoryRequest|ReadMemoryResponse|RunRequest|WriteMemoryRequest|WriteMemoryResponse|null {
|
||||
switch(Event[type]) {
|
||||
case 'NONE': return null;
|
||||
case 'PauseRequest': return accessor(new PauseRequest())! as PauseRequest;
|
||||
case 'RunRequest': return accessor(new RunRequest())! as RunRequest;
|
||||
case 'GetStateRequest': return accessor(new GetStateRequest())! as GetStateRequest;
|
||||
case 'GetStateResponse': return accessor(new GetStateResponse())! as GetStateResponse;
|
||||
case 'WriteMemoryRequest': return accessor(new WriteMemoryRequest())! as WriteMemoryRequest;
|
||||
case 'WriteMemoryResponse': return accessor(new WriteMemoryResponse())! as WriteMemoryResponse;
|
||||
case 'ReadMemoryRequest': return accessor(new ReadMemoryRequest())! as ReadMemoryRequest;
|
||||
case 'ReadMemoryResponse': return accessor(new ReadMemoryResponse())! as ReadMemoryResponse;
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
|
||||
export function unionListToEvent(
|
||||
type: Event,
|
||||
accessor: (index: number, obj:GetStateRequest|GetStateResponse|PauseRequest|RunRequest) => GetStateRequest|GetStateResponse|PauseRequest|RunRequest|null,
|
||||
accessor: (index: number, obj:GetStateRequest|GetStateResponse|PauseRequest|ReadMemoryRequest|ReadMemoryResponse|RunRequest|WriteMemoryRequest|WriteMemoryResponse) => GetStateRequest|GetStateResponse|PauseRequest|ReadMemoryRequest|ReadMemoryResponse|RunRequest|WriteMemoryRequest|WriteMemoryResponse|null,
|
||||
index: number
|
||||
): GetStateRequest|GetStateResponse|PauseRequest|RunRequest|null {
|
||||
): GetStateRequest|GetStateResponse|PauseRequest|ReadMemoryRequest|ReadMemoryResponse|RunRequest|WriteMemoryRequest|WriteMemoryResponse|null {
|
||||
switch(Event[type]) {
|
||||
case 'NONE': return null;
|
||||
case 'PauseRequest': return accessor(index, new PauseRequest())! as PauseRequest;
|
||||
case 'RunRequest': return accessor(index, new RunRequest())! as RunRequest;
|
||||
case 'GetStateRequest': return accessor(index, new GetStateRequest())! as GetStateRequest;
|
||||
case 'GetStateResponse': return accessor(index, new GetStateResponse())! as GetStateResponse;
|
||||
case 'WriteMemoryRequest': return accessor(index, new WriteMemoryRequest())! as WriteMemoryRequest;
|
||||
case 'WriteMemoryResponse': return accessor(index, new WriteMemoryResponse())! as WriteMemoryResponse;
|
||||
case 'ReadMemoryRequest': return accessor(index, new ReadMemoryRequest())! as ReadMemoryRequest;
|
||||
case 'ReadMemoryResponse': return accessor(index, new ReadMemoryResponse())! as ReadMemoryResponse;
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
|
||||
110
page/src/fb/debugger/read-memory-request.ts
Normal file
110
page/src/fb/debugger/read-memory-request.ts
Normal file
@@ -0,0 +1,110 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
|
||||
import * as flatbuffers from 'flatbuffers';
|
||||
|
||||
|
||||
|
||||
export class ReadMemoryRequest implements flatbuffers.IUnpackableObject<ReadMemoryRequestT> {
|
||||
bb: flatbuffers.ByteBuffer|null = null;
|
||||
bb_pos = 0;
|
||||
__init(i:number, bb:flatbuffers.ByteBuffer):ReadMemoryRequest {
|
||||
this.bb_pos = i;
|
||||
this.bb = bb;
|
||||
return this;
|
||||
}
|
||||
|
||||
static getRootAsReadMemoryRequest(bb:flatbuffers.ByteBuffer, obj?:ReadMemoryRequest):ReadMemoryRequest {
|
||||
return (obj || new ReadMemoryRequest()).__init(bb.readInt32(bb.position()) + bb.position(), bb);
|
||||
}
|
||||
|
||||
static getSizePrefixedRootAsReadMemoryRequest(bb:flatbuffers.ByteBuffer, obj?:ReadMemoryRequest):ReadMemoryRequest {
|
||||
bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);
|
||||
return (obj || new ReadMemoryRequest()).__init(bb.readInt32(bb.position()) + bb.position(), bb);
|
||||
}
|
||||
|
||||
address():bigint {
|
||||
const offset = this.bb!.__offset(this.bb_pos, 4);
|
||||
return offset ? this.bb!.readUint64(this.bb_pos + offset) : BigInt('0');
|
||||
}
|
||||
|
||||
mutate_address(value:bigint):boolean {
|
||||
const offset = this.bb!.__offset(this.bb_pos, 4);
|
||||
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.bb!.writeUint64(this.bb_pos + offset, value);
|
||||
return true;
|
||||
}
|
||||
|
||||
size():number {
|
||||
const offset = this.bb!.__offset(this.bb_pos, 6);
|
||||
return offset ? this.bb!.readUint32(this.bb_pos + offset) : 0;
|
||||
}
|
||||
|
||||
mutate_size(value:number):boolean {
|
||||
const offset = this.bb!.__offset(this.bb_pos, 6);
|
||||
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.bb!.writeUint32(this.bb_pos + offset, value);
|
||||
return true;
|
||||
}
|
||||
|
||||
static startReadMemoryRequest(builder:flatbuffers.Builder) {
|
||||
builder.startObject(2);
|
||||
}
|
||||
|
||||
static addAddress(builder:flatbuffers.Builder, address:bigint) {
|
||||
builder.addFieldInt64(0, address, BigInt('0'));
|
||||
}
|
||||
|
||||
static addSize(builder:flatbuffers.Builder, size:number) {
|
||||
builder.addFieldInt32(1, size, 0);
|
||||
}
|
||||
|
||||
static endReadMemoryRequest(builder:flatbuffers.Builder):flatbuffers.Offset {
|
||||
const offset = builder.endObject();
|
||||
return offset;
|
||||
}
|
||||
|
||||
static createReadMemoryRequest(builder:flatbuffers.Builder, address:bigint, size:number):flatbuffers.Offset {
|
||||
ReadMemoryRequest.startReadMemoryRequest(builder);
|
||||
ReadMemoryRequest.addAddress(builder, address);
|
||||
ReadMemoryRequest.addSize(builder, size);
|
||||
return ReadMemoryRequest.endReadMemoryRequest(builder);
|
||||
}
|
||||
|
||||
unpack(): ReadMemoryRequestT {
|
||||
return new ReadMemoryRequestT(
|
||||
this.address(),
|
||||
this.size()
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
unpackTo(_o: ReadMemoryRequestT): void {
|
||||
_o.address = this.address();
|
||||
_o.size = this.size();
|
||||
}
|
||||
}
|
||||
|
||||
export class ReadMemoryRequestT implements flatbuffers.IGeneratedObject {
|
||||
constructor(
|
||||
public address: bigint = BigInt('0'),
|
||||
public size: number = 0
|
||||
){}
|
||||
|
||||
|
||||
pack(builder:flatbuffers.Builder): flatbuffers.Offset {
|
||||
return ReadMemoryRequest.createReadMemoryRequest(builder,
|
||||
this.address,
|
||||
this.size
|
||||
);
|
||||
}
|
||||
}
|
||||
123
page/src/fb/debugger/read-memory-response.ts
Normal file
123
page/src/fb/debugger/read-memory-response.ts
Normal file
@@ -0,0 +1,123 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
|
||||
import * as flatbuffers from 'flatbuffers';
|
||||
|
||||
|
||||
|
||||
export class ReadMemoryResponse implements flatbuffers.IUnpackableObject<ReadMemoryResponseT> {
|
||||
bb: flatbuffers.ByteBuffer|null = null;
|
||||
bb_pos = 0;
|
||||
__init(i:number, bb:flatbuffers.ByteBuffer):ReadMemoryResponse {
|
||||
this.bb_pos = i;
|
||||
this.bb = bb;
|
||||
return this;
|
||||
}
|
||||
|
||||
static getRootAsReadMemoryResponse(bb:flatbuffers.ByteBuffer, obj?:ReadMemoryResponse):ReadMemoryResponse {
|
||||
return (obj || new ReadMemoryResponse()).__init(bb.readInt32(bb.position()) + bb.position(), bb);
|
||||
}
|
||||
|
||||
static getSizePrefixedRootAsReadMemoryResponse(bb:flatbuffers.ByteBuffer, obj?:ReadMemoryResponse):ReadMemoryResponse {
|
||||
bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);
|
||||
return (obj || new ReadMemoryResponse()).__init(bb.readInt32(bb.position()) + bb.position(), bb);
|
||||
}
|
||||
|
||||
address():bigint {
|
||||
const offset = this.bb!.__offset(this.bb_pos, 4);
|
||||
return offset ? this.bb!.readUint64(this.bb_pos + offset) : BigInt('0');
|
||||
}
|
||||
|
||||
mutate_address(value:bigint):boolean {
|
||||
const offset = this.bb!.__offset(this.bb_pos, 4);
|
||||
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.bb!.writeUint64(this.bb_pos + offset, value);
|
||||
return true;
|
||||
}
|
||||
|
||||
data(index: number):number|null {
|
||||
const offset = this.bb!.__offset(this.bb_pos, 6);
|
||||
return offset ? this.bb!.readUint8(this.bb!.__vector(this.bb_pos + offset) + index) : 0;
|
||||
}
|
||||
|
||||
dataLength():number {
|
||||
const offset = this.bb!.__offset(this.bb_pos, 6);
|
||||
return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;
|
||||
}
|
||||
|
||||
dataArray():Uint8Array|null {
|
||||
const offset = this.bb!.__offset(this.bb_pos, 6);
|
||||
return offset ? new Uint8Array(this.bb!.bytes().buffer, this.bb!.bytes().byteOffset + this.bb!.__vector(this.bb_pos + offset), this.bb!.__vector_len(this.bb_pos + offset)) : null;
|
||||
}
|
||||
|
||||
static startReadMemoryResponse(builder:flatbuffers.Builder) {
|
||||
builder.startObject(2);
|
||||
}
|
||||
|
||||
static addAddress(builder:flatbuffers.Builder, address:bigint) {
|
||||
builder.addFieldInt64(0, address, BigInt('0'));
|
||||
}
|
||||
|
||||
static addData(builder:flatbuffers.Builder, dataOffset:flatbuffers.Offset) {
|
||||
builder.addFieldOffset(1, dataOffset, 0);
|
||||
}
|
||||
|
||||
static createDataVector(builder:flatbuffers.Builder, data:number[]|Uint8Array):flatbuffers.Offset {
|
||||
builder.startVector(1, data.length, 1);
|
||||
for (let i = data.length - 1; i >= 0; i--) {
|
||||
builder.addInt8(data[i]!);
|
||||
}
|
||||
return builder.endVector();
|
||||
}
|
||||
|
||||
static startDataVector(builder:flatbuffers.Builder, numElems:number) {
|
||||
builder.startVector(1, numElems, 1);
|
||||
}
|
||||
|
||||
static endReadMemoryResponse(builder:flatbuffers.Builder):flatbuffers.Offset {
|
||||
const offset = builder.endObject();
|
||||
return offset;
|
||||
}
|
||||
|
||||
static createReadMemoryResponse(builder:flatbuffers.Builder, address:bigint, dataOffset:flatbuffers.Offset):flatbuffers.Offset {
|
||||
ReadMemoryResponse.startReadMemoryResponse(builder);
|
||||
ReadMemoryResponse.addAddress(builder, address);
|
||||
ReadMemoryResponse.addData(builder, dataOffset);
|
||||
return ReadMemoryResponse.endReadMemoryResponse(builder);
|
||||
}
|
||||
|
||||
unpack(): ReadMemoryResponseT {
|
||||
return new ReadMemoryResponseT(
|
||||
this.address(),
|
||||
this.bb!.createScalarList<number>(this.data.bind(this), this.dataLength())
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
unpackTo(_o: ReadMemoryResponseT): void {
|
||||
_o.address = this.address();
|
||||
_o.data = this.bb!.createScalarList<number>(this.data.bind(this), this.dataLength());
|
||||
}
|
||||
}
|
||||
|
||||
export class ReadMemoryResponseT implements flatbuffers.IGeneratedObject {
|
||||
constructor(
|
||||
public address: bigint = BigInt('0'),
|
||||
public data: (number)[] = []
|
||||
){}
|
||||
|
||||
|
||||
pack(builder:flatbuffers.Builder): flatbuffers.Offset {
|
||||
const data = ReadMemoryResponse.createDataVector(builder, this.data);
|
||||
|
||||
return ReadMemoryResponse.createReadMemoryResponse(builder,
|
||||
this.address,
|
||||
data
|
||||
);
|
||||
}
|
||||
}
|
||||
123
page/src/fb/debugger/write-memory-request.ts
Normal file
123
page/src/fb/debugger/write-memory-request.ts
Normal file
@@ -0,0 +1,123 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
|
||||
import * as flatbuffers from 'flatbuffers';
|
||||
|
||||
|
||||
|
||||
export class WriteMemoryRequest implements flatbuffers.IUnpackableObject<WriteMemoryRequestT> {
|
||||
bb: flatbuffers.ByteBuffer|null = null;
|
||||
bb_pos = 0;
|
||||
__init(i:number, bb:flatbuffers.ByteBuffer):WriteMemoryRequest {
|
||||
this.bb_pos = i;
|
||||
this.bb = bb;
|
||||
return this;
|
||||
}
|
||||
|
||||
static getRootAsWriteMemoryRequest(bb:flatbuffers.ByteBuffer, obj?:WriteMemoryRequest):WriteMemoryRequest {
|
||||
return (obj || new WriteMemoryRequest()).__init(bb.readInt32(bb.position()) + bb.position(), bb);
|
||||
}
|
||||
|
||||
static getSizePrefixedRootAsWriteMemoryRequest(bb:flatbuffers.ByteBuffer, obj?:WriteMemoryRequest):WriteMemoryRequest {
|
||||
bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);
|
||||
return (obj || new WriteMemoryRequest()).__init(bb.readInt32(bb.position()) + bb.position(), bb);
|
||||
}
|
||||
|
||||
address():bigint {
|
||||
const offset = this.bb!.__offset(this.bb_pos, 4);
|
||||
return offset ? this.bb!.readUint64(this.bb_pos + offset) : BigInt('0');
|
||||
}
|
||||
|
||||
mutate_address(value:bigint):boolean {
|
||||
const offset = this.bb!.__offset(this.bb_pos, 4);
|
||||
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.bb!.writeUint64(this.bb_pos + offset, value);
|
||||
return true;
|
||||
}
|
||||
|
||||
data(index: number):number|null {
|
||||
const offset = this.bb!.__offset(this.bb_pos, 6);
|
||||
return offset ? this.bb!.readUint8(this.bb!.__vector(this.bb_pos + offset) + index) : 0;
|
||||
}
|
||||
|
||||
dataLength():number {
|
||||
const offset = this.bb!.__offset(this.bb_pos, 6);
|
||||
return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;
|
||||
}
|
||||
|
||||
dataArray():Uint8Array|null {
|
||||
const offset = this.bb!.__offset(this.bb_pos, 6);
|
||||
return offset ? new Uint8Array(this.bb!.bytes().buffer, this.bb!.bytes().byteOffset + this.bb!.__vector(this.bb_pos + offset), this.bb!.__vector_len(this.bb_pos + offset)) : null;
|
||||
}
|
||||
|
||||
static startWriteMemoryRequest(builder:flatbuffers.Builder) {
|
||||
builder.startObject(2);
|
||||
}
|
||||
|
||||
static addAddress(builder:flatbuffers.Builder, address:bigint) {
|
||||
builder.addFieldInt64(0, address, BigInt('0'));
|
||||
}
|
||||
|
||||
static addData(builder:flatbuffers.Builder, dataOffset:flatbuffers.Offset) {
|
||||
builder.addFieldOffset(1, dataOffset, 0);
|
||||
}
|
||||
|
||||
static createDataVector(builder:flatbuffers.Builder, data:number[]|Uint8Array):flatbuffers.Offset {
|
||||
builder.startVector(1, data.length, 1);
|
||||
for (let i = data.length - 1; i >= 0; i--) {
|
||||
builder.addInt8(data[i]!);
|
||||
}
|
||||
return builder.endVector();
|
||||
}
|
||||
|
||||
static startDataVector(builder:flatbuffers.Builder, numElems:number) {
|
||||
builder.startVector(1, numElems, 1);
|
||||
}
|
||||
|
||||
static endWriteMemoryRequest(builder:flatbuffers.Builder):flatbuffers.Offset {
|
||||
const offset = builder.endObject();
|
||||
return offset;
|
||||
}
|
||||
|
||||
static createWriteMemoryRequest(builder:flatbuffers.Builder, address:bigint, dataOffset:flatbuffers.Offset):flatbuffers.Offset {
|
||||
WriteMemoryRequest.startWriteMemoryRequest(builder);
|
||||
WriteMemoryRequest.addAddress(builder, address);
|
||||
WriteMemoryRequest.addData(builder, dataOffset);
|
||||
return WriteMemoryRequest.endWriteMemoryRequest(builder);
|
||||
}
|
||||
|
||||
unpack(): WriteMemoryRequestT {
|
||||
return new WriteMemoryRequestT(
|
||||
this.address(),
|
||||
this.bb!.createScalarList<number>(this.data.bind(this), this.dataLength())
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
unpackTo(_o: WriteMemoryRequestT): void {
|
||||
_o.address = this.address();
|
||||
_o.data = this.bb!.createScalarList<number>(this.data.bind(this), this.dataLength());
|
||||
}
|
||||
}
|
||||
|
||||
export class WriteMemoryRequestT implements flatbuffers.IGeneratedObject {
|
||||
constructor(
|
||||
public address: bigint = BigInt('0'),
|
||||
public data: (number)[] = []
|
||||
){}
|
||||
|
||||
|
||||
pack(builder:flatbuffers.Builder): flatbuffers.Offset {
|
||||
const data = WriteMemoryRequest.createDataVector(builder, this.data);
|
||||
|
||||
return WriteMemoryRequest.createWriteMemoryRequest(builder,
|
||||
this.address,
|
||||
data
|
||||
);
|
||||
}
|
||||
}
|
||||
135
page/src/fb/debugger/write-memory-response.ts
Normal file
135
page/src/fb/debugger/write-memory-response.ts
Normal file
@@ -0,0 +1,135 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
||||
|
||||
import * as flatbuffers from 'flatbuffers';
|
||||
|
||||
|
||||
|
||||
export class WriteMemoryResponse implements flatbuffers.IUnpackableObject<WriteMemoryResponseT> {
|
||||
bb: flatbuffers.ByteBuffer|null = null;
|
||||
bb_pos = 0;
|
||||
__init(i:number, bb:flatbuffers.ByteBuffer):WriteMemoryResponse {
|
||||
this.bb_pos = i;
|
||||
this.bb = bb;
|
||||
return this;
|
||||
}
|
||||
|
||||
static getRootAsWriteMemoryResponse(bb:flatbuffers.ByteBuffer, obj?:WriteMemoryResponse):WriteMemoryResponse {
|
||||
return (obj || new WriteMemoryResponse()).__init(bb.readInt32(bb.position()) + bb.position(), bb);
|
||||
}
|
||||
|
||||
static getSizePrefixedRootAsWriteMemoryResponse(bb:flatbuffers.ByteBuffer, obj?:WriteMemoryResponse):WriteMemoryResponse {
|
||||
bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);
|
||||
return (obj || new WriteMemoryResponse()).__init(bb.readInt32(bb.position()) + bb.position(), bb);
|
||||
}
|
||||
|
||||
address():bigint {
|
||||
const offset = this.bb!.__offset(this.bb_pos, 4);
|
||||
return offset ? this.bb!.readUint64(this.bb_pos + offset) : BigInt('0');
|
||||
}
|
||||
|
||||
mutate_address(value:bigint):boolean {
|
||||
const offset = this.bb!.__offset(this.bb_pos, 4);
|
||||
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.bb!.writeUint64(this.bb_pos + offset, value);
|
||||
return true;
|
||||
}
|
||||
|
||||
size():number {
|
||||
const offset = this.bb!.__offset(this.bb_pos, 6);
|
||||
return offset ? this.bb!.readUint32(this.bb_pos + offset) : 0;
|
||||
}
|
||||
|
||||
mutate_size(value:number):boolean {
|
||||
const offset = this.bb!.__offset(this.bb_pos, 6);
|
||||
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.bb!.writeUint32(this.bb_pos + offset, value);
|
||||
return true;
|
||||
}
|
||||
|
||||
success():boolean {
|
||||
const offset = this.bb!.__offset(this.bb_pos, 8);
|
||||
return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false;
|
||||
}
|
||||
|
||||
mutate_success(value:boolean):boolean {
|
||||
const offset = this.bb!.__offset(this.bb_pos, 8);
|
||||
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.bb!.writeInt8(this.bb_pos + offset, +value);
|
||||
return true;
|
||||
}
|
||||
|
||||
static startWriteMemoryResponse(builder:flatbuffers.Builder) {
|
||||
builder.startObject(3);
|
||||
}
|
||||
|
||||
static addAddress(builder:flatbuffers.Builder, address:bigint) {
|
||||
builder.addFieldInt64(0, address, BigInt('0'));
|
||||
}
|
||||
|
||||
static addSize(builder:flatbuffers.Builder, size:number) {
|
||||
builder.addFieldInt32(1, size, 0);
|
||||
}
|
||||
|
||||
static addSuccess(builder:flatbuffers.Builder, success:boolean) {
|
||||
builder.addFieldInt8(2, +success, +false);
|
||||
}
|
||||
|
||||
static endWriteMemoryResponse(builder:flatbuffers.Builder):flatbuffers.Offset {
|
||||
const offset = builder.endObject();
|
||||
return offset;
|
||||
}
|
||||
|
||||
static createWriteMemoryResponse(builder:flatbuffers.Builder, address:bigint, size:number, success:boolean):flatbuffers.Offset {
|
||||
WriteMemoryResponse.startWriteMemoryResponse(builder);
|
||||
WriteMemoryResponse.addAddress(builder, address);
|
||||
WriteMemoryResponse.addSize(builder, size);
|
||||
WriteMemoryResponse.addSuccess(builder, success);
|
||||
return WriteMemoryResponse.endWriteMemoryResponse(builder);
|
||||
}
|
||||
|
||||
unpack(): WriteMemoryResponseT {
|
||||
return new WriteMemoryResponseT(
|
||||
this.address(),
|
||||
this.size(),
|
||||
this.success()
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
unpackTo(_o: WriteMemoryResponseT): void {
|
||||
_o.address = this.address();
|
||||
_o.size = this.size();
|
||||
_o.success = this.success();
|
||||
}
|
||||
}
|
||||
|
||||
export class WriteMemoryResponseT implements flatbuffers.IGeneratedObject {
|
||||
constructor(
|
||||
public address: bigint = BigInt('0'),
|
||||
public size: number = 0,
|
||||
public success: boolean = false
|
||||
){}
|
||||
|
||||
|
||||
pack(builder:flatbuffers.Builder): flatbuffers.Offset {
|
||||
return WriteMemoryResponse.createWriteMemoryResponse(builder,
|
||||
this.address,
|
||||
this.size,
|
||||
this.success
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user