Algorithm-MinPerfHashTwoLevel
view release on metacpan or search on metacpan
MinPerfHashTwoLevel.xs view on Meta::CPAN
void *ptr;
U32 alignment;
if (error)
sv_setpvs(error,"");
if (fd < 0) {
if (error)
sv_setpvf(error,"file '%s' could not be opened for read", file);
return MPH_MOUNT_ERROR_OPEN_FAILED;
}
if (fstat(fd,&st)==-1) {
if (error)
sv_setpvf(error,"file '%s' could not be fstat()ed", file);
return MPH_MOUNT_ERROR_FSTAT_FAILED;
}
if (st.st_size < sizeof(struct mph_header)) {
if (error)
sv_setpvf(error,"file '%s' is too small to be a valid PH2L file", file);
return MPH_MOUNT_ERROR_TOO_SMALL;
}
ptr = mmap(NULL, st.st_size, PROT_READ, MAP_SHARED | MPH_MAP_POPULATE, fd, 0);
close(fd); /* kernel holds its own refcount on the file, we do not need to keep it open */
if (ptr == MAP_FAILED) {
( run in 0.947 second using v1.01-cache-2.11-cpan-49f99fa48dc )