/* iad_ffrd.c */

/* Dump the state of the F-fred */

#include <stdio.h>
#include <fcntl.h>


#include "ia_conf.h"
#include "ia_flip.h"
#include "ia_fred.h"
#include "ia_suni.h"
#include "ia_dbg.h"
#include "ia_cs.h"
#include "ia_comm.h"

ffred_t ffred;

main()
{
   int fd;
   int len;
   int i;
   int j;

   fd = open("/dev/ia5515", O_RDWR);
   len = ioctl(fd, IA_FFRED, &ffred);

   printf("rq_reg_b0       %8x \n", ffred.rq_reg_b0);
   printf("rq_reg_b1       %8x \n", ffred.rq_reg_b1);
   printf("rq_reg_b2       %8x \n", ffred.rq_reg_b2);
   printf("rq_reg_b3       %8x \n", ffred.rq_reg_b3);
   printf("rq_reg_a0       %8x \n", ffred.rq_reg_a0);
   printf("rq_reg_a1       %8x \n", ffred.rq_reg_a1);
   printf("rq_reg_a2       %8x \n", ffred.rq_reg_a2);
   printf("rq_reg_a3       %8x \n", ffred.rq_reg_a3);
   printf("cmd_reg         %8x \n", ffred.cmd_reg);
   printf("cbr_addr_hi     %8x \n", ffred.cbr_addr_hi);
   printf("cbr_addr_lo     %8x \n", ffred.cbr_addr_lo);
   printf("pm_addr_match   %8x \n", ffred.pm_addr_match);
   printf("prq_st_adr      %8x \n", ffred.prq_st_adr & 0xffff);
   printf("prq_ed_adr      %8x \n", ffred.prq_ed_adr & 0xffff);
   printf("prq_rd_ptr      %8x \n", ffred.prq_rd_ptr & 0xffff);
   printf("prq_wr_ptr      %8x \n", ffred.prq_wr_ptr & 0xffff);
   printf("tcq_st_adr      %8x \n", ffred.tcq_st_adr & 0xffff);
   printf("tcq_ed_adr      %8x \n", ffred.tcq_ed_adr & 0xffff);
   printf("tcq_rd_ptr      %8x \n", ffred.tcq_rd_ptr & 0xffff);
   printf("tcq_wr_ptr      %8x \n", ffred.tcq_wr_ptr & 0xffff);
   printf("queue_base      %8x \n", ffred.queue_base);
   printf("desc_base       %8x \n", ffred.desc_base);
   printf("vc_lkup_base    %8x \n", ffred.vc_lkup_base & 0xffff);
   printf("mode_reg_0      %8x \n", ffred.mode_reg_0 & 0xffff);
   printf("mode_reg_1      %8x \n", ffred.mode_reg_1 & 0xffff);
   printf("intr_status_reg %8x \n", ffred.intr_status_reg & 0xffff);
   printf("cell_ctr_high1  %8x \n", ffred.cell_ctr_high1);
   printf("cell_ctr_lo1    %8x \n", ffred.cell_ctr_lo1);
   printf("state_reg       %8x \n", ffred.state_reg & 0xffff);
   printf("rq_b0_sdn       %8x \n", ffred.rq_b0_sdn);
   printf("rq_b1_sdn       %8x \n", ffred.rq_b1_sdn);
   printf("rq_b2_sdn       %8x \n", ffred.rq_b2_sdn);
   printf("rq_b3_sdn       %8x \n", ffred.rq_b3_sdn);
   printf("rq_a0_sdn       %8x \n", ffred.rq_a0_sdn);
   printf("rq_a1_sdn       %8x \n", ffred.rq_a1_sdn);
   printf("rq_a2_sdn       %8x \n", ffred.rq_a2_sdn);
   printf("rq_a3_sdn       %8x \n", ffred.rq_a3_sdn);
   printf("curr_desc_num   %8x \n", ffred.curr_desc_num & 0xffff);
   printf("cc_label        %8x \n", ffred.cc_label);
   printf("cell_ctr_high2  %8x \n", ffred.cell_ctr_high2);
   printf("cell_ctr_lo2    %8x \n", ffred.cell_ctr_lo2);
}
