Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / sam-t2 / sam / cpus / vonk / ss / api / pli / src / SS_PliCommand.h
/*
* ========== Copyright Header Begin ==========================================
*
* OpenSPARC T2 Processor File: SS_PliCommand.h
* Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES.
*
* The above named program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public
* License version 2 as published by the Free Software Foundation.
*
* The above named program 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 this work; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
*
* ========== Copyright Header End ============================================
*/
#ifndef __SS_PliCommand_h__
#define __SS_PliCommand_h__
#include "SS_PliSocket.h"
class SS_PliCommand/*{{{*/
{
public:
enum
{
PLI_QUIT = 0x01,
PLI_SSTEP = 0x02,
PLI_IHWTW = 0x11,
PLI_ITLBREAD = 0x13,
PLI_ITLBWRITE = 0x15,
PLI_DHWTW = 0x12,
PLI_DTLBREAD = 0x14,
PLI_DTLBREAD_POP = 0x18,
PLI_DTLBWRITE = 0x16,
PLI_TLBLOOKUP = 0x17,
PLI_MEM_ST_ISSUE = 0x20,
PLI_MEM_ST_L2_COMMIT = 0x21,
PLI_MEM_ST_INV = 0x22,
PLI_MEM_ST_UPDATE = 0x23,
PLI_MEM_ST_ACK = 0x24,
PLI_MEM_LD_ISSUE = 0x25,
PLI_MEM_LD_DATA = 0x26,
PLI_MEM_LD_FILL = 0x27,
PLI_MEM_EVICT = 0x28,
PLI_MEM_EVICT_INV = 0x29,
PLI_MEM_SLAM = 0x30,
PLI_MEM_LD_POP = 0x31,
PLI_MEM_ST_POP = 0x32,
PLI_MEM_CHECK = 0x33,
PLI_MEM_DMA_STORE = 0x34,
PLI_MEM_DMA_STORE_START = 0x35,
PLI_INTP = 0x40,
PLI_ASR_READ = 0x45,
PLI_ASR_WRITE = 0x41,
PLI_ASI_READ = 0x43,
PLI_ASI_WRITE = 0x42,
PLI_CMP_WRITE = 0x44,
PLI_CSR_WRITE = 0x46,
PLI_CSR_READ = 0x47,
PLI_PIO_WRITE = 0x48,
PLI_PIO_READ = 0x49,
PLI_SSTEP_N = 0x50,
PLI_SSTEP_SNIPER = 0x51,
PLI_CMP_WRITE_MN = 0x60,
PLI_CSR_WRITE_MN = 0x61,
PLI_CSR_READ_MN = 0x62
};
};
/*}}}*/
// _MN - multiple-node
// _44PA - 2-byte strand-id field, 6-byte PA field, 8-byte VA field
// debug() : see SS_PliSocket.cc
class SS_PliCommand_QUIT/*{{{*/
{
public:
SS_PliCommand_QUIT( SS_PliSocket& socket )
{
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=QUIT\n");
}
};
/*}}}*/
class SS_PliCommand_SSTEP/*{{{*/
{
// %1=tid(1)
public:
SS_PliCommand_SSTEP( SS_PliSocket& socket, uint_t* n )
{
socket.read(1);
tid = socket.get8(0);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=SSTEP #%d tid=%d\n",*n,tid);
}
uint8_t tid;
};
/*}}}*/
class SS_PliCommand_SSTEP_44PA/*{{{*/
{
// %1=tid(2)
public:
SS_PliCommand_SSTEP_44PA( SS_PliSocket& socket, uint_t* n )
{
socket.read(2);
tid = socket.get16(0);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=SSTEP_44PA #%d tid=%d\n",*n,tid);
}
uint16_t tid;
};
/*}}}*/
class SS_PliCommand_SSTEP_N/*{{{*/
{
// %1=tid(1),%2=count(1)
// step 'count' instructions before conducting a register comparison, N3
// does dual issue.
public:
SS_PliCommand_SSTEP_N( SS_PliSocket& socket, uint_t* n )
{
socket.read(2);
tid = socket.get8(0);
count = socket.get8(1);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=SSTEP_N #%d tid=%d count=%d\n",*n,tid,count);
// we already increment *n by 1 before entering this function, so just
// add (count - 1), this is to maintain overall instruction count.
*n = *n + count - 1;
}
uint8_t tid;
uint8_t count;
};
/*}}}*/
class SS_PliCommand_SSTEP_N_44PA/*{{{*/
{
// %1=tid(2),%2=count(1)
// step 'count' instructions before conducting a register comparison, N3
// does dual issue.
public:
SS_PliCommand_SSTEP_N_44PA( SS_PliSocket& socket, uint_t* n )
{
socket.read(3);
tid = socket.get16(0);
count = socket.get8(2);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=SSTEP_N_44PA #%d tid=%d count=%d\n",*n,tid,count);
// we already increment *n by 1 before entering this function, so just
// add (count - 1), this is to maintain overall instruction count.
*n = *n + count - 1;
}
uint16_t tid;
uint8_t count;
};
/*}}}*/
class SS_PliCommand_SSTEP_SNIPER/*{{{*/
{
// %1=tid(1),%2=pa(8),%3=itype(1),%4=data(8)
// a "fake" step command generated by sniper, used to match up msync
// commands generated by sniper to simulate ldst traffic.
// the %data is valid only for load instruction, it used to compare with
// the msync's load data, an error should be raised if there is a miscompare
public:
SS_PliCommand_SSTEP_SNIPER( SS_PliSocket& socket, uint_t* n )
{
socket.read(18);
tid = socket.get8(0);
pa = socket.get64(1);
itype = socket.get8(9);
data = socket.get64(10);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=SSTEP_SNIPER #%d tid=%d pa=%#llx itype=%d data=%#llx\n",*n,tid,pa,itype,data);
}
uint8_t tid;
uint8_t itype;
uint64_t pa;
uint64_t data;
};
/*}}}*/
class SS_PliCommand_SSTEP_SNIPER_44PA/*{{{*/
{
// %1=tid(2),%2=pa(6),%3=itype(1),%4=data(8)
// a "fake" step command generated by sniper, used to match up msync
// commands generated by sniper to simulate ldst traffic.
// the %data is valid only for load instruction, it used to compare with
// the msync's load data, an error should be raised if there is a miscompare
public:
SS_PliCommand_SSTEP_SNIPER_44PA( SS_PliSocket& socket, uint_t* n )
{
socket.read(17);
tid = socket.get16(0);
pa = socket.get48(2);
itype = socket.get8(8);
data = socket.get64(9);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=SSTEP_SNIPER_44PA #%d tid=%d pa=%#llx itype=%d data=%#llx\n",*n,tid,pa,itype,data);
}
uint16_t tid;
uint8_t itype;
uint64_t pa;
uint64_t data;
};
/*}}}*/
class SS_PliCommand_ITLBREAD/*{{{*/
{
// %1=tid(1),%2=itlb-read-time(4)
public:
SS_PliCommand_ITLBREAD( SS_PliSocket& socket )
{
socket.read(5);
tid = socket.get8(0);
rtime = socket.get32(1);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=ITLBREAD tid=%d rtime=%d\n",tid,rtime);
}
uint8_t tid;
uint32_t rtime;
};
/*}}}*/
class SS_PliCommand_ITLBREAD_44PA/*{{{*/
{
// %1=tid(2),%2=itlb-read-time(4)
public:
SS_PliCommand_ITLBREAD_44PA( SS_PliSocket& socket )
{
socket.read(6);
tid = socket.get16(0);
rtime = socket.get32(2);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=ITLBREAD_44PA tid=%d rtime=%d\n",tid,rtime);
}
uint16_t tid;
uint32_t rtime;
};
/*}}}*/
class SS_PliCommand_ITLBWRITE/*{{{*/
{
// %1=tid(1),%2=itlb-write-time(4),%3=entry#(1)
public:
SS_PliCommand_ITLBWRITE( SS_PliSocket& socket )
{
socket.read(6);
tid = socket.get8(0);
wtime = socket.get32(1);
entry = socket.get8(5);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=ITLBWRITE tid=%d wtime=%d entry=%d\n",tid,wtime,entry);
}
uint8_t tid;
uint32_t wtime;
uint8_t entry;
};
class SS_PliCommand_ITLBWRITE_44PA/*{{{*/
{
// %1=tid(2),%2=itlb-write-time(4),%3=entry#(1)
public:
SS_PliCommand_ITLBWRITE_44PA( SS_PliSocket& socket )
{
socket.read(7);
tid = socket.get16(0);
wtime = socket.get32(2);
entry = socket.get8(6);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=ITLBWRITE_44PA tid=%d wtime=%d entry=%d\n",tid,wtime,entry);
}
uint16_t tid;
uint32_t wtime;
uint8_t entry;
};
/*}}}*/
class SS_PliCommand_DTLBREAD/*{{{*/
{
// %1=tid(1),%2=dtlb-read-time(4)
public:
SS_PliCommand_DTLBREAD( SS_PliSocket& socket )
{
socket.read(5);
tid = socket.get8(0);
rtime = socket.get32(1);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=DTLBREAD tid=%d rtime=%d\n",tid,rtime);
}
uint8_t tid;
uint32_t rtime;
};
/*}}}*/
class SS_PliCommand_DTLBREAD_44PA/*{{{*/
{
// %1=tid(2),%2=dtlb-read-time(4)
public:
SS_PliCommand_DTLBREAD_44PA( SS_PliSocket& socket )
{
socket.read(6);
tid = socket.get16(0);
rtime = socket.get32(2);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=DTLBREAD_44PA tid=%d rtime=%d\n",tid,rtime);
}
uint16_t tid;
uint32_t rtime;
};
/*}}}*/
class SS_PliCommand_DTLBWRITE/*{{{*/
{
// %1=tid(1),%2=dtlb-write-time(4),%3=entry#(1)
public:
SS_PliCommand_DTLBWRITE( SS_PliSocket& socket )
{
socket.read(6);
tid = socket.get8(0);
wtime = socket.get32(1);
entry = socket.get8(5);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=DTLBWRITE tid=%d wtime=%d entry=%d\n",tid,wtime,entry);
}
uint8_t tid;
uint32_t wtime;
uint8_t entry;
};
/*}}}*/
class SS_PliCommand_DTLBWRITE_44PA/*{{{*/
{
// %1=tid(2),%2=dtlb-write-time(4),%3=entry#(1)
public:
SS_PliCommand_DTLBWRITE_44PA( SS_PliSocket& socket )
{
socket.read(7);
tid = socket.get16(0);
wtime = socket.get32(2);
entry = socket.get8(6);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=DTLBWRITE_44PA tid=%d wtime=%d entry=%d\n",tid,wtime,entry);
}
uint16_t tid;
uint32_t wtime;
uint8_t entry;
};
/*}}}*/
class SS_PliCommand_IHWTW/*{{{*/
{
// %1=tid(1),%2=itlb-write-time(4),%3=VA(6),%4=entry#(1)
public:
SS_PliCommand_IHWTW( SS_PliSocket& socket )
{
socket.read(12);
tid = socket.get8(0);
wtime = socket.get32(1);
va = socket.get48(5);
entry = socket.get8(11);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=IHWTW tid=%d wtime=%d va=0x%llx entry=%d\n",tid,wtime,va,entry);
}
uint8_t tid;
uint32_t wtime;
uint64_t va;
uint8_t entry;
};
/*}}}*/
class SS_PliCommand_IHWTW_44PA/*{{{*/
{
// %1=tid(2),%2=itlb-write-time(4),%3=va(8),%4=entry#(1)
public:
SS_PliCommand_IHWTW_44PA( SS_PliSocket& socket )
{
socket.read(15);
tid = socket.get16(0);
wtime = socket.get32(2);
va = socket.get64(6);
entry = socket.get8(14);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=IHWTW_44PA tid=%d wtime=%d va=0x%llx entry=%d\n",tid,wtime,va,entry);
}
uint16_t tid;
uint32_t wtime;
uint64_t va;
uint8_t entry;
};
/*}}}*/
class SS_PliCommand_DHWTW/*{{{*/
{
// %1=tid(1),%2=dtlb-write-time(4),%3=VA(6),%4=asi(1),%5=entry#(1)
public:
SS_PliCommand_DHWTW( SS_PliSocket& socket )
{
socket.read(13);
tid = socket.get8(0);
wtime = socket.get32(1);
va = socket.get48(5);
asi = socket.get8(11);
entry = socket.get8(12);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=DHWTW tid=%d wtime=%d va=0x%llx asi=0x%x entry=%d\n",tid,wtime,va,asi,entry);
}
uint8_t tid;
uint32_t wtime;
uint64_t va;
uint8_t asi;
uint8_t entry;
};
/*}}}*/
class SS_PliCommand_DHWTW_44PA/*{{{*/
{
// %1=tid(2),%2=dtlb-write-time(4),%3=va(8),%4=asi(1),%5=entry#(1)
public:
SS_PliCommand_DHWTW_44PA( SS_PliSocket& socket )
{
socket.read(16);
tid = socket.get16(0);
wtime = socket.get32(2);
va = socket.get64(6);
asi = socket.get8(14);
entry = socket.get8(15);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=DHWTW_44PA tid=%d wtime=%d va=0x%llx asi=0x%x entry=%d\n",tid,wtime,va,asi,entry);
}
uint16_t tid;
uint32_t wtime;
uint64_t va;
uint8_t asi;
uint8_t entry;
};
/*}}}*/
class SS_PliCommand_TLBLOOKUP/*{{{*/
{
// %1=tid(1),%2=time(4),%3=asi(1)
public:
SS_PliCommand_TLBLOOKUP( SS_PliSocket& socket )
{
socket.read(6);
tid = socket.get8(0);
rtime = socket.get32(1);
asi = socket.get8(5);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=TLBLOOKUP tid=%d rtime=%d asi=0x%x\n",tid,rtime,asi);
}
uint8_t tid;
uint32_t rtime;
uint8_t asi;
};
/*}}}*/
class SS_PliCommand_TLBLOOKUP_44PA/*{{{*/
{
// %1=tid(2),%2=time(4),%3=asi(1)
public:
SS_PliCommand_TLBLOOKUP_44PA( SS_PliSocket& socket )
{
socket.read(7);
tid = socket.get16(0);
rtime = socket.get32(2);
asi = socket.get8(6);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=TLBLOOKUP_44PA tid=%d rtime=%d asi=0x%x\n",tid,rtime,asi);
}
uint16_t tid;
uint32_t rtime;
uint8_t asi;
};
/*}}}*/
class SS_PliCommand_DTLBREAD_POP/*{{{*/
{
// %1=tid(1) %2=time(4)
public:
SS_PliCommand_DTLBREAD_POP( SS_PliSocket& socket )
{
socket.read(5);
tid = socket.get8(0);
ptime = socket.get32(1);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=DTLBREAD_POP tid=%d ptime=%d\n",tid,ptime);
}
uint8_t tid;
uint32_t ptime;
};
/*}}}*/
class SS_PliCommand_DTLBREAD_POP_44PA/*{{{*/
{
// %1=tid(2) %2=time(4)
public:
SS_PliCommand_DTLBREAD_POP_44PA( SS_PliSocket& socket )
{
socket.read(6);
tid = socket.get16(0);
ptime = socket.get32(2);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=DTLBREAD_POP_44PA tid=%d ptime=%d\n",tid,ptime);
}
uint16_t tid;
uint32_t ptime;
};
/*}}}*/
class SS_PliCommand_MEM_ST_ISSUE/*{{{*/
{
// %1=tid(1),%2=pa(5),%3=data(8),%4=size_vec(1),%5=itype(1),%6=time(4)
public:
SS_PliCommand_MEM_ST_ISSUE( SS_PliSocket& socket )
{
socket.read(20);
tid = socket.get8(0);
pa = socket.get40(1);
data = socket.get64(6);
size_vec = socket.get8(14);
itype = socket.get8(15);
time = socket.get32(16);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=MEM_ST_ISSUE tid=%d pa=0x%llx data=0x%llx size_vec=0x%x itype=0x%x time=%d\n",tid,pa,data,size_vec,itype,time);
}
uint8_t tid;
uint64_t pa;
uint64_t data;
uint8_t size_vec;
uint8_t itype;
uint32_t time;
};
/*}}}*/
class SS_PliCommand_MEM_ST_ISSUE_44PA/*{{{*/
{
// %1=tid(2),%2=pa(6),%3=data(8),%4=size_vec(1),%5=itype(1),%6=time(4)
public:
SS_PliCommand_MEM_ST_ISSUE_44PA( SS_PliSocket& socket )
{
socket.read(22);
tid = socket.get16(0);
pa = socket.get48(2);
data = socket.get64(8);
size_vec = socket.get8(16);
itype = socket.get8(17);
time = socket.get32(18);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=MEM_ST_ISSUE_44PA tid=%d pa=0x%llx data=0x%llx size_vec=0x%x itype=0x%x time=%d\n",tid,pa,data,size_vec,itype,time);
}
uint16_t tid;
uint64_t pa;
uint64_t data;
uint8_t size_vec;
uint8_t itype;
uint32_t time;
};
/*}}}*/
class SS_PliCommand_MEM_ST_L2_COMMIT/*{{{*/
{
// %1=tid(1),%2=pa(5),%3=size_vec(1),%4=inv_vec(4),%5=l2_hit(1),%6=time(4)
public:
SS_PliCommand_MEM_ST_L2_COMMIT( SS_PliSocket& socket )
{
socket.read(16);
tid = socket.get8(0);
pa = socket.get40(1);
size_vec = socket.get8(6);
inv_vec = socket.get32(7);
l2hit = socket.get8(11);
time = socket.get32(12);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=MEM_ST_L2_COMMIT tid=%d pa=0x%llx size_vec=0x%x inv_vec=0x%x l2hit=0x%x time=%d\n",tid,pa,size_vec,inv_vec,l2hit,time);
}
uint8_t tid;
uint64_t pa;
uint8_t size_vec;
uint32_t inv_vec;
uint8_t l2hit;
uint32_t time;
};
/*}}}*/
class SS_PliCommand_MEM_ST_L2_COMMIT_44PA/*{{{*/
{
// %1=tid(2),%2=pa(6),%3=size_vec(1),%4=inv_vec(4?),%5=l2_hit(1),%6=time(4)
public:
SS_PliCommand_MEM_ST_L2_COMMIT_44PA( SS_PliSocket& socket )
{
socket.read(18);
tid = socket.get16(0);
pa = socket.get48(2);
size_vec = socket.get8(8);
inv_vec = socket.get32(9);
l2hit = socket.get8(13);
time = socket.get32(14);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=MEM_ST_L2_COMMIT_44PA tid=%d pa=0x%llx size_vec=0x%x inv_vec=0x%x l2hit=0x%x time=%d\n",tid,pa,size_vec,inv_vec,l2hit,time);
}
uint16_t tid;
uint64_t pa;
uint8_t size_vec;
uint32_t inv_vec;
uint8_t l2hit;
uint32_t time;
};
/*}}}*/
class SS_PliCommand_MEM_ST_INV/*{{{*/
{
// %1=cid(1),%2=src_tid(1),%3=pa(5),%4=time(4)
public:
SS_PliCommand_MEM_ST_INV( SS_PliSocket& socket )
{
socket.read(11);
cid = socket.get8(0);
tid = socket.get8(1);
pa = socket.get40(2);
time = socket.get32(7);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=MEM_ST_INV cid=%d tid=%d pa=0x%llx time=%d\n",cid,tid,pa,time);
}
uint8_t cid;
uint8_t tid;
uint64_t pa;
uint32_t time;
};
/*}}}*/
class SS_PliCommand_MEM_ST_INV_44PA/*{{{*/
{
// %1=cid(1),%2=src_tid(2),%3=pa(6),%4=time(4)
public:
SS_PliCommand_MEM_ST_INV_44PA( SS_PliSocket& socket )
{
socket.read(13);
cid = socket.get8(0);
tid = socket.get16(1);
pa = socket.get48(3);
time = socket.get32(9);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=MEM_ST_INV_44PA cid=%d tid=%d pa=0x%llx time=%d\n",cid,tid,pa,time);
}
uint8_t cid;
uint16_t tid;
uint64_t pa;
uint32_t time;
};
/*}}}*/
class SS_PliCommand_MEM_ST_UPDATE/*{{{*/
{
// %1=tid(1),%2=pa(5),%3=time(4)
public:
SS_PliCommand_MEM_ST_UPDATE( SS_PliSocket& socket )
{
socket.read(10);
tid = socket.get8(0);
pa = socket.get40(1);
time = socket.get32(6);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=MEM_ST_UPDATE tid=%d pa=0x%llx time=%d\n",tid,pa,time);
}
uint8_t tid;
uint64_t pa;
uint32_t time;
};
/*}}}*/
class SS_PliCommand_MEM_ST_UPDATE_44PA/*{{{*/
{
// %1=tid(2),%2=pa(6),%3=time(4)
public:
SS_PliCommand_MEM_ST_UPDATE_44PA( SS_PliSocket& socket )
{
socket.read(12);
tid = socket.get16(0);
pa = socket.get48(2);
time = socket.get32(8);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=MEM_ST_UPDATE_44PA tid=%d pa=0x%llx time=%d\n",tid,pa,time);
}
uint16_t tid;
uint64_t pa;
uint32_t time;
};
/*}}}*/
class SS_PliCommand_MEM_ST_ACK/*{{{*/
{
// %1=tid(1),%2=rmo(1),%3=time(4)
public:
SS_PliCommand_MEM_ST_ACK( SS_PliSocket& socket )
{
socket.read(6);
tid = socket.get8(0);
rmo = socket.get8(1);
time = socket.get32(2);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=MEM_ST_ACK tid=%d rmo=%d time=%d\n",tid,rmo,time);
}
uint8_t tid;
uint8_t rmo;
uint32_t time;
};
/*}}}*/
class SS_PliCommand_MEM_ST_ACK_44PA/*{{{*/
{
// %1=tid(2),%2=rmo(1),%3=time(4)
public:
SS_PliCommand_MEM_ST_ACK_44PA( SS_PliSocket& socket )
{
socket.read(7);
tid = socket.get16(0);
rmo = socket.get8(2);
time = socket.get32(3);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=MEM_ST_ACK_44PA tid=%d rmo=%d time=%d\n",tid,rmo,time);
}
uint16_t tid;
uint8_t rmo;
uint32_t time;
};
/*}}}*/
class SS_PliCommand_MEM_LD_ISSUE/*{{{*/
{
// %1=tid(1),%2=pa(5),%3=size(1),%4=itype(1),%5=time(4)
public:
SS_PliCommand_MEM_LD_ISSUE( SS_PliSocket& socket )
{
socket.read(12);
tid = socket.get8(0);
pa = socket.get40(1);
size = socket.get8(6);
itype = socket.get8(7);
time = socket.get32(8);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=MEM_LD_ISSUE tid=%d pa=0x%llx size=0x%x itype=0x%x time=%d\n",tid,pa,size,itype,time);
}
uint8_t tid;
uint64_t pa;
uint8_t size;
uint8_t itype;
uint32_t time;
};
/*}}}*/
class SS_PliCommand_MEM_LD_ISSUE_44PA/*{{{*/
{
// %1=tid(2),%2=pa(6),%3=size(1),%4=itype(1),%5=time(4)
public:
SS_PliCommand_MEM_LD_ISSUE_44PA( SS_PliSocket& socket )
{
socket.read(14);
tid = socket.get16(0);
pa = socket.get48(2);
size = socket.get8(8);
itype = socket.get8(9);
time = socket.get32(10);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=MEM_LD_ISSUE_44PA tid=%d pa=0x%llx size=0x%x itype=0x%x time=%d\n",tid,pa,size,itype,time);
}
uint16_t tid;
uint64_t pa;
uint8_t size;
uint8_t itype;
uint32_t time;
};
/*}}}*/
class SS_PliCommand_MEM_LD_DATA/*{{{*/
{
// %1=tid(1),%2=pa(5),%3=data_src(1),%4=time(4)
public:
SS_PliCommand_MEM_LD_DATA( SS_PliSocket& socket )
{
socket.read(11);
tid = socket.get8(0);
pa = socket.get40(1);
src = socket.get8(6);
time = socket.get32(7);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=MEM_LD_DATA tid=%d pa=0x%llx src=0x%x time=%d\n",tid,pa,src,time);
}
uint8_t tid;
uint64_t pa;
uint8_t src;
uint32_t time;
};
/*}}}*/
class SS_PliCommand_MEM_LD_DATA_44PA/*{{{*/
{
// %1=tid(2),%2=pa(6),%3=data_src(1),%4=time(4)
public:
SS_PliCommand_MEM_LD_DATA_44PA( SS_PliSocket& socket )
{
socket.read(13);
tid = socket.get16(0);
pa = socket.get48(2);
src = socket.get8(8);
time = socket.get32(9);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=MEM_LD_DATA_44PA tid=%d pa=0x%llx src=0x%x time=%d\n",tid,pa,src,time);
}
uint16_t tid;
uint64_t pa;
uint8_t src;
uint32_t time;
};
/*}}}*/
class SS_PliCommand_MEM_LD_FILL/*{{{*/
{
// %1=tid(1),%2=pa(5),%3=time(4)
public:
SS_PliCommand_MEM_LD_FILL( SS_PliSocket& socket )
{
socket.read(10);
tid = socket.get8(0);
pa = socket.get40(1);
time = socket.get32(6);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=MEM_LD_FILL tid=%d pa=0x%llx time=%d\n",tid,pa,time);
}
uint8_t tid;
uint64_t pa;
uint32_t time;
};
/*}}}*/
class SS_PliCommand_MEM_LD_FILL_44PA/*{{{*/
{
// %1=tid(2),%2=pa(6),%3=time(4)
public:
SS_PliCommand_MEM_LD_FILL_44PA( SS_PliSocket& socket )
{
socket.read(12);
tid = socket.get16(0);
pa = socket.get48(2);
time = socket.get32(8);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=MEM_LD_FILL_44PA tid=%d pa=0x%llx time=%d\n",tid,pa,time);
}
uint16_t tid;
uint64_t pa;
uint32_t time;
};
/*}}}*/
class SS_PliCommand_MEM_EVICT/*{{{*/
{
// %1=pa(5),%2=inv_vec(4),%3=time(4)
public:
SS_PliCommand_MEM_EVICT( SS_PliSocket& socket )
{
socket.read(13);
pa = socket.get40(0);
inv_vec = socket.get32(5);
time = socket.get32(9);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=MEM_EVICT pa=0x%llx inv_vec=0x%x time=%d\n",pa,inv_vec,time);
}
uint64_t pa;
uint32_t inv_vec;
uint32_t time;
};
/*}}}*/
class SS_PliCommand_MEM_EVICT_44PA/*{{{*/
{
// %1=pa(6),%2=inv_vec(4?),%3=time(4)
public:
SS_PliCommand_MEM_EVICT_44PA( SS_PliSocket& socket )
{
socket.read(14);
pa = socket.get48(0);
inv_vec = socket.get32(6);
time = socket.get32(10);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=MEM_EVICT_44PA pa=0x%llx inv_vec=0x%x time=%d\n",pa,inv_vec,time);
}
uint64_t pa;
uint32_t inv_vec;
uint32_t time;
};
/*}}}*/
class SS_PliCommand_MEM_EVICT_INV/*{{{*/
{
// %1=cid(1),%2=src_bankid(1),%3=time(4)
public:
SS_PliCommand_MEM_EVICT_INV( SS_PliSocket& socket )
{
socket.read(6);
cid = socket.get8(0);
bid = socket.get8(1);
time = socket.get32(2);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=MEM_EVICT_INV cid=%d bid=%d time=%d\n",cid,bid,time);
}
uint8_t cid;
uint8_t bid;
uint32_t time;
};
/*}}}*/
class SS_PliCommand_MEM_EVICT_INV_44PA/*{{{*/
{
// %1=cid(1),%2=src_bankid(1?),%3=time(4)
public:
SS_PliCommand_MEM_EVICT_INV_44PA( SS_PliSocket& socket )
{
socket.read(6);
cid = socket.get8(0);
bid = socket.get8(1);
time = socket.get32(2);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=MEM_EVICT_INV_44PA cid=%d bid=%d time=%d\n",cid,bid,time);
}
uint8_t cid;
uint8_t bid;
uint32_t time;
};
/*}}}*/
class SS_PliCommand_MEM_SLAM/*{{{*/
{
// %1=pa(5),%2=data(8),%3=size_vec(1),%4=time(4)
public:
SS_PliCommand_MEM_SLAM( SS_PliSocket& socket )
{
socket.read(18);
pa = socket.get40(0);
data = socket.get64(5);
size = socket.get8(13);
time = socket.get32(14);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=MEM_SLAM pa=0x%llx data=0x%llx size_vec=0x%x time=%d\n",pa,data,size,time);
}
uint64_t pa;
uint64_t data;
uint8_t size;
uint32_t time;
};
/*}}}*/
class SS_PliCommand_MEM_SLAM_44PA/*{{{*/
{
// %1=pa(6),%2=data(8),%3=size_vec(1),%4=time(4)
public:
SS_PliCommand_MEM_SLAM_44PA( SS_PliSocket& socket )
{
socket.read(19);
pa = socket.get48(0);
data = socket.get64(6);
size = socket.get8(14);
time = socket.get32(15);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=MEM_SLAM_44PA pa=0x%llx data=0x%llx size_vec=0x%x time=%d\n",pa,data,size,time);
}
uint64_t pa;
uint64_t data;
uint8_t size;
uint32_t time;
};
/*}}}*/
class SS_PliCommand_MEM_LD_POP/*{{{*/
{
// %1=tid(1)
public:
SS_PliCommand_MEM_LD_POP( SS_PliSocket& socket )
{
socket.read(1);
tid = socket.get8(0);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=MEM_LD_POP tid=%d\n",tid);
}
uint8_t tid;
};
/*}}}*/
class SS_PliCommand_MEM_LD_POP_44PA/*{{{*/
{
// %1=tid(2)
public:
SS_PliCommand_MEM_LD_POP_44PA( SS_PliSocket& socket )
{
socket.read(2);
tid = socket.get16(0);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=MEM_LD_POP_44PA tid=%d\n",tid);
}
uint16_t tid;
};
/*}}}*/
class SS_PliCommand_MEM_ST_POP/*{{{*/
{
// %1=tid(1)
public:
SS_PliCommand_MEM_ST_POP( SS_PliSocket& socket )
{
socket.read(1);
tid = socket.get8(0);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=MEM_ST_POP tid=%d\n",tid);
}
uint8_t tid;
};
/*}}}*/
class SS_PliCommand_MEM_ST_POP_44PA/*{{{*/
{
// %1=tid(2)
public:
SS_PliCommand_MEM_ST_POP_44PA( SS_PliSocket& socket )
{
socket.read(2);
tid = socket.get16(0);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=MEM_ST_POP_44PA tid=%d\n",tid);
}
uint16_t tid;
};
/*}}}*/
class SS_PliCommand_MEM_CHECK/*{{{*/
{
// %1=pa(5),%2=data(64)
public:
SS_PliCommand_MEM_CHECK( SS_PliSocket& socket )
{
socket.read(69);
pa = socket.get40(0);
data[0] = socket.get64(5);
data[1] = socket.get64(13);
data[2] = socket.get64(21);
data[3] = socket.get64(29);
data[4] = socket.get64(37);
data[5] = socket.get64(45);
data[6] = socket.get64(53);
data[7] = socket.get64(61);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=MEM_CHECK pa=0x%llx data0=0x%llx data1=0x%llx data2=0x%llx data3=0x%llx data4=0x%llx data5=0x%llx data6=0x%llx data7=0x%llx\n",pa,data[0],data[1],data[2],data[3],data[4],data[5],data[6],data[7]);
}
uint64_t pa;
uint64_t data[8];
};
/*}}}*/
class SS_PliCommand_MEM_CHECK_44PA/*{{{*/
{
// %1=pa(6),%2=data(64)
public:
SS_PliCommand_MEM_CHECK_44PA( SS_PliSocket& socket )
{
socket.read(70);
pa = socket.get48(0);
data[0] = socket.get64(6);
data[1] = socket.get64(14);
data[2] = socket.get64(22);
data[3] = socket.get64(30);
data[4] = socket.get64(38);
data[5] = socket.get64(46);
data[6] = socket.get64(54);
data[7] = socket.get64(62);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=MEM_CHECK_44PA pa=0x%llx data0=0x%llx data1=0x%llx data2=0x%llx data3=0x%llx data4=0x%llx data5=0x%llx data6=0x%llx data7=0x%llx\n",pa,data[0],data[1],data[2],data[3],data[4],data[5],data[6],data[7]);
}
uint64_t pa;
uint64_t data[8];
};
/*}}}*/
class SS_PliCommand_MEM_DMA_STORE/*{{{*/
{
// %1=pa(5),%2=data(8),%3=size_vec(1),%4=inv(1),%5=tsize(1),%6=time(4)
public:
SS_PliCommand_MEM_DMA_STORE( SS_PliSocket& socket )
{
socket.read(20);
pa = socket.get40(0);
data = socket.get64(5);
size_vec = socket.get8(13);
inv = socket.get8(14);
tsize = socket.get8(15);
time = socket.get32(16);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=MEM_DMA_STORE pa=0x%llx data=0x%llx size_vec=0x%x inv=0x%x tsize=0x%x time=%d\n",pa,data,size_vec,inv,tsize,time);
}
uint64_t pa;
uint64_t data;
uint8_t size_vec;
uint8_t inv;
uint8_t tsize;
uint8_t time;
};
/*}}}*/
class SS_PliCommand_MEM_DMA_STORE_44PA/*{{{*/
{
// %1=pa(6),%2=data(8),%3=size_vec(1),%4=inv(1),%5=tsize(1),%6=time(4)
public:
SS_PliCommand_MEM_DMA_STORE_44PA( SS_PliSocket& socket )
{
socket.read(21);
pa = socket.get48(0);
data = socket.get64(6);
size_vec = socket.get8(14);
inv = socket.get8(15);
tsize = socket.get8(16);
time = socket.get32(17);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=MEM_DMA_STORE_44PA pa=0x%llx data=0x%llx size_vec=0x%x inv=0x%x tsize=0x%x time=%d\n",pa,data,size_vec,inv,tsize,time);
}
uint64_t pa;
uint64_t data;
uint8_t size_vec;
uint8_t inv;
uint8_t tsize;
uint8_t time;
};
/*}}}*/
class SS_PliCommand_MEM_DMA_STORE_START/*{{{*/
{
// %1=pa(5),%2=tsize(1),%3=time(4)
public:
SS_PliCommand_MEM_DMA_STORE_START( SS_PliSocket& socket )
{
socket.read(10);
pa = socket.get40(0);
tsize = socket.get8(5);
time = socket.get32(6);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=MEM_DMA_STORE_START pa=0x%llx tsize=0x%x time=%d\n",pa,tsize,time);
}
uint64_t pa;
uint8_t tsize;
uint8_t time;
};
/*}}}*/
class SS_PliCommand_MEM_DMA_STORE_START_44PA/*{{{*/
{
// %1=pa(6),%2=tsize(1),%3=time(4)
public:
SS_PliCommand_MEM_DMA_STORE_START_44PA( SS_PliSocket& socket )
{
socket.read(11);
pa = socket.get48(0);
tsize = socket.get8(6);
time = socket.get32(7);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=MEM_DMA_STORE_START_44PA pa=0x%llx tsize=0x%x time=%d\n",pa,tsize,time);
}
uint64_t pa;
uint8_t tsize;
uint8_t time;
};
/*}}}*/
class SS_PliCommand_INTP/*{{{*/
{
// %1=tid(1),%2=tt(1)
public:
SS_PliCommand_INTP( SS_PliSocket& socket )
{
socket.read(2);
tid = socket.get8(0);
tt = socket.get8(1);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=INTP tid=%d tt=0x%x\n",tid,tt);
}
uint8_t tid;
uint8_t tt;
};
/*}}}*/
class SS_PliCommand_INTP_44PA/*{{{*/
{
// %1=tid(2),%2=tt(1)
public:
SS_PliCommand_INTP_44PA( SS_PliSocket& socket )
{
socket.read(3);
tid = socket.get16(0);
tt = socket.get8(2);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=INTP_44PA tid=%d tt=0x%x\n",tid,tt);
}
uint16_t tid;
uint8_t tt;
};
/*}}}*/
class SS_PliCommand_ASR_READ/*{{{*/
{
// %1=tid(1),%2=asr(1),%3=value(8)
public:
SS_PliCommand_ASR_READ( SS_PliSocket& socket )
{
socket.read(10);
tid = socket.get8(0);
asr = socket.get8(1);
data = socket.get64(2);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=ASR_READ tid=%d asr=0x%x data=0x%llx\n",tid,asr,data);
}
uint8_t tid;
uint8_t asr;
uint64_t data;
};
/*}}}*/
class SS_PliCommand_ASR_READ_44PA/*{{{*/
{
// %1=tid(2),%2=asr(1),%3=value(8)
public:
SS_PliCommand_ASR_READ_44PA( SS_PliSocket& socket )
{
socket.read(11);
tid = socket.get16(0);
asr = socket.get8(2);
data = socket.get64(3);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=ASR_READ_44PA tid=%d asr=0x%x data=0x%llx\n",tid,asr,data);
}
uint16_t tid;
uint8_t asr;
uint64_t data;
};
/*}}}*/
class SS_PliCommand_ASR_WRITE/*{{{*/
{
// %1=tid(1),%2=asr(1),%3=value(8)
public:
SS_PliCommand_ASR_WRITE( SS_PliSocket& socket )
{
socket.read(10);
tid = socket.get8(0);
asr = socket.get8(1);
data = socket.get64(2);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=ASR_WRITE tid=%d asr=0x%x data=0x%llx\n",tid,asr,data);
}
uint8_t tid;
uint8_t asr;
uint64_t data;
};
/*}}}*/
class SS_PliCommand_ASR_WRITE_44PA/*{{{*/
{
// %1=tid(2),%2=asr(1),%3=value(8)
public:
SS_PliCommand_ASR_WRITE_44PA( SS_PliSocket& socket )
{
socket.read(11);
tid = socket.get16(0);
asr = socket.get8(2);
data = socket.get64(3);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=ASR_WRITE_44PA tid=%d asr=0x%x data=0x%llx\n",tid,asr,data);
}
uint16_t tid;
uint8_t asr;
uint64_t data;
};
/*}}}*/
class SS_PliCommand_ASI_READ/*{{{*/
{
// %1=tid(1),%2=asi(1),%3=va(8),%4=value(8)
public:
SS_PliCommand_ASI_READ( SS_PliSocket& socket )
{
socket.read(18);
tid = socket.get8(0);
asi = socket.get8(1);
va = socket.get64(2);
data = socket.get64(10);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=ASI_READ tid=%d asi=0x%x va=0x%llx data=0x%llx\n",tid,asi,va,data);
}
uint8_t tid;
uint8_t asi;
uint64_t va;
uint64_t data;
};
/*}}}*/
class SS_PliCommand_ASI_READ_44PA/*{{{*/
{
// %1=tid(2),%2=asi(1),%3=va(8),%4=value(8)
public:
SS_PliCommand_ASI_READ_44PA( SS_PliSocket& socket )
{
socket.read(19);
tid = socket.get16(0);
asi = socket.get8(2);
va = socket.get64(3);
data = socket.get64(11);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=ASI_READ_44PA tid=%d asi=0x%x va=0x%llx data=0x%llx\n",tid,asi,va,data);
}
uint16_t tid;
uint8_t asi;
uint64_t va;
uint64_t data;
};
/*}}}*/
class SS_PliCommand_ASI_WRITE/*{{{*/
{
// %1=tid(1),%2=asi(1),%3=va(8),%4=value(8)
public:
SS_PliCommand_ASI_WRITE( SS_PliSocket& socket )
{
socket.read(18);
tid = socket.get8(0);
asi = socket.get8(1);
va = socket.get64(2);
data = socket.get64(10);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=ASI_WRITE tid=%d asi=0x%x va=0x%llx data=0x%llx\n",tid,asi,va,data);
}
uint8_t tid;
uint8_t asi;
uint64_t va;
uint64_t data;
};
/*}}}*/
class SS_PliCommand_ASI_WRITE_44PA/*{{{*/
{
// %1=tid(2),%2=asi(1),%3=va(8),%4=value(8)
public:
SS_PliCommand_ASI_WRITE_44PA( SS_PliSocket& socket )
{
socket.read(19);
tid = socket.get16(0);
asi = socket.get8(2);
va = socket.get64(3);
data = socket.get64(11);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=ASI_WRITE_44PA tid=%d asi=0x%x va=0x%llx data=0x%llx\n",tid,asi,va,data);
}
uint16_t tid;
uint8_t asi;
uint64_t va;
uint64_t data;
};
/*}}}*/
class SS_PliCommand_CMP_WRITE/*{{{*/
{
// %1=va(1),%2=status(8)
public:
SS_PliCommand_CMP_WRITE( uint8_t va_, uint64_t data_ ) :
va(va_), data(data_) { }
SS_PliCommand_CMP_WRITE( SS_PliSocket& socket )
{
socket.read(9);
va = socket.get8(0);
data = socket.get64(1);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=CMP_WRITE va=0x%x data=0x%llx\n",va,data);
}
uint8_t va;
uint64_t data;
};
/*}}}*/
class SS_PliCommand_CMP_WRITE_MN/*{{{*/
{
// %1=node-id(1),%2=va(1),%3=status(8)
public:
SS_PliCommand_CMP_WRITE_MN() { }
SS_PliCommand_CMP_WRITE_MN( SS_PliSocket& socket )
{
socket.read(10);
nid = socket.get8(0);
va = socket.get8(1);
data = socket.get64(2);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=CMP_WRITE_MN nid=%d va=0x%x data=0x%llx\n",(int)nid,va,data);
}
uint8_t nid;
uint8_t va;
uint64_t data;
};
/*}}}*/
class SS_PliCommand_CSR_READ/*{{{*/
{
// %1=pa(8),%2=value(8),%3=littleEndian(1)
public:
SS_PliCommand_CSR_READ( SS_PliSocket& socket )
{
socket.read(17);
pa = socket.get64(0);
data = socket.get64(8);
le = socket.get8(16);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=CSR_READ pa=0x%llx data=0x%llx le=%d\n",pa,data,(int)le);
}
uint64_t pa;
uint64_t data;
uint8_t le;
};
/*}}}*/
class SS_PliCommand_CSR_READ_44PA/*{{{*/
{
// %1=pa(6),%2=value(8),%3=littleEndian(1)
public:
SS_PliCommand_CSR_READ_44PA( SS_PliSocket& socket )
{
socket.read(15);
pa = socket.get48(0);
data = socket.get64(6);
le = socket.get8(14);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=CSR_READ_44PA pa=0x%llx data=0x%llx le=%d\n",pa,data,(int)le);
}
uint64_t pa;
uint64_t data;
uint8_t le;
};
/*}}}*/
class SS_PliCommand_CSR_READ_MN/*{{{*/
{
// %1=tid(1),%2=pa(8),%3=value(8),%4=littleEndian(1)
public:
SS_PliCommand_CSR_READ_MN( SS_PliSocket& socket )
{
socket.read(18);
tid = socket.get8(0);
pa = socket.get64(1);
data = socket.get64(9);
le = socket.get8(17);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=CSR_READ_MN tid=%d pa=%#llx data=%#llx le=%d\n",(int)tid,pa,data,(int)le);
}
uint8_t tid; // global strand-id
uint64_t pa;
uint64_t data;
uint8_t le;
};
/*}}}*/
class SS_PliCommand_CSR_READ_MN_44PA/*{{{*/
{
// %1=tid(2),%2=pa(6),%3=value(8),%4=littleEndian(1)
// share the same command id as CSR_READ_MN
public:
SS_PliCommand_CSR_READ_MN_44PA( SS_PliSocket& socket )
{
socket.read(17);
tid = socket.get16(0);
pa = socket.get48(2);
data = socket.get64(8);
le = socket.get8(16);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=CSR_READ_MN_44PA tid=%d pa=%#llx data=%#llx le=%d\n",(int)tid,pa,data,(int)le);
}
uint16_t tid; // global strand-id
uint64_t pa;
uint64_t data;
uint8_t le;
};
/*}}}*/
class SS_PliCommand_CSR_WRITE/*{{{*/
{
// %1=pa(8),%2=value(8),%3=littleEndian(1)
public:
SS_PliCommand_CSR_WRITE( SS_PliSocket& socket )
{
socket.read(17);
pa = socket.get64(0);
data = socket.get64(8);
le = socket.get8(16);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=CSR_WRITE pa=0x%llx data=0x%llx le=%d\n",pa,data,(int)le);
}
uint64_t pa;
uint64_t data;
uint8_t le;
};
/*}}}*/
class SS_PliCommand_CSR_WRITE_44PA/*{{{*/
{
// %1=pa(6),%2=value(8),%3=littleEndian(1)
public:
SS_PliCommand_CSR_WRITE_44PA( SS_PliSocket& socket )
{
socket.read(15);
pa = socket.get48(0);
data = socket.get64(6);
le = socket.get8(14);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=CSR_WRITE_44PA pa=0x%llx data=0x%llx le=%d\n",pa,data,(int)le);
}
uint64_t pa;
uint64_t data;
uint8_t le;
};
/*}}}*/
class SS_PliCommand_CSR_WRITE_MN/*{{{*/
{
// %1=node-id(1),%2=pa(8),%3=value(8),%4=littleEndian(1)
public:
SS_PliCommand_CSR_WRITE_MN( SS_PliSocket& socket )
{
socket.read(18);
nid = socket.get8(0);
pa = socket.get64(1);
data = socket.get64(9);
le = socket.get8(17);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=CSR_WRITE_MN nid=%d pa=%#llx data=%#llx le=%d\n",(int)nid,pa,data,(int)le);
}
uint8_t nid;
uint64_t pa;
uint64_t data;
uint8_t le;
};
/*}}}*/
class SS_PliCommand_CSR_WRITE_MN_44PA/*{{{*/
{
// %1=node-id(1),%2=pa(6),%3=value(8),%4=littleEndian(1)
// share the same command id as CSR_WRITE_MN
public:
SS_PliCommand_CSR_WRITE_MN_44PA( SS_PliSocket& socket )
{
socket.read(16);
nid = socket.get8(0);
pa = socket.get48(1);
data = socket.get64(7);
le = socket.get8(15);
if (socket.debug() >= 3)
fprintf(stdout,"PLI: cmd=CSR_WRITE_MN_44PA nid=%d pa=%#llx data=%#llx le=%d\n",(int)nid,pa,data,(int)le);
}
uint8_t nid;
uint64_t pa;
uint64_t data;
uint8_t le;
};
/*}}}*/
#endif