Lines Matching defs:sf

44 static int	split_openfile(struct split_file *sf);
63 split_file_destroy(struct split_file *sf)
67 if (sf->filesc > 0) {
68 for (i = 0; i < sf->filesc; i++) {
69 free(sf->filesv[i]);
70 free(sf->descsv[i]);
72 free(sf->filesv);
73 free(sf->descsv);
75 free(sf);
79 split_openfile(struct split_file *sf)
84 sf->curfd = open(sf->filesv[sf->curfile], O_RDONLY);
85 if (sf->curfd >= 0)
87 if ((sf->curfd == -1) && (errno != ENOENT))
92 sf->descsv[sf->curfile]);
96 sf->file_pos = 0;
105 struct split_file *sf;
138 sf = malloc(sizeof(struct split_file));
139 bzero(sf, sizeof(struct split_file));
153 sf->filesc++;
154 sf->filesv = realloc(sf->filesv, sizeof(*(sf->filesv)) * sf->filesc);
155 sf->descsv = realloc(sf->descsv, sizeof(*(sf->descsv)) * sf->filesc);
156 sf->filesv[sf->filesc - 1] = strdup(buf);
157 sf->descsv[sf->filesc - 1] = strdup(cp);
162 if (sf->filesc == 0) {
163 split_file_destroy(sf);
166 errno = split_openfile(sf);
168 split_file_destroy(sf);
173 f->f_fsdata = sf;
181 struct split_file *sf;
183 sf = (struct split_file *)f->f_fsdata;
184 fd = sf->curfd;
185 split_file_destroy(sf);
194 struct split_file *sf;
196 sf = (struct split_file *)f->f_fsdata;
199 nread = read(sf->curfd, buf, size - totread);
205 sf->tot_pos += nread;
206 sf->file_pos += nread;
211 if (sf->curfile == (sf->filesc - 1)) /* Last slice */
215 if (close(sf->curfd) != 0)
218 sf->curfile++;
219 errno = split_openfile(sf);
237 struct split_file *sf;
239 sf = (struct split_file *)f->f_fsdata;
244 seek_by -= sf->tot_pos;
286 if (sf->file_pos + seek_by < 0)
288 new_pos = lseek(sf->curfd, seek_by, SEEK_CUR);
293 sf->tot_pos += new_pos - sf->file_pos;
294 sf->file_pos = new_pos;
297 return (sf->tot_pos);
304 struct split_file *sf = (struct split_file *)f->f_fsdata;
307 if ((result = fstat(sf->curfd, sb)) == 0)