Exemplo n.º 1
0
at *
files(const char *s)
{
  at *ans = NIL;
  at **where = &ans;
  /* UNIX code */
#ifdef UNIX
  DIR *dirp;
  struct dirent *d;
  dirp = opendir(s);
  if (dirp) {
    while ((d = readdir(dirp))) {
      int n = NAMLEN(d);
      at *ats = new_string_bylen(n);
      char *s = SADD(ats->Object);
      strncpy(s, d->d_name, n); s[n] = 0;
      *where = cons(ats,NIL);
      where = &(*where)->Cdr;
    }
    closedir(dirp);
  }
#endif
  /* WIN32 code */
#ifdef WIN32
  struct _finddata_t info;
  char *last;
  long hfind;
  if ((s[0]=='/' || s[0]=='\\') && 
      (s[1]=='/' || s[1]=='\\') && !s[2]) 
  {
    hfind = GetLogicalDrives();
    strcpy(info.name,"A:\\");
    for (info.name[0]='A'; info.name[0]<='Z'; info.name[0]++)
      if (hfind & (1<<(info.name[0]-'A'))) {
       *where = cons(new_string(info.name),NIL);
       where = &(*where)->Cdr;
      }
  } else if (dirp(s)) {
    *where = cons(new_string(".."),NIL);
    where = &(*where)->Cdr;
  }
  strcpy(string_buffer,s);
  last = string_buffer + strlen(string_buffer);
  if (last>string_buffer && last[-1]!='/' && last[-1]!='\\')
    strcpy(last,"\\*.*");
  else 
    strcpy(last,"*.*");
  hfind = _findfirst(string_buffer, &info);
  if (hfind != -1) {
    do {
      if (strcmp(".",info.name) && strcmp("..",info.name)) {
       *where = cons(new_string(info.name),NIL);
       where = &(*where)->Cdr;
      }
    } while ( _findnext(hfind, &info) != -1 );
    _findclose(hfind);
  }
#endif
  /* Return */
  return ans;
}
Exemplo n.º 2
0
void 
initVirAddr(icp_firml_handle_t * handle)
{
    unsigned int cap_offset, ae_offset;
    unsigned int pmu_offset, scratch_offset, ssu_offset, ep_offset;
    GET_OFFSET(handle->sysMemInfo.deviceId, cap_offset, ae_offset, 
               pmu_offset, scratch_offset, ssu_offset, ep_offset);
    if(handle->Hal_dram_ch0_virtAddr == 0 ) 
    {
        handle->Hal_dram_ch0_virtAddr = 
                handle->sysMemInfo.dramDesc[0].dramBaseAddr_v;
    }
    if(handle->Hal_dram_ch1_virtAddr == 0 ) 
    {
        handle->Hal_dram_ch1_virtAddr = 
                handle->sysMemInfo.dramDesc[1].dramBaseAddr_v;
    }    
    if(handle->Hal_sram_virtAddr == 0 ) 
    {
        handle->Hal_sram_virtAddr = 
                handle->sysMemInfo.sramDesc.sramBaseAddr_v;           
    }
    if(handle->Hal_cap_global_ctl_csr_virtAddr == 0 ) 
    {
        handle->Hal_cap_global_ctl_csr_virtAddr = 
                SADD(handle->sysMemInfo.pciBars[ICP_AC_PMISC_BAR].virtAddr, 
                     cap_offset);
    }
    if(handle->Hal_cap_ae_xfer_csr_virtAddr == 0 ) 
    {
        handle->Hal_cap_ae_xfer_csr_virtAddr = 
                SADD(handle->sysMemInfo.pciBars[ICP_AC_PMISC_BAR].virtAddr, 
                     ae_offset);
    }
    if(handle->Hal_cap_ae_local_csr_virtAddr == 0 ) 
    {
        handle->Hal_cap_ae_local_csr_virtAddr = 
                SADD(handle->Hal_cap_ae_xfer_csr_virtAddr, 
                     LOCAL_TO_XFER_REG_OFFSET);
    }
    /* to be initialized later while icp_hal_debug.ko is loaded */
    if(handle->Hal_cap_pmu_csr_virtAddr == 0 ) 
    {
        if(handle->sysMemInfo.deviceId == ICP_ACCELCOMP_R_PCIE_DEVICE_ID_AC)
        {
            handle->Hal_cap_pmu_csr_virtAddr = 0;
        }
        else
        {
            handle->Hal_cap_pmu_csr_virtAddr = 
                    SADD(handle->sysMemInfo.pciBars[ICP_AC_PMISC_BAR].virtAddr, 
                         pmu_offset);
        }
    }
    if(handle->Hal_cap_hash_csr_virtAddr == 0 ) 
    {
        handle->Hal_cap_hash_csr_virtAddr = 
                SADD(handle->Hal_cap_global_ctl_csr_virtAddr, 
                     HASH_TO_GLOBAL_REG_OFFSET);
    }
    if(handle->Hal_scratch_rd_wr_swap_virtAddr == 0 ) 
    {
        if((handle->sysMemInfo.deviceId == 
           ICP_ACCELCOMP_R_PCIE_DEVICE_ID_AC) ||
           (handle->sysMemInfo.deviceId == 
           ICP_ACCELCOMP_B_PCIE_DEVICE_ID_AC) ||
           (handle->sysMemInfo.deviceId == 
           ICP_ACCELCOMP_RS_PCIE_DEVICE_ID_AC))
        {
            handle->Hal_scratch_rd_wr_swap_virtAddr = 0;
        }
        else
        {
            handle->Hal_scratch_rd_wr_swap_virtAddr = 
                    SADD(handle->sysMemInfo.pciBars[ICP_AC_PMISC_BAR].virtAddr, 
                         scratch_offset);
        }
    }
    handle->Hal_ae_fastaccess_csr_virtAddr = 0;
    
    if(handle->Hal_ssu_csr_virtAddr == 0 ) 
    {
        handle->Hal_ssu_csr_virtAddr = 
                SADD(handle->sysMemInfo.pciBars[ICP_AC_PMISC_BAR].virtAddr, 
                     ssu_offset);
    } 
    if(handle->Hal_ep_csr_virtAddr == 0 ) 
    {
        handle->Hal_ep_csr_virtAddr = 
                SADD(handle->sysMemInfo.pciBars[ICP_AC_PMISC_BAR].virtAddr, 
                     ep_offset);
    }
    if(handle->Hal_eagletail_ring_csr_virtAddr == 0 ) 
    {
        handle->Hal_eagletail_ring_csr_virtAddr = 
                handle->sysMemInfo.pciBars[ICP_AC_PETRINGCSR_BAR].virtAddr;
    } 
}