Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / sam-t2 / sam / cpus / vonk / ss / api / pli / src / SS_PliCommand.h
CommitLineData
920dae64
AT
1/*
2* ========== Copyright Header Begin ==========================================
3*
4* OpenSPARC T2 Processor File: SS_PliCommand.h
5* Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved.
6* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES.
7*
8* The above named program is free software; you can redistribute it and/or
9* modify it under the terms of the GNU General Public
10* License version 2 as published by the Free Software Foundation.
11*
12* The above named program is distributed in the hope that it will be
13* useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
14* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15* General Public License for more details.
16*
17* You should have received a copy of the GNU General Public
18* License along with this work; if not, write to the Free Software
19* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
20*
21* ========== Copyright Header End ============================================
22*/
23
24#ifndef __SS_PliCommand_h__
25#define __SS_PliCommand_h__
26
27#include "SS_PliSocket.h"
28
29class SS_PliCommand/*{{{*/
30{
31 public:
32 enum
33 {
34 PLI_QUIT = 0x01,
35 PLI_SSTEP = 0x02,
36
37 PLI_IHWTW = 0x11,
38 PLI_ITLBREAD = 0x13,
39 PLI_ITLBWRITE = 0x15,
40 PLI_DHWTW = 0x12,
41 PLI_DTLBREAD = 0x14,
42 PLI_DTLBREAD_POP = 0x18,
43 PLI_DTLBWRITE = 0x16,
44 PLI_TLBLOOKUP = 0x17,
45
46 PLI_MEM_ST_ISSUE = 0x20,
47 PLI_MEM_ST_L2_COMMIT = 0x21,
48 PLI_MEM_ST_INV = 0x22,
49 PLI_MEM_ST_UPDATE = 0x23,
50 PLI_MEM_ST_ACK = 0x24,
51 PLI_MEM_LD_ISSUE = 0x25,
52 PLI_MEM_LD_DATA = 0x26,
53 PLI_MEM_LD_FILL = 0x27,
54 PLI_MEM_EVICT = 0x28,
55 PLI_MEM_EVICT_INV = 0x29,
56 PLI_MEM_SLAM = 0x30,
57 PLI_MEM_LD_POP = 0x31,
58 PLI_MEM_ST_POP = 0x32,
59 PLI_MEM_CHECK = 0x33,
60 PLI_MEM_DMA_STORE = 0x34,
61 PLI_MEM_DMA_STORE_START = 0x35,
62
63 PLI_INTP = 0x40,
64
65 PLI_ASR_READ = 0x45,
66 PLI_ASR_WRITE = 0x41,
67
68 PLI_ASI_READ = 0x43,
69 PLI_ASI_WRITE = 0x42,
70 PLI_CMP_WRITE = 0x44,
71
72 PLI_CSR_WRITE = 0x46,
73 PLI_CSR_READ = 0x47,
74
75 PLI_PIO_WRITE = 0x48,
76 PLI_PIO_READ = 0x49,
77
78 PLI_SSTEP_N = 0x50,
79 PLI_SSTEP_SNIPER = 0x51,
80
81 PLI_CMP_WRITE_MN = 0x60,
82 PLI_CSR_WRITE_MN = 0x61,
83 PLI_CSR_READ_MN = 0x62
84 };
85};
86/*}}}*/
87
88// _MN - multiple-node
89// _44PA - 2-byte strand-id field, 6-byte PA field, 8-byte VA field
90
91// debug() : see SS_PliSocket.cc
92
93class SS_PliCommand_QUIT/*{{{*/
94{
95 public:
96 SS_PliCommand_QUIT( SS_PliSocket& socket )
97 {
98 if (socket.debug() >= 3)
99 fprintf(stdout,"PLI: cmd=QUIT\n");
100 }
101};
102/*}}}*/
103class SS_PliCommand_SSTEP/*{{{*/
104{
105 // %1=tid(1)
106 public:
107 SS_PliCommand_SSTEP( SS_PliSocket& socket, uint_t* n )
108 {
109 socket.read(1);
110
111 tid = socket.get8(0);
112
113 if (socket.debug() >= 3)
114 fprintf(stdout,"PLI: cmd=SSTEP #%d tid=%d\n",*n,tid);
115 }
116
117 uint8_t tid;
118};
119/*}}}*/
120class SS_PliCommand_SSTEP_44PA/*{{{*/
121{
122 // %1=tid(2)
123 public:
124 SS_PliCommand_SSTEP_44PA( SS_PliSocket& socket, uint_t* n )
125 {
126 socket.read(2);
127
128 tid = socket.get16(0);
129
130 if (socket.debug() >= 3)
131 fprintf(stdout,"PLI: cmd=SSTEP_44PA #%d tid=%d\n",*n,tid);
132 }
133
134 uint16_t tid;
135};
136/*}}}*/
137class SS_PliCommand_SSTEP_N/*{{{*/
138{
139 // %1=tid(1),%2=count(1)
140 // step 'count' instructions before conducting a register comparison, N3
141 // does dual issue.
142 public:
143 SS_PliCommand_SSTEP_N( SS_PliSocket& socket, uint_t* n )
144 {
145 socket.read(2);
146
147 tid = socket.get8(0);
148 count = socket.get8(1);
149
150 if (socket.debug() >= 3)
151 fprintf(stdout,"PLI: cmd=SSTEP_N #%d tid=%d count=%d\n",*n,tid,count);
152
153 // we already increment *n by 1 before entering this function, so just
154 // add (count - 1), this is to maintain overall instruction count.
155 *n = *n + count - 1;
156 }
157
158 uint8_t tid;
159 uint8_t count;
160};
161/*}}}*/
162class SS_PliCommand_SSTEP_N_44PA/*{{{*/
163{
164 // %1=tid(2),%2=count(1)
165 // step 'count' instructions before conducting a register comparison, N3
166 // does dual issue.
167 public:
168 SS_PliCommand_SSTEP_N_44PA( SS_PliSocket& socket, uint_t* n )
169 {
170 socket.read(3);
171
172 tid = socket.get16(0);
173 count = socket.get8(2);
174
175 if (socket.debug() >= 3)
176 fprintf(stdout,"PLI: cmd=SSTEP_N_44PA #%d tid=%d count=%d\n",*n,tid,count);
177
178 // we already increment *n by 1 before entering this function, so just
179 // add (count - 1), this is to maintain overall instruction count.
180 *n = *n + count - 1;
181 }
182
183 uint16_t tid;
184 uint8_t count;
185};
186/*}}}*/
187class SS_PliCommand_SSTEP_SNIPER/*{{{*/
188{
189 // %1=tid(1),%2=pa(8),%3=itype(1),%4=data(8)
190 // a "fake" step command generated by sniper, used to match up msync
191 // commands generated by sniper to simulate ldst traffic.
192 // the %data is valid only for load instruction, it used to compare with
193 // the msync's load data, an error should be raised if there is a miscompare
194 public:
195 SS_PliCommand_SSTEP_SNIPER( SS_PliSocket& socket, uint_t* n )
196 {
197 socket.read(18);
198
199 tid = socket.get8(0);
200 pa = socket.get64(1);
201 itype = socket.get8(9);
202 data = socket.get64(10);
203
204 if (socket.debug() >= 3)
205 fprintf(stdout,"PLI: cmd=SSTEP_SNIPER #%d tid=%d pa=%#llx itype=%d data=%#llx\n",*n,tid,pa,itype,data);
206 }
207
208 uint8_t tid;
209 uint8_t itype;
210 uint64_t pa;
211 uint64_t data;
212};
213/*}}}*/
214class SS_PliCommand_SSTEP_SNIPER_44PA/*{{{*/
215{
216 // %1=tid(2),%2=pa(6),%3=itype(1),%4=data(8)
217 // a "fake" step command generated by sniper, used to match up msync
218 // commands generated by sniper to simulate ldst traffic.
219 // the %data is valid only for load instruction, it used to compare with
220 // the msync's load data, an error should be raised if there is a miscompare
221 public:
222 SS_PliCommand_SSTEP_SNIPER_44PA( SS_PliSocket& socket, uint_t* n )
223 {
224 socket.read(17);
225
226 tid = socket.get16(0);
227 pa = socket.get48(2);
228 itype = socket.get8(8);
229 data = socket.get64(9);
230
231 if (socket.debug() >= 3)
232 fprintf(stdout,"PLI: cmd=SSTEP_SNIPER_44PA #%d tid=%d pa=%#llx itype=%d data=%#llx\n",*n,tid,pa,itype,data);
233 }
234
235 uint16_t tid;
236 uint8_t itype;
237 uint64_t pa;
238 uint64_t data;
239};
240/*}}}*/
241class SS_PliCommand_ITLBREAD/*{{{*/
242{
243 // %1=tid(1),%2=itlb-read-time(4)
244 public:
245 SS_PliCommand_ITLBREAD( SS_PliSocket& socket )
246 {
247 socket.read(5);
248
249 tid = socket.get8(0);
250 rtime = socket.get32(1);
251
252 if (socket.debug() >= 3)
253 fprintf(stdout,"PLI: cmd=ITLBREAD tid=%d rtime=%d\n",tid,rtime);
254 }
255
256 uint8_t tid;
257 uint32_t rtime;
258};
259/*}}}*/
260class SS_PliCommand_ITLBREAD_44PA/*{{{*/
261{
262 // %1=tid(2),%2=itlb-read-time(4)
263 public:
264 SS_PliCommand_ITLBREAD_44PA( SS_PliSocket& socket )
265 {
266 socket.read(6);
267
268 tid = socket.get16(0);
269 rtime = socket.get32(2);
270
271 if (socket.debug() >= 3)
272 fprintf(stdout,"PLI: cmd=ITLBREAD_44PA tid=%d rtime=%d\n",tid,rtime);
273 }
274
275 uint16_t tid;
276 uint32_t rtime;
277};
278/*}}}*/
279class SS_PliCommand_ITLBWRITE/*{{{*/
280{
281 // %1=tid(1),%2=itlb-write-time(4),%3=entry#(1)
282 public:
283 SS_PliCommand_ITLBWRITE( SS_PliSocket& socket )
284 {
285 socket.read(6);
286
287 tid = socket.get8(0);
288 wtime = socket.get32(1);
289 entry = socket.get8(5);
290
291 if (socket.debug() >= 3)
292 fprintf(stdout,"PLI: cmd=ITLBWRITE tid=%d wtime=%d entry=%d\n",tid,wtime,entry);
293 }
294
295 uint8_t tid;
296 uint32_t wtime;
297 uint8_t entry;
298};
299class SS_PliCommand_ITLBWRITE_44PA/*{{{*/
300{
301 // %1=tid(2),%2=itlb-write-time(4),%3=entry#(1)
302 public:
303 SS_PliCommand_ITLBWRITE_44PA( SS_PliSocket& socket )
304 {
305 socket.read(7);
306
307 tid = socket.get16(0);
308 wtime = socket.get32(2);
309 entry = socket.get8(6);
310
311 if (socket.debug() >= 3)
312 fprintf(stdout,"PLI: cmd=ITLBWRITE_44PA tid=%d wtime=%d entry=%d\n",tid,wtime,entry);
313 }
314
315 uint16_t tid;
316 uint32_t wtime;
317 uint8_t entry;
318};
319/*}}}*/
320class SS_PliCommand_DTLBREAD/*{{{*/
321{
322 // %1=tid(1),%2=dtlb-read-time(4)
323 public:
324 SS_PliCommand_DTLBREAD( SS_PliSocket& socket )
325 {
326 socket.read(5);
327
328 tid = socket.get8(0);
329 rtime = socket.get32(1);
330
331 if (socket.debug() >= 3)
332 fprintf(stdout,"PLI: cmd=DTLBREAD tid=%d rtime=%d\n",tid,rtime);
333 }
334
335 uint8_t tid;
336 uint32_t rtime;
337};
338/*}}}*/
339class SS_PliCommand_DTLBREAD_44PA/*{{{*/
340{
341 // %1=tid(2),%2=dtlb-read-time(4)
342 public:
343 SS_PliCommand_DTLBREAD_44PA( SS_PliSocket& socket )
344 {
345 socket.read(6);
346
347 tid = socket.get16(0);
348 rtime = socket.get32(2);
349
350 if (socket.debug() >= 3)
351 fprintf(stdout,"PLI: cmd=DTLBREAD_44PA tid=%d rtime=%d\n",tid,rtime);
352 }
353
354 uint16_t tid;
355 uint32_t rtime;
356};
357/*}}}*/
358class SS_PliCommand_DTLBWRITE/*{{{*/
359{
360 // %1=tid(1),%2=dtlb-write-time(4),%3=entry#(1)
361 public:
362 SS_PliCommand_DTLBWRITE( SS_PliSocket& socket )
363 {
364 socket.read(6);
365
366 tid = socket.get8(0);
367 wtime = socket.get32(1);
368 entry = socket.get8(5);
369
370 if (socket.debug() >= 3)
371 fprintf(stdout,"PLI: cmd=DTLBWRITE tid=%d wtime=%d entry=%d\n",tid,wtime,entry);
372 }
373
374 uint8_t tid;
375 uint32_t wtime;
376 uint8_t entry;
377};
378/*}}}*/
379class SS_PliCommand_DTLBWRITE_44PA/*{{{*/
380{
381 // %1=tid(2),%2=dtlb-write-time(4),%3=entry#(1)
382 public:
383 SS_PliCommand_DTLBWRITE_44PA( SS_PliSocket& socket )
384 {
385 socket.read(7);
386
387 tid = socket.get16(0);
388 wtime = socket.get32(2);
389 entry = socket.get8(6);
390
391 if (socket.debug() >= 3)
392 fprintf(stdout,"PLI: cmd=DTLBWRITE_44PA tid=%d wtime=%d entry=%d\n",tid,wtime,entry);
393 }
394
395 uint16_t tid;
396 uint32_t wtime;
397 uint8_t entry;
398};
399/*}}}*/
400class SS_PliCommand_IHWTW/*{{{*/
401{
402 // %1=tid(1),%2=itlb-write-time(4),%3=VA(6),%4=entry#(1)
403 public:
404 SS_PliCommand_IHWTW( SS_PliSocket& socket )
405 {
406 socket.read(12);
407
408 tid = socket.get8(0);
409 wtime = socket.get32(1);
410 va = socket.get48(5);
411 entry = socket.get8(11);
412
413 if (socket.debug() >= 3)
414 fprintf(stdout,"PLI: cmd=IHWTW tid=%d wtime=%d va=0x%llx entry=%d\n",tid,wtime,va,entry);
415 }
416
417 uint8_t tid;
418 uint32_t wtime;
419 uint64_t va;
420 uint8_t entry;
421};
422/*}}}*/
423class SS_PliCommand_IHWTW_44PA/*{{{*/
424{
425 // %1=tid(2),%2=itlb-write-time(4),%3=va(8),%4=entry#(1)
426 public:
427 SS_PliCommand_IHWTW_44PA( SS_PliSocket& socket )
428 {
429 socket.read(15);
430
431 tid = socket.get16(0);
432 wtime = socket.get32(2);
433 va = socket.get64(6);
434 entry = socket.get8(14);
435
436 if (socket.debug() >= 3)
437 fprintf(stdout,"PLI: cmd=IHWTW_44PA tid=%d wtime=%d va=0x%llx entry=%d\n",tid,wtime,va,entry);
438 }
439
440 uint16_t tid;
441 uint32_t wtime;
442 uint64_t va;
443 uint8_t entry;
444};
445/*}}}*/
446class SS_PliCommand_DHWTW/*{{{*/
447{
448 // %1=tid(1),%2=dtlb-write-time(4),%3=VA(6),%4=asi(1),%5=entry#(1)
449 public:
450 SS_PliCommand_DHWTW( SS_PliSocket& socket )
451 {
452 socket.read(13);
453
454 tid = socket.get8(0);
455 wtime = socket.get32(1);
456 va = socket.get48(5);
457 asi = socket.get8(11);
458 entry = socket.get8(12);
459
460 if (socket.debug() >= 3)
461 fprintf(stdout,"PLI: cmd=DHWTW tid=%d wtime=%d va=0x%llx asi=0x%x entry=%d\n",tid,wtime,va,asi,entry);
462 }
463
464 uint8_t tid;
465 uint32_t wtime;
466 uint64_t va;
467 uint8_t asi;
468 uint8_t entry;
469};
470/*}}}*/
471class SS_PliCommand_DHWTW_44PA/*{{{*/
472{
473 // %1=tid(2),%2=dtlb-write-time(4),%3=va(8),%4=asi(1),%5=entry#(1)
474 public:
475 SS_PliCommand_DHWTW_44PA( SS_PliSocket& socket )
476 {
477 socket.read(16);
478
479 tid = socket.get16(0);
480 wtime = socket.get32(2);
481 va = socket.get64(6);
482 asi = socket.get8(14);
483 entry = socket.get8(15);
484
485 if (socket.debug() >= 3)
486 fprintf(stdout,"PLI: cmd=DHWTW_44PA tid=%d wtime=%d va=0x%llx asi=0x%x entry=%d\n",tid,wtime,va,asi,entry);
487 }
488
489 uint16_t tid;
490 uint32_t wtime;
491 uint64_t va;
492 uint8_t asi;
493 uint8_t entry;
494};
495/*}}}*/
496class SS_PliCommand_TLBLOOKUP/*{{{*/
497{
498 // %1=tid(1),%2=time(4),%3=asi(1)
499 public:
500 SS_PliCommand_TLBLOOKUP( SS_PliSocket& socket )
501 {
502 socket.read(6);
503
504 tid = socket.get8(0);
505 rtime = socket.get32(1);
506 asi = socket.get8(5);
507
508 if (socket.debug() >= 3)
509 fprintf(stdout,"PLI: cmd=TLBLOOKUP tid=%d rtime=%d asi=0x%x\n",tid,rtime,asi);
510 }
511
512 uint8_t tid;
513 uint32_t rtime;
514 uint8_t asi;
515};
516/*}}}*/
517class SS_PliCommand_TLBLOOKUP_44PA/*{{{*/
518{
519 // %1=tid(2),%2=time(4),%3=asi(1)
520 public:
521 SS_PliCommand_TLBLOOKUP_44PA( SS_PliSocket& socket )
522 {
523 socket.read(7);
524
525 tid = socket.get16(0);
526 rtime = socket.get32(2);
527 asi = socket.get8(6);
528
529 if (socket.debug() >= 3)
530 fprintf(stdout,"PLI: cmd=TLBLOOKUP_44PA tid=%d rtime=%d asi=0x%x\n",tid,rtime,asi);
531 }
532
533 uint16_t tid;
534 uint32_t rtime;
535 uint8_t asi;
536};
537/*}}}*/
538class SS_PliCommand_DTLBREAD_POP/*{{{*/
539{
540 // %1=tid(1) %2=time(4)
541 public:
542 SS_PliCommand_DTLBREAD_POP( SS_PliSocket& socket )
543 {
544 socket.read(5);
545
546 tid = socket.get8(0);
547 ptime = socket.get32(1);
548
549 if (socket.debug() >= 3)
550 fprintf(stdout,"PLI: cmd=DTLBREAD_POP tid=%d ptime=%d\n",tid,ptime);
551 }
552
553 uint8_t tid;
554 uint32_t ptime;
555};
556/*}}}*/
557class SS_PliCommand_DTLBREAD_POP_44PA/*{{{*/
558{
559 // %1=tid(2) %2=time(4)
560 public:
561 SS_PliCommand_DTLBREAD_POP_44PA( SS_PliSocket& socket )
562 {
563 socket.read(6);
564
565 tid = socket.get16(0);
566 ptime = socket.get32(2);
567
568 if (socket.debug() >= 3)
569 fprintf(stdout,"PLI: cmd=DTLBREAD_POP_44PA tid=%d ptime=%d\n",tid,ptime);
570 }
571
572 uint16_t tid;
573 uint32_t ptime;
574};
575/*}}}*/
576class SS_PliCommand_MEM_ST_ISSUE/*{{{*/
577{
578 // %1=tid(1),%2=pa(5),%3=data(8),%4=size_vec(1),%5=itype(1),%6=time(4)
579 public:
580 SS_PliCommand_MEM_ST_ISSUE( SS_PliSocket& socket )
581 {
582 socket.read(20);
583
584 tid = socket.get8(0);
585 pa = socket.get40(1);
586 data = socket.get64(6);
587 size_vec = socket.get8(14);
588 itype = socket.get8(15);
589 time = socket.get32(16);
590
591 if (socket.debug() >= 3)
592 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);
593 }
594
595 uint8_t tid;
596 uint64_t pa;
597 uint64_t data;
598 uint8_t size_vec;
599 uint8_t itype;
600 uint32_t time;
601};
602/*}}}*/
603class SS_PliCommand_MEM_ST_ISSUE_44PA/*{{{*/
604{
605 // %1=tid(2),%2=pa(6),%3=data(8),%4=size_vec(1),%5=itype(1),%6=time(4)
606 public:
607 SS_PliCommand_MEM_ST_ISSUE_44PA( SS_PliSocket& socket )
608 {
609 socket.read(22);
610
611 tid = socket.get16(0);
612 pa = socket.get48(2);
613 data = socket.get64(8);
614 size_vec = socket.get8(16);
615 itype = socket.get8(17);
616 time = socket.get32(18);
617
618 if (socket.debug() >= 3)
619 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);
620 }
621
622 uint16_t tid;
623 uint64_t pa;
624 uint64_t data;
625 uint8_t size_vec;
626 uint8_t itype;
627 uint32_t time;
628};
629/*}}}*/
630class SS_PliCommand_MEM_ST_L2_COMMIT/*{{{*/
631{
632 // %1=tid(1),%2=pa(5),%3=size_vec(1),%4=inv_vec(4),%5=l2_hit(1),%6=time(4)
633 public:
634 SS_PliCommand_MEM_ST_L2_COMMIT( SS_PliSocket& socket )
635 {
636 socket.read(16);
637
638 tid = socket.get8(0);
639 pa = socket.get40(1);
640 size_vec = socket.get8(6);
641 inv_vec = socket.get32(7);
642 l2hit = socket.get8(11);
643 time = socket.get32(12);
644
645 if (socket.debug() >= 3)
646 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);
647 }
648
649 uint8_t tid;
650 uint64_t pa;
651 uint8_t size_vec;
652 uint32_t inv_vec;
653 uint8_t l2hit;
654 uint32_t time;
655};
656/*}}}*/
657class SS_PliCommand_MEM_ST_L2_COMMIT_44PA/*{{{*/
658{
659 // %1=tid(2),%2=pa(6),%3=size_vec(1),%4=inv_vec(4?),%5=l2_hit(1),%6=time(4)
660 public:
661 SS_PliCommand_MEM_ST_L2_COMMIT_44PA( SS_PliSocket& socket )
662 {
663 socket.read(18);
664
665 tid = socket.get16(0);
666 pa = socket.get48(2);
667 size_vec = socket.get8(8);
668 inv_vec = socket.get32(9);
669 l2hit = socket.get8(13);
670 time = socket.get32(14);
671
672 if (socket.debug() >= 3)
673 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);
674 }
675
676 uint16_t tid;
677 uint64_t pa;
678 uint8_t size_vec;
679 uint32_t inv_vec;
680 uint8_t l2hit;
681 uint32_t time;
682};
683/*}}}*/
684class SS_PliCommand_MEM_ST_INV/*{{{*/
685{
686 // %1=cid(1),%2=src_tid(1),%3=pa(5),%4=time(4)
687 public:
688 SS_PliCommand_MEM_ST_INV( SS_PliSocket& socket )
689 {
690 socket.read(11);
691
692 cid = socket.get8(0);
693 tid = socket.get8(1);
694 pa = socket.get40(2);
695 time = socket.get32(7);
696
697 if (socket.debug() >= 3)
698 fprintf(stdout,"PLI: cmd=MEM_ST_INV cid=%d tid=%d pa=0x%llx time=%d\n",cid,tid,pa,time);
699 }
700
701 uint8_t cid;
702 uint8_t tid;
703 uint64_t pa;
704 uint32_t time;
705};
706/*}}}*/
707class SS_PliCommand_MEM_ST_INV_44PA/*{{{*/
708{
709 // %1=cid(1),%2=src_tid(2),%3=pa(6),%4=time(4)
710 public:
711 SS_PliCommand_MEM_ST_INV_44PA( SS_PliSocket& socket )
712 {
713 socket.read(13);
714
715 cid = socket.get8(0);
716 tid = socket.get16(1);
717 pa = socket.get48(3);
718 time = socket.get32(9);
719
720 if (socket.debug() >= 3)
721 fprintf(stdout,"PLI: cmd=MEM_ST_INV_44PA cid=%d tid=%d pa=0x%llx time=%d\n",cid,tid,pa,time);
722 }
723
724 uint8_t cid;
725 uint16_t tid;
726 uint64_t pa;
727 uint32_t time;
728};
729/*}}}*/
730class SS_PliCommand_MEM_ST_UPDATE/*{{{*/
731{
732 // %1=tid(1),%2=pa(5),%3=time(4)
733 public:
734 SS_PliCommand_MEM_ST_UPDATE( SS_PliSocket& socket )
735 {
736 socket.read(10);
737
738 tid = socket.get8(0);
739 pa = socket.get40(1);
740 time = socket.get32(6);
741
742 if (socket.debug() >= 3)
743 fprintf(stdout,"PLI: cmd=MEM_ST_UPDATE tid=%d pa=0x%llx time=%d\n",tid,pa,time);
744 }
745
746 uint8_t tid;
747 uint64_t pa;
748 uint32_t time;
749};
750/*}}}*/
751class SS_PliCommand_MEM_ST_UPDATE_44PA/*{{{*/
752{
753 // %1=tid(2),%2=pa(6),%3=time(4)
754 public:
755 SS_PliCommand_MEM_ST_UPDATE_44PA( SS_PliSocket& socket )
756 {
757 socket.read(12);
758
759 tid = socket.get16(0);
760 pa = socket.get48(2);
761 time = socket.get32(8);
762
763 if (socket.debug() >= 3)
764 fprintf(stdout,"PLI: cmd=MEM_ST_UPDATE_44PA tid=%d pa=0x%llx time=%d\n",tid,pa,time);
765 }
766
767 uint16_t tid;
768 uint64_t pa;
769 uint32_t time;
770};
771/*}}}*/
772class SS_PliCommand_MEM_ST_ACK/*{{{*/
773{
774 // %1=tid(1),%2=rmo(1),%3=time(4)
775 public:
776 SS_PliCommand_MEM_ST_ACK( SS_PliSocket& socket )
777 {
778 socket.read(6);
779
780 tid = socket.get8(0);
781 rmo = socket.get8(1);
782 time = socket.get32(2);
783
784 if (socket.debug() >= 3)
785 fprintf(stdout,"PLI: cmd=MEM_ST_ACK tid=%d rmo=%d time=%d\n",tid,rmo,time);
786 }
787
788 uint8_t tid;
789 uint8_t rmo;
790 uint32_t time;
791};
792/*}}}*/
793class SS_PliCommand_MEM_ST_ACK_44PA/*{{{*/
794{
795 // %1=tid(2),%2=rmo(1),%3=time(4)
796 public:
797 SS_PliCommand_MEM_ST_ACK_44PA( SS_PliSocket& socket )
798 {
799 socket.read(7);
800
801 tid = socket.get16(0);
802 rmo = socket.get8(2);
803 time = socket.get32(3);
804
805 if (socket.debug() >= 3)
806 fprintf(stdout,"PLI: cmd=MEM_ST_ACK_44PA tid=%d rmo=%d time=%d\n",tid,rmo,time);
807 }
808
809 uint16_t tid;
810 uint8_t rmo;
811 uint32_t time;
812};
813/*}}}*/
814class SS_PliCommand_MEM_LD_ISSUE/*{{{*/
815{
816 // %1=tid(1),%2=pa(5),%3=size(1),%4=itype(1),%5=time(4)
817 public:
818 SS_PliCommand_MEM_LD_ISSUE( SS_PliSocket& socket )
819 {
820 socket.read(12);
821
822 tid = socket.get8(0);
823 pa = socket.get40(1);
824 size = socket.get8(6);
825 itype = socket.get8(7);
826 time = socket.get32(8);
827
828 if (socket.debug() >= 3)
829 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);
830 }
831
832 uint8_t tid;
833 uint64_t pa;
834 uint8_t size;
835 uint8_t itype;
836 uint32_t time;
837};
838/*}}}*/
839class SS_PliCommand_MEM_LD_ISSUE_44PA/*{{{*/
840{
841 // %1=tid(2),%2=pa(6),%3=size(1),%4=itype(1),%5=time(4)
842 public:
843 SS_PliCommand_MEM_LD_ISSUE_44PA( SS_PliSocket& socket )
844 {
845 socket.read(14);
846
847 tid = socket.get16(0);
848 pa = socket.get48(2);
849 size = socket.get8(8);
850 itype = socket.get8(9);
851 time = socket.get32(10);
852
853 if (socket.debug() >= 3)
854 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);
855 }
856
857 uint16_t tid;
858 uint64_t pa;
859 uint8_t size;
860 uint8_t itype;
861 uint32_t time;
862};
863/*}}}*/
864class SS_PliCommand_MEM_LD_DATA/*{{{*/
865{
866 // %1=tid(1),%2=pa(5),%3=data_src(1),%4=time(4)
867 public:
868 SS_PliCommand_MEM_LD_DATA( SS_PliSocket& socket )
869 {
870 socket.read(11);
871
872 tid = socket.get8(0);
873 pa = socket.get40(1);
874 src = socket.get8(6);
875 time = socket.get32(7);
876
877 if (socket.debug() >= 3)
878 fprintf(stdout,"PLI: cmd=MEM_LD_DATA tid=%d pa=0x%llx src=0x%x time=%d\n",tid,pa,src,time);
879 }
880
881 uint8_t tid;
882 uint64_t pa;
883 uint8_t src;
884 uint32_t time;
885};
886/*}}}*/
887class SS_PliCommand_MEM_LD_DATA_44PA/*{{{*/
888{
889 // %1=tid(2),%2=pa(6),%3=data_src(1),%4=time(4)
890 public:
891 SS_PliCommand_MEM_LD_DATA_44PA( SS_PliSocket& socket )
892 {
893 socket.read(13);
894
895 tid = socket.get16(0);
896 pa = socket.get48(2);
897 src = socket.get8(8);
898 time = socket.get32(9);
899
900 if (socket.debug() >= 3)
901 fprintf(stdout,"PLI: cmd=MEM_LD_DATA_44PA tid=%d pa=0x%llx src=0x%x time=%d\n",tid,pa,src,time);
902 }
903
904 uint16_t tid;
905 uint64_t pa;
906 uint8_t src;
907 uint32_t time;
908};
909/*}}}*/
910class SS_PliCommand_MEM_LD_FILL/*{{{*/
911{
912 // %1=tid(1),%2=pa(5),%3=time(4)
913 public:
914 SS_PliCommand_MEM_LD_FILL( SS_PliSocket& socket )
915 {
916 socket.read(10);
917
918 tid = socket.get8(0);
919 pa = socket.get40(1);
920 time = socket.get32(6);
921
922 if (socket.debug() >= 3)
923 fprintf(stdout,"PLI: cmd=MEM_LD_FILL tid=%d pa=0x%llx time=%d\n",tid,pa,time);
924 }
925
926 uint8_t tid;
927 uint64_t pa;
928 uint32_t time;
929};
930/*}}}*/
931class SS_PliCommand_MEM_LD_FILL_44PA/*{{{*/
932{
933 // %1=tid(2),%2=pa(6),%3=time(4)
934 public:
935 SS_PliCommand_MEM_LD_FILL_44PA( SS_PliSocket& socket )
936 {
937 socket.read(12);
938
939 tid = socket.get16(0);
940 pa = socket.get48(2);
941 time = socket.get32(8);
942
943 if (socket.debug() >= 3)
944 fprintf(stdout,"PLI: cmd=MEM_LD_FILL_44PA tid=%d pa=0x%llx time=%d\n",tid,pa,time);
945 }
946
947 uint16_t tid;
948 uint64_t pa;
949 uint32_t time;
950};
951/*}}}*/
952class SS_PliCommand_MEM_EVICT/*{{{*/
953{
954 // %1=pa(5),%2=inv_vec(4),%3=time(4)
955 public:
956 SS_PliCommand_MEM_EVICT( SS_PliSocket& socket )
957 {
958 socket.read(13);
959
960 pa = socket.get40(0);
961 inv_vec = socket.get32(5);
962 time = socket.get32(9);
963
964 if (socket.debug() >= 3)
965 fprintf(stdout,"PLI: cmd=MEM_EVICT pa=0x%llx inv_vec=0x%x time=%d\n",pa,inv_vec,time);
966 }
967
968 uint64_t pa;
969 uint32_t inv_vec;
970 uint32_t time;
971};
972/*}}}*/
973class SS_PliCommand_MEM_EVICT_44PA/*{{{*/
974{
975 // %1=pa(6),%2=inv_vec(4?),%3=time(4)
976 public:
977 SS_PliCommand_MEM_EVICT_44PA( SS_PliSocket& socket )
978 {
979 socket.read(14);
980
981 pa = socket.get48(0);
982 inv_vec = socket.get32(6);
983 time = socket.get32(10);
984
985 if (socket.debug() >= 3)
986 fprintf(stdout,"PLI: cmd=MEM_EVICT_44PA pa=0x%llx inv_vec=0x%x time=%d\n",pa,inv_vec,time);
987 }
988
989 uint64_t pa;
990 uint32_t inv_vec;
991 uint32_t time;
992};
993/*}}}*/
994class SS_PliCommand_MEM_EVICT_INV/*{{{*/
995{
996 // %1=cid(1),%2=src_bankid(1),%3=time(4)
997 public:
998 SS_PliCommand_MEM_EVICT_INV( SS_PliSocket& socket )
999 {
1000 socket.read(6);
1001
1002 cid = socket.get8(0);
1003 bid = socket.get8(1);
1004 time = socket.get32(2);
1005
1006 if (socket.debug() >= 3)
1007 fprintf(stdout,"PLI: cmd=MEM_EVICT_INV cid=%d bid=%d time=%d\n",cid,bid,time);
1008 }
1009
1010 uint8_t cid;
1011 uint8_t bid;
1012 uint32_t time;
1013};
1014/*}}}*/
1015class SS_PliCommand_MEM_EVICT_INV_44PA/*{{{*/
1016{
1017 // %1=cid(1),%2=src_bankid(1?),%3=time(4)
1018 public:
1019 SS_PliCommand_MEM_EVICT_INV_44PA( SS_PliSocket& socket )
1020 {
1021 socket.read(6);
1022
1023 cid = socket.get8(0);
1024 bid = socket.get8(1);
1025 time = socket.get32(2);
1026
1027 if (socket.debug() >= 3)
1028 fprintf(stdout,"PLI: cmd=MEM_EVICT_INV_44PA cid=%d bid=%d time=%d\n",cid,bid,time);
1029 }
1030
1031 uint8_t cid;
1032 uint8_t bid;
1033 uint32_t time;
1034};
1035/*}}}*/
1036class SS_PliCommand_MEM_SLAM/*{{{*/
1037{
1038 // %1=pa(5),%2=data(8),%3=size_vec(1),%4=time(4)
1039 public:
1040 SS_PliCommand_MEM_SLAM( SS_PliSocket& socket )
1041 {
1042 socket.read(18);
1043
1044 pa = socket.get40(0);
1045 data = socket.get64(5);
1046 size = socket.get8(13);
1047 time = socket.get32(14);
1048
1049 if (socket.debug() >= 3)
1050 fprintf(stdout,"PLI: cmd=MEM_SLAM pa=0x%llx data=0x%llx size_vec=0x%x time=%d\n",pa,data,size,time);
1051 }
1052
1053 uint64_t pa;
1054 uint64_t data;
1055 uint8_t size;
1056 uint32_t time;
1057};
1058/*}}}*/
1059class SS_PliCommand_MEM_SLAM_44PA/*{{{*/
1060{
1061 // %1=pa(6),%2=data(8),%3=size_vec(1),%4=time(4)
1062 public:
1063 SS_PliCommand_MEM_SLAM_44PA( SS_PliSocket& socket )
1064 {
1065 socket.read(19);
1066
1067 pa = socket.get48(0);
1068 data = socket.get64(6);
1069 size = socket.get8(14);
1070 time = socket.get32(15);
1071
1072 if (socket.debug() >= 3)
1073 fprintf(stdout,"PLI: cmd=MEM_SLAM_44PA pa=0x%llx data=0x%llx size_vec=0x%x time=%d\n",pa,data,size,time);
1074 }
1075
1076 uint64_t pa;
1077 uint64_t data;
1078 uint8_t size;
1079 uint32_t time;
1080};
1081/*}}}*/
1082class SS_PliCommand_MEM_LD_POP/*{{{*/
1083{
1084 // %1=tid(1)
1085 public:
1086 SS_PliCommand_MEM_LD_POP( SS_PliSocket& socket )
1087 {
1088 socket.read(1);
1089
1090 tid = socket.get8(0);
1091
1092 if (socket.debug() >= 3)
1093 fprintf(stdout,"PLI: cmd=MEM_LD_POP tid=%d\n",tid);
1094 }
1095
1096 uint8_t tid;
1097};
1098/*}}}*/
1099class SS_PliCommand_MEM_LD_POP_44PA/*{{{*/
1100{
1101 // %1=tid(2)
1102 public:
1103 SS_PliCommand_MEM_LD_POP_44PA( SS_PliSocket& socket )
1104 {
1105 socket.read(2);
1106
1107 tid = socket.get16(0);
1108
1109 if (socket.debug() >= 3)
1110 fprintf(stdout,"PLI: cmd=MEM_LD_POP_44PA tid=%d\n",tid);
1111 }
1112
1113 uint16_t tid;
1114};
1115/*}}}*/
1116class SS_PliCommand_MEM_ST_POP/*{{{*/
1117{
1118 // %1=tid(1)
1119 public:
1120 SS_PliCommand_MEM_ST_POP( SS_PliSocket& socket )
1121 {
1122 socket.read(1);
1123
1124 tid = socket.get8(0);
1125
1126 if (socket.debug() >= 3)
1127 fprintf(stdout,"PLI: cmd=MEM_ST_POP tid=%d\n",tid);
1128 }
1129
1130 uint8_t tid;
1131};
1132/*}}}*/
1133class SS_PliCommand_MEM_ST_POP_44PA/*{{{*/
1134{
1135 // %1=tid(2)
1136 public:
1137 SS_PliCommand_MEM_ST_POP_44PA( SS_PliSocket& socket )
1138 {
1139 socket.read(2);
1140
1141 tid = socket.get16(0);
1142
1143 if (socket.debug() >= 3)
1144 fprintf(stdout,"PLI: cmd=MEM_ST_POP_44PA tid=%d\n",tid);
1145 }
1146
1147 uint16_t tid;
1148};
1149/*}}}*/
1150class SS_PliCommand_MEM_CHECK/*{{{*/
1151{
1152 // %1=pa(5),%2=data(64)
1153 public:
1154 SS_PliCommand_MEM_CHECK( SS_PliSocket& socket )
1155 {
1156 socket.read(69);
1157
1158 pa = socket.get40(0);
1159 data[0] = socket.get64(5);
1160 data[1] = socket.get64(13);
1161 data[2] = socket.get64(21);
1162 data[3] = socket.get64(29);
1163 data[4] = socket.get64(37);
1164 data[5] = socket.get64(45);
1165 data[6] = socket.get64(53);
1166 data[7] = socket.get64(61);
1167
1168 if (socket.debug() >= 3)
1169 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]);
1170 }
1171
1172 uint64_t pa;
1173 uint64_t data[8];
1174};
1175/*}}}*/
1176class SS_PliCommand_MEM_CHECK_44PA/*{{{*/
1177{
1178 // %1=pa(6),%2=data(64)
1179 public:
1180 SS_PliCommand_MEM_CHECK_44PA( SS_PliSocket& socket )
1181 {
1182 socket.read(70);
1183
1184 pa = socket.get48(0);
1185 data[0] = socket.get64(6);
1186 data[1] = socket.get64(14);
1187 data[2] = socket.get64(22);
1188 data[3] = socket.get64(30);
1189 data[4] = socket.get64(38);
1190 data[5] = socket.get64(46);
1191 data[6] = socket.get64(54);
1192 data[7] = socket.get64(62);
1193
1194 if (socket.debug() >= 3)
1195 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]);
1196 }
1197
1198 uint64_t pa;
1199 uint64_t data[8];
1200};
1201/*}}}*/
1202class SS_PliCommand_MEM_DMA_STORE/*{{{*/
1203{
1204 // %1=pa(5),%2=data(8),%3=size_vec(1),%4=inv(1),%5=tsize(1),%6=time(4)
1205 public:
1206 SS_PliCommand_MEM_DMA_STORE( SS_PliSocket& socket )
1207 {
1208 socket.read(20);
1209
1210 pa = socket.get40(0);
1211 data = socket.get64(5);
1212 size_vec = socket.get8(13);
1213 inv = socket.get8(14);
1214 tsize = socket.get8(15);
1215 time = socket.get32(16);
1216
1217 if (socket.debug() >= 3)
1218 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);
1219 }
1220
1221 uint64_t pa;
1222 uint64_t data;
1223 uint8_t size_vec;
1224 uint8_t inv;
1225 uint8_t tsize;
1226 uint8_t time;
1227};
1228/*}}}*/
1229class SS_PliCommand_MEM_DMA_STORE_44PA/*{{{*/
1230{
1231 // %1=pa(6),%2=data(8),%3=size_vec(1),%4=inv(1),%5=tsize(1),%6=time(4)
1232 public:
1233 SS_PliCommand_MEM_DMA_STORE_44PA( SS_PliSocket& socket )
1234 {
1235 socket.read(21);
1236
1237 pa = socket.get48(0);
1238 data = socket.get64(6);
1239 size_vec = socket.get8(14);
1240 inv = socket.get8(15);
1241 tsize = socket.get8(16);
1242 time = socket.get32(17);
1243
1244 if (socket.debug() >= 3)
1245 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);
1246 }
1247
1248 uint64_t pa;
1249 uint64_t data;
1250 uint8_t size_vec;
1251 uint8_t inv;
1252 uint8_t tsize;
1253 uint8_t time;
1254};
1255/*}}}*/
1256class SS_PliCommand_MEM_DMA_STORE_START/*{{{*/
1257{
1258 // %1=pa(5),%2=tsize(1),%3=time(4)
1259 public:
1260 SS_PliCommand_MEM_DMA_STORE_START( SS_PliSocket& socket )
1261 {
1262 socket.read(10);
1263
1264 pa = socket.get40(0);
1265 tsize = socket.get8(5);
1266 time = socket.get32(6);
1267
1268 if (socket.debug() >= 3)
1269 fprintf(stdout,"PLI: cmd=MEM_DMA_STORE_START pa=0x%llx tsize=0x%x time=%d\n",pa,tsize,time);
1270 }
1271
1272 uint64_t pa;
1273 uint8_t tsize;
1274 uint8_t time;
1275};
1276/*}}}*/
1277class SS_PliCommand_MEM_DMA_STORE_START_44PA/*{{{*/
1278{
1279 // %1=pa(6),%2=tsize(1),%3=time(4)
1280 public:
1281 SS_PliCommand_MEM_DMA_STORE_START_44PA( SS_PliSocket& socket )
1282 {
1283 socket.read(11);
1284
1285 pa = socket.get48(0);
1286 tsize = socket.get8(6);
1287 time = socket.get32(7);
1288
1289 if (socket.debug() >= 3)
1290 fprintf(stdout,"PLI: cmd=MEM_DMA_STORE_START_44PA pa=0x%llx tsize=0x%x time=%d\n",pa,tsize,time);
1291 }
1292
1293 uint64_t pa;
1294 uint8_t tsize;
1295 uint8_t time;
1296};
1297/*}}}*/
1298class SS_PliCommand_INTP/*{{{*/
1299{
1300 // %1=tid(1),%2=tt(1)
1301 public:
1302 SS_PliCommand_INTP( SS_PliSocket& socket )
1303 {
1304 socket.read(2);
1305
1306 tid = socket.get8(0);
1307 tt = socket.get8(1);
1308
1309 if (socket.debug() >= 3)
1310 fprintf(stdout,"PLI: cmd=INTP tid=%d tt=0x%x\n",tid,tt);
1311 }
1312
1313 uint8_t tid;
1314 uint8_t tt;
1315};
1316/*}}}*/
1317class SS_PliCommand_INTP_44PA/*{{{*/
1318{
1319 // %1=tid(2),%2=tt(1)
1320 public:
1321 SS_PliCommand_INTP_44PA( SS_PliSocket& socket )
1322 {
1323 socket.read(3);
1324
1325 tid = socket.get16(0);
1326 tt = socket.get8(2);
1327
1328 if (socket.debug() >= 3)
1329 fprintf(stdout,"PLI: cmd=INTP_44PA tid=%d tt=0x%x\n",tid,tt);
1330 }
1331
1332 uint16_t tid;
1333 uint8_t tt;
1334};
1335/*}}}*/
1336class SS_PliCommand_ASR_READ/*{{{*/
1337{
1338 // %1=tid(1),%2=asr(1),%3=value(8)
1339 public:
1340 SS_PliCommand_ASR_READ( SS_PliSocket& socket )
1341 {
1342 socket.read(10);
1343
1344 tid = socket.get8(0);
1345 asr = socket.get8(1);
1346 data = socket.get64(2);
1347
1348 if (socket.debug() >= 3)
1349 fprintf(stdout,"PLI: cmd=ASR_READ tid=%d asr=0x%x data=0x%llx\n",tid,asr,data);
1350 }
1351
1352 uint8_t tid;
1353 uint8_t asr;
1354 uint64_t data;
1355};
1356/*}}}*/
1357class SS_PliCommand_ASR_READ_44PA/*{{{*/
1358{
1359 // %1=tid(2),%2=asr(1),%3=value(8)
1360 public:
1361 SS_PliCommand_ASR_READ_44PA( SS_PliSocket& socket )
1362 {
1363 socket.read(11);
1364
1365 tid = socket.get16(0);
1366 asr = socket.get8(2);
1367 data = socket.get64(3);
1368
1369 if (socket.debug() >= 3)
1370 fprintf(stdout,"PLI: cmd=ASR_READ_44PA tid=%d asr=0x%x data=0x%llx\n",tid,asr,data);
1371 }
1372
1373 uint16_t tid;
1374 uint8_t asr;
1375 uint64_t data;
1376};
1377/*}}}*/
1378class SS_PliCommand_ASR_WRITE/*{{{*/
1379{
1380 // %1=tid(1),%2=asr(1),%3=value(8)
1381 public:
1382 SS_PliCommand_ASR_WRITE( SS_PliSocket& socket )
1383 {
1384 socket.read(10);
1385
1386 tid = socket.get8(0);
1387 asr = socket.get8(1);
1388 data = socket.get64(2);
1389
1390 if (socket.debug() >= 3)
1391 fprintf(stdout,"PLI: cmd=ASR_WRITE tid=%d asr=0x%x data=0x%llx\n",tid,asr,data);
1392 }
1393
1394 uint8_t tid;
1395 uint8_t asr;
1396 uint64_t data;
1397};
1398/*}}}*/
1399class SS_PliCommand_ASR_WRITE_44PA/*{{{*/
1400{
1401 // %1=tid(2),%2=asr(1),%3=value(8)
1402 public:
1403 SS_PliCommand_ASR_WRITE_44PA( SS_PliSocket& socket )
1404 {
1405 socket.read(11);
1406
1407 tid = socket.get16(0);
1408 asr = socket.get8(2);
1409 data = socket.get64(3);
1410
1411 if (socket.debug() >= 3)
1412 fprintf(stdout,"PLI: cmd=ASR_WRITE_44PA tid=%d asr=0x%x data=0x%llx\n",tid,asr,data);
1413 }
1414
1415 uint16_t tid;
1416 uint8_t asr;
1417 uint64_t data;
1418};
1419/*}}}*/
1420class SS_PliCommand_ASI_READ/*{{{*/
1421{
1422 // %1=tid(1),%2=asi(1),%3=va(8),%4=value(8)
1423 public:
1424 SS_PliCommand_ASI_READ( SS_PliSocket& socket )
1425 {
1426 socket.read(18);
1427
1428 tid = socket.get8(0);
1429 asi = socket.get8(1);
1430 va = socket.get64(2);
1431 data = socket.get64(10);
1432
1433 if (socket.debug() >= 3)
1434 fprintf(stdout,"PLI: cmd=ASI_READ tid=%d asi=0x%x va=0x%llx data=0x%llx\n",tid,asi,va,data);
1435 }
1436
1437 uint8_t tid;
1438 uint8_t asi;
1439 uint64_t va;
1440 uint64_t data;
1441};
1442/*}}}*/
1443class SS_PliCommand_ASI_READ_44PA/*{{{*/
1444{
1445 // %1=tid(2),%2=asi(1),%3=va(8),%4=value(8)
1446 public:
1447 SS_PliCommand_ASI_READ_44PA( SS_PliSocket& socket )
1448 {
1449 socket.read(19);
1450
1451 tid = socket.get16(0);
1452 asi = socket.get8(2);
1453 va = socket.get64(3);
1454 data = socket.get64(11);
1455
1456 if (socket.debug() >= 3)
1457 fprintf(stdout,"PLI: cmd=ASI_READ_44PA tid=%d asi=0x%x va=0x%llx data=0x%llx\n",tid,asi,va,data);
1458 }
1459
1460 uint16_t tid;
1461 uint8_t asi;
1462 uint64_t va;
1463 uint64_t data;
1464};
1465/*}}}*/
1466class SS_PliCommand_ASI_WRITE/*{{{*/
1467{
1468 // %1=tid(1),%2=asi(1),%3=va(8),%4=value(8)
1469 public:
1470 SS_PliCommand_ASI_WRITE( SS_PliSocket& socket )
1471 {
1472 socket.read(18);
1473
1474 tid = socket.get8(0);
1475 asi = socket.get8(1);
1476 va = socket.get64(2);
1477 data = socket.get64(10);
1478
1479 if (socket.debug() >= 3)
1480 fprintf(stdout,"PLI: cmd=ASI_WRITE tid=%d asi=0x%x va=0x%llx data=0x%llx\n",tid,asi,va,data);
1481 }
1482
1483 uint8_t tid;
1484 uint8_t asi;
1485 uint64_t va;
1486 uint64_t data;
1487};
1488/*}}}*/
1489class SS_PliCommand_ASI_WRITE_44PA/*{{{*/
1490{
1491 // %1=tid(2),%2=asi(1),%3=va(8),%4=value(8)
1492 public:
1493 SS_PliCommand_ASI_WRITE_44PA( SS_PliSocket& socket )
1494 {
1495 socket.read(19);
1496
1497 tid = socket.get16(0);
1498 asi = socket.get8(2);
1499 va = socket.get64(3);
1500 data = socket.get64(11);
1501
1502 if (socket.debug() >= 3)
1503 fprintf(stdout,"PLI: cmd=ASI_WRITE_44PA tid=%d asi=0x%x va=0x%llx data=0x%llx\n",tid,asi,va,data);
1504 }
1505
1506 uint16_t tid;
1507 uint8_t asi;
1508 uint64_t va;
1509 uint64_t data;
1510};
1511/*}}}*/
1512class SS_PliCommand_CMP_WRITE/*{{{*/
1513{
1514 // %1=va(1),%2=status(8)
1515 public:
1516 SS_PliCommand_CMP_WRITE( uint8_t va_, uint64_t data_ ) :
1517 va(va_), data(data_) { }
1518 SS_PliCommand_CMP_WRITE( SS_PliSocket& socket )
1519 {
1520 socket.read(9);
1521
1522 va = socket.get8(0);
1523 data = socket.get64(1);
1524
1525 if (socket.debug() >= 3)
1526 fprintf(stdout,"PLI: cmd=CMP_WRITE va=0x%x data=0x%llx\n",va,data);
1527 }
1528
1529 uint8_t va;
1530 uint64_t data;
1531};
1532/*}}}*/
1533class SS_PliCommand_CMP_WRITE_MN/*{{{*/
1534{
1535 // %1=node-id(1),%2=va(1),%3=status(8)
1536 public:
1537 SS_PliCommand_CMP_WRITE_MN() { }
1538 SS_PliCommand_CMP_WRITE_MN( SS_PliSocket& socket )
1539 {
1540 socket.read(10);
1541
1542 nid = socket.get8(0);
1543 va = socket.get8(1);
1544 data = socket.get64(2);
1545
1546 if (socket.debug() >= 3)
1547 fprintf(stdout,"PLI: cmd=CMP_WRITE_MN nid=%d va=0x%x data=0x%llx\n",(int)nid,va,data);
1548 }
1549
1550 uint8_t nid;
1551 uint8_t va;
1552 uint64_t data;
1553};
1554/*}}}*/
1555class SS_PliCommand_CSR_READ/*{{{*/
1556{
1557 // %1=pa(8),%2=value(8),%3=littleEndian(1)
1558 public:
1559 SS_PliCommand_CSR_READ( SS_PliSocket& socket )
1560 {
1561 socket.read(17);
1562
1563 pa = socket.get64(0);
1564 data = socket.get64(8);
1565 le = socket.get8(16);
1566
1567 if (socket.debug() >= 3)
1568 fprintf(stdout,"PLI: cmd=CSR_READ pa=0x%llx data=0x%llx le=%d\n",pa,data,(int)le);
1569 }
1570
1571 uint64_t pa;
1572 uint64_t data;
1573 uint8_t le;
1574};
1575/*}}}*/
1576class SS_PliCommand_CSR_READ_44PA/*{{{*/
1577{
1578 // %1=pa(6),%2=value(8),%3=littleEndian(1)
1579 public:
1580 SS_PliCommand_CSR_READ_44PA( SS_PliSocket& socket )
1581 {
1582 socket.read(15);
1583
1584 pa = socket.get48(0);
1585 data = socket.get64(6);
1586 le = socket.get8(14);
1587
1588 if (socket.debug() >= 3)
1589 fprintf(stdout,"PLI: cmd=CSR_READ_44PA pa=0x%llx data=0x%llx le=%d\n",pa,data,(int)le);
1590 }
1591
1592 uint64_t pa;
1593 uint64_t data;
1594 uint8_t le;
1595};
1596/*}}}*/
1597class SS_PliCommand_CSR_READ_MN/*{{{*/
1598{
1599 // %1=tid(1),%2=pa(8),%3=value(8),%4=littleEndian(1)
1600 public:
1601 SS_PliCommand_CSR_READ_MN( SS_PliSocket& socket )
1602 {
1603 socket.read(18);
1604
1605 tid = socket.get8(0);
1606 pa = socket.get64(1);
1607 data = socket.get64(9);
1608 le = socket.get8(17);
1609
1610 if (socket.debug() >= 3)
1611 fprintf(stdout,"PLI: cmd=CSR_READ_MN tid=%d pa=%#llx data=%#llx le=%d\n",(int)tid,pa,data,(int)le);
1612 }
1613
1614 uint8_t tid; // global strand-id
1615 uint64_t pa;
1616 uint64_t data;
1617 uint8_t le;
1618};
1619/*}}}*/
1620class SS_PliCommand_CSR_READ_MN_44PA/*{{{*/
1621{
1622 // %1=tid(2),%2=pa(6),%3=value(8),%4=littleEndian(1)
1623 // share the same command id as CSR_READ_MN
1624 public:
1625 SS_PliCommand_CSR_READ_MN_44PA( SS_PliSocket& socket )
1626 {
1627 socket.read(17);
1628
1629 tid = socket.get16(0);
1630 pa = socket.get48(2);
1631 data = socket.get64(8);
1632 le = socket.get8(16);
1633
1634 if (socket.debug() >= 3)
1635 fprintf(stdout,"PLI: cmd=CSR_READ_MN_44PA tid=%d pa=%#llx data=%#llx le=%d\n",(int)tid,pa,data,(int)le);
1636 }
1637
1638 uint16_t tid; // global strand-id
1639 uint64_t pa;
1640 uint64_t data;
1641 uint8_t le;
1642};
1643/*}}}*/
1644class SS_PliCommand_CSR_WRITE/*{{{*/
1645{
1646 // %1=pa(8),%2=value(8),%3=littleEndian(1)
1647 public:
1648 SS_PliCommand_CSR_WRITE( SS_PliSocket& socket )
1649 {
1650 socket.read(17);
1651
1652 pa = socket.get64(0);
1653 data = socket.get64(8);
1654 le = socket.get8(16);
1655
1656 if (socket.debug() >= 3)
1657 fprintf(stdout,"PLI: cmd=CSR_WRITE pa=0x%llx data=0x%llx le=%d\n",pa,data,(int)le);
1658 }
1659
1660 uint64_t pa;
1661 uint64_t data;
1662 uint8_t le;
1663};
1664/*}}}*/
1665class SS_PliCommand_CSR_WRITE_44PA/*{{{*/
1666{
1667 // %1=pa(6),%2=value(8),%3=littleEndian(1)
1668 public:
1669 SS_PliCommand_CSR_WRITE_44PA( SS_PliSocket& socket )
1670 {
1671 socket.read(15);
1672
1673 pa = socket.get48(0);
1674 data = socket.get64(6);
1675 le = socket.get8(14);
1676
1677 if (socket.debug() >= 3)
1678 fprintf(stdout,"PLI: cmd=CSR_WRITE_44PA pa=0x%llx data=0x%llx le=%d\n",pa,data,(int)le);
1679 }
1680
1681 uint64_t pa;
1682 uint64_t data;
1683 uint8_t le;
1684};
1685/*}}}*/
1686class SS_PliCommand_CSR_WRITE_MN/*{{{*/
1687{
1688 // %1=node-id(1),%2=pa(8),%3=value(8),%4=littleEndian(1)
1689 public:
1690 SS_PliCommand_CSR_WRITE_MN( SS_PliSocket& socket )
1691 {
1692 socket.read(18);
1693
1694 nid = socket.get8(0);
1695 pa = socket.get64(1);
1696 data = socket.get64(9);
1697 le = socket.get8(17);
1698
1699 if (socket.debug() >= 3)
1700 fprintf(stdout,"PLI: cmd=CSR_WRITE_MN nid=%d pa=%#llx data=%#llx le=%d\n",(int)nid,pa,data,(int)le);
1701 }
1702
1703 uint8_t nid;
1704 uint64_t pa;
1705 uint64_t data;
1706 uint8_t le;
1707};
1708/*}}}*/
1709class SS_PliCommand_CSR_WRITE_MN_44PA/*{{{*/
1710{
1711 // %1=node-id(1),%2=pa(6),%3=value(8),%4=littleEndian(1)
1712 // share the same command id as CSR_WRITE_MN
1713 public:
1714 SS_PliCommand_CSR_WRITE_MN_44PA( SS_PliSocket& socket )
1715 {
1716 socket.read(16);
1717
1718 nid = socket.get8(0);
1719 pa = socket.get48(1);
1720 data = socket.get64(7);
1721 le = socket.get8(15);
1722
1723 if (socket.debug() >= 3)
1724 fprintf(stdout,"PLI: cmd=CSR_WRITE_MN_44PA nid=%d pa=%#llx data=%#llx le=%d\n",(int)nid,pa,data,(int)le);
1725 }
1726
1727 uint8_t nid;
1728 uint64_t pa;
1729 uint64_t data;
1730 uint8_t le;
1731};
1732/*}}}*/
1733
1734#endif
1735
1736
1737
1738
1739
1740
1741