Lines Matching refs:len
27 static void mmapfailed P((const long len)) __attribute__((noreturn));
32 void makeblock(mb,len)memblk*const mb;const long len;
33 { mb->len=0;mb->p=malloc(1);set_fd(mb,-1);
34 if(len)
35 resizeblock(mb,len,0);
42 { munmap(mb->p,mb->len+1);
54 { long len=mb->len+1;
55 if(munmap(mb->p,len))
56 mmapfailed(len); /* don't want to continue here */
57 if((mb->p=mmap(0,len,PROT_READ,MAP_PRIVATE,mb->fd,(off_t)0))==MAP_FAILED)
58 mmapfailed(len);
65 int resizeblock(mb,len,nonfatal)memblk*const mb;const long len;
67 { if(len==mb->len)
69 if(!len)
71 mb->len=0;mb->p=malloc(1);set_fd(mb,-1);
75 if(len>MAXinMEM&&mb->fd<0) /* time to switch over */
80 { mb->filelen=len;
85 else if(mb->len)
89 for(start=0,towrite=mb->len>len?len:mb->len;towrite;)
95 mb->len=len;
101 { if(len>mb->filelen) /* need to extend? */
102 { mb->filelen=len;
104 { char*p=malloc(len+1); /* can't extend, switch to malloc */
105 tmemmove(p,mb->p,mb->len);
106 munmap(mb->p,mb->len+1);
107 mb->len=len;
110 munmap(mb->p,mb->len+1);
111 mmap: if((mb->p=mmap(0,len+1,P_RW,MAP_SHARED,mb->fd,(off_t)0))==MAP_FAILED)
112 mmapfailed(len+1);
114 mb->len=len;
120 p=frealloc(mb->p,(size_t)(len+1));
126 mb->p=realloc(mb->p,len+1);
127 mb->len=len+1;
128 mb->p[len]='\0';
138 if(filled<mb->len) /* skip the initial resize if we have space */
151 if(newlast=(*read_func)(mb->p+filled,mb->len-filled,data))
155 filled=mb->len;
171 static void mmapfailed(len)const long len;
174 syslog(LOG_NOTICE,"%s of %ld bytes\n",mmapfailed,len);