/* iad_rfrd.c */

/* Dump the state of the R 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"

rfred_t rfred;

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

   fd = open("/dev/ia5515", O_RDWR);
   len = ioctl(fd, IA_RFRED, &rfred);

   printf("mode_reg_0      %8x \n", rfred.mode_reg_0 & 0xffff);
   printf("mode_reg_1      %8x \n", rfred.mode_reg_1 & 0xffff);
   printf("mask_reg        %8x \n", rfred.mask_reg & 0xffff);
   printf("intr_status_reg %8x \n", rfred.intr_status_reg & 0xffff);
   printf("drp_pkt_cntr    %8x \n", rfred.drp_pkt_cntr & 0xffff);
   printf("err_cntr        %8x \n", rfred.err_cntr & 0xffff);
   printf("drp_cbr_cntr    %8x \n", rfred.drp_cbr_cntr & 0xffff);
   printf("cbr_base_adr    %8x \n", rfred.cbr_base_adr & 0xffff);
   printf("pm_addr_match   %8x \n", rfred.pm_addr_match & 0xffff);
   printf("cell_ctr0       %8x \n", rfred.cell_ctr0 & 0xffff);
   printf("cell_ctr1       %8x \n", rfred.cell_ctr1 & 0xffff);
   printf("cmd_reg         %8x \n", rfred.cmd_reg & 0xffff);
   printf("desc_base       %8x \n", rfred.desc_base & 0xffff);
   printf("vc_lkup_base    %8x \n", rfred.vc_lkup_base & 0xffff);
   printf("reass_base      %8x \n", rfred.reass_base & 0xffff);
   printf("queue_base      %8x \n", rfred.queue_base & 0xffff);
   printf("pkt_tm_cnt      %8x \n", rfred.pkt_tm_cnt & 0xffff);
   printf("tmout_range     %8x \n", rfred.tmout_range & 0xffff);
   printf("intrvl_cntr     %8x \n", rfred.intrvl_cntr & 0xffff);
   printf("tmout_indx      %8x \n", rfred.tmout_indx & 0xffff);
   printf("vp_lkup_base    %8x \n", rfred.vp_lkup_base & 0xffff);
   printf("vp_filter       %8x \n", rfred.vp_filter & 0xffff);
   printf("sml_st_adr      %8x \n", rfred.sml_st_adr & 0xffff);
   printf("sml_ed_adr      %8x \n", rfred.sml_ed_adr & 0xffff);
   printf("sml_rd_ptr      %8x \n", rfred.sml_rd_ptr & 0xffff);
   printf("sml_wr_ptr      %8x \n", rfred.sml_wr_ptr & 0xffff);
   printf("lrg_st_adr      %8x \n", rfred.lrg_st_adr & 0xffff);
   printf("lrg_ed_adr      %8x \n", rfred.lrg_ed_adr & 0xffff);
   printf("lrg_rd_ptr      %8x \n", rfred.lrg_rd_ptr & 0xffff);
   printf("lrg_wr_ptr      %8x \n", rfred.lrg_wr_ptr & 0xffff);
   printf("pcq_st_adr      %8x \n", rfred.pcq_st_adr & 0xffff);
   printf("pcq_ed_adr      %8x \n", rfred.pcq_ed_adr & 0xffff);
   printf("pcq_rd_ptr      %8x \n", rfred.pcq_rd_ptr & 0xffff);
   printf("pcq_wr_ptr      %8x \n", rfred.pcq_wr_ptr & 0xffff);
   printf("excp_st_adr     %8x \n", rfred.excp_st_adr & 0xffff);
   printf("excp_ed_adr     %8x \n", rfred.excp_ed_adr & 0xffff);
   printf("excp_rd_ptr     %8x \n", rfred.excp_rd_ptr & 0xffff);
   printf("excp_wr_ptr     %8x \n", rfred.excp_wr_ptr & 0xffff);
   printf("cbr_st_adr      %8x \n", rfred.cbr_st_adr & 0xffff);
   printf("cbr_ed_adr      %8x \n", rfred.cbr_ed_adr & 0xffff);
   printf("cbr_rd_ptr      %8x \n", rfred.cbr_rd_ptr & 0xffff);
   printf("cbr_wr_ptr      %8x \n", rfred.cbr_wr_ptr & 0xffff);
   printf("raw_st_adr      %8x \n", rfred.raw_st_adr & 0xffff);
   printf("raw_ed_adr      %8x \n", rfred.raw_ed_adr & 0xffff);
   printf("raw_rd_ptr      %8x \n", rfred.raw_rd_ptr & 0xffff);
   printf("raw_wr_ptr      %8x \n", rfred.raw_wr_ptr & 0xffff);
   printf("state_reg       %8x \n", rfred.state_reg & 0xffff);
   printf("sml_buf_chk     %8x \n", rfred.sml_buf_chk & 0xffff);
   printf("lrg_buf_chk     %8x \n", rfred.lrg_buf_chk & 0xffff);
   printf("lrg_buf_size    %8x \n", rfred.lrg_buf_size & 0xffff);
   printf("qamcc_chk       %8x \n", rfred.qamcc_chk & 0xffff);
   printf("drp_pkt_cntr_nc %8x \n", rfred.drp_pkt_cntr_nc & 0xffff);
   printf("err_cntr_nc     %8x \n", rfred.err_cntr_nc & 0xffff);
   printf("drp_cbr_cntr_nc %8x \n", rfred.drp_cbr_cntr_nc & 0xffff);
   printf("cell_ctr0_nc    %8x \n", rfred.cell_ctr0_nc & 0xffff);
   printf("cell_ctr1_nc    %8x \n", rfred.cell_ctr1_nc & 0xffff);

}
