data/full_repos/permissive/161356276/hdl/ip_cores/urv-core/ip_cores/general-cores/sim/simdrv_defs.svh
 line:4: before: "typedef"
1: b"%Error: data/full_repos/permissive/161356276/hdl/ip_cores/urv-core/ip_cores/general-cores/sim/simdrv_defs.svh:16: Unsupported: virtual classes\nvirtual class CBusAccessor;\n^~~~~~~\n%Error: data/full_repos/permissive/161356276/hdl/ip_cores/urv-core/ip_cores/general-cores/sim/simdrv_defs.svh:16: Unsupported: classes\nvirtual class CBusAccessor;\n        ^~~~~\n%Error: data/full_repos/permissive/161356276/hdl/ip_cores/urv-core/ip_cores/general-cores/sim/simdrv_defs.svh:17: Unsupported: 'static' class item\n   static int _null  = 0;\n   ^~~~~~\n%Error: data/full_repos/permissive/161356276/hdl/ip_cores/urv-core/ip_cores/general-cores/sim/simdrv_defs.svh:19: Unsupported: pure virtual class method\n   pure virtual task writem(uint64_t addr[], uint64_t data[], input int size, ref int result);\n   ^~~~\n%Error: data/full_repos/permissive/161356276/hdl/ip_cores/urv-core/ip_cores/general-cores/sim/simdrv_defs.svh:20: Unsupported: pure virtual class method\n   pure virtual task readm(uint64_t addr[], ref uint64_t data[], input int size, ref int result);\n   ^~~~\n%Error: data/full_repos/permissive/161356276/hdl/ip_cores/urv-core/ip_cores/general-cores/sim/simdrv_defs.svh:22: Unsupported: virtual class member qualifier\n   virtual task read(uint64_t addr, ref uint64_t data, input int size = 4, ref int result = _null);\n   ^~~~~~~\n%Error: data/full_repos/permissive/161356276/hdl/ip_cores/urv-core/ip_cores/general-cores/sim/simdrv_defs.svh:26: Unsupported: Dynamic array new\n      da= new[1];\n          ^~~\n%Error: data/full_repos/permissive/161356276/hdl/ip_cores/urv-core/ip_cores/general-cores/sim/simdrv_defs.svh:34: Unsupported: virtual class member qualifier\n   virtual task write(uint64_t addr, uint64_t data, input int size = 4, ref int result = _null);\n   ^~~~~~~\n%Error: data/full_repos/permissive/161356276/hdl/ip_cores/urv-core/ip_cores/general-cores/sim/simdrv_defs.svh:43: Unsupported: classes\nclass CSimUtils;\n^~~~~\n%Error: data/full_repos/permissive/161356276/hdl/ip_cores/urv-core/ip_cores/general-cores/sim/simdrv_defs.svh:45: Unsupported: 'static' class item\n   static function automatic u64_array_t pack(byte x[], int size, int big_endian = 1);\n   ^~~~~~\n%Error: data/full_repos/permissive/161356276/hdl/ip_cores/urv-core/ip_cores/general-cores/sim/simdrv_defs.svh:51: Unsupported: Dynamic array new\n      tmp     = new [nwords];\n                ^~~\n%Error: data/full_repos/permissive/161356276/hdl/ip_cores/urv-core/ip_cores/general-cores/sim/simdrv_defs.svh:74: Unsupported: 'static' class item\n   static function automatic byte_array_t unpack(u64_array_t x, int entry_size, int size, int big_endian = 1);\n   ^~~~~~\n%Error: data/full_repos/permissive/161356276/hdl/ip_cores/urv-core/ip_cores/general-cores/sim/simdrv_defs.svh:78: Unsupported: Dynamic array new\n      tmp  = new[size];\n             ^~~\n%Error: data/full_repos/permissive/161356276/hdl/ip_cores/urv-core/ip_cores/general-cores/sim/simdrv_defs.svh:100: Unsupported: Static in this context\nstatic CSimUtils SimUtils;\n^~~~~~\n%Error: Exiting due to 14 error(s)\n        ... See the manual and https://verilator.org for more assistance.\n"
function automatic u64_array_t pack(byte x[], int size, int big_endian = 1);
      u64_array_t tmp;
      int i, j;
      int nwords, nbytes;

      nwords  = (x.size() + size - 1) / size;
      tmp     = new [nwords];

      for(i=0;i<nwords;i++)
        begin      
           uint64_t d;
           d         =0;
           nbytes    = (x.size() - i * nbytes > size ? size : x.size() - i*nbytes);
           
           for(j=0;j<nbytes;j++)
             begin
                if(big_endian)
                  d  = d | ((x[i*size+j] << (8*(size-1-j))));
                else
                  d  = d | ((x[i*size+j] << (8*j)));
             end

           
           tmp[i]    = d;
        end
      return tmp;
      endfunction
function automatic u64_array_t pack(byte x[], int size, int big_endian = 1);

      u64_array_t tmp;
      int i, j;
      int nwords, nbytes;

      nwords  = (x.size() + size - 1) / size;
      tmp     = new [nwords];

      for(i=0;i<nwords;i++)
        begin      
           uint64_t d;
           d         =0;
           nbytes    = (x.size() - i * nbytes > size ? size : x.size() - i*nbytes);
           
           for(j=0;j<nbytes;j++)
             begin
                if(big_endian)
                  d  = d | ((x[i*size+j] << (8*(size-1-j))));
                else
                  d  = d | ((x[i*size+j] << (8*j)));
             end

           
           tmp[i]    = d;
        end
      return tmp;
      endfunction