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; }
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; } }