Lines Matching defs:sf

47 static int	split_openfile(struct split_file *sf);
66 split_file_destroy(struct split_file *sf)
70 if (sf->filesc > 0) {
71 for (i = 0; i < sf->filesc; i++) {
72 free(sf->filesv[i]);
73 free(sf->descsv[i]);
75 free(sf->filesv);
76 free(sf->descsv);
78 free(sf);
82 split_openfile(struct split_file *sf)
87 sf->curfd = open(sf->filesv[sf->curfile], O_RDONLY);
88 if (sf->curfd >= 0)
90 if ((sf->curfd == -1) && (errno != ENOENT))
95 sf->descsv[sf->curfile]);
99 sf->file_pos = 0;
108 struct split_file *sf;
141 sf = malloc(sizeof(struct split_file));
142 bzero(sf, sizeof(struct split_file));
156 sf->filesc++;
157 sf->filesv = realloc(sf->filesv, sizeof(*(sf->filesv)) * sf->filesc);
158 sf->descsv = realloc(sf->descsv, sizeof(*(sf->descsv)) * sf->filesc);
159 sf->filesv[sf->filesc - 1] = strdup(buf);
160 sf->descsv[sf->filesc - 1] = strdup(cp);
165 if (sf->filesc == 0) {
166 split_file_destroy(sf);
169 errno = split_openfile(sf);
171 split_file_destroy(sf);
176 f->f_fsdata = sf;
184 struct split_file *sf;
186 sf = (struct split_file *)f->f_fsdata;
187 fd = sf->curfd;
188 split_file_destroy(sf);
197 struct split_file *sf;
199 sf = (struct split_file *)f->f_fsdata;
202 nread = read(sf->curfd, buf, size - totread);
208 sf->tot_pos += nread;
209 sf->file_pos += nread;
214 if (sf->curfile == (sf->filesc - 1)) /* Last slice */
218 if (close(sf->curfd) != 0)
221 sf->curfile++;
222 errno = split_openfile(sf);
240 struct split_file *sf;
242 sf = (struct split_file *)f->f_fsdata;
247 seek_by -= sf->tot_pos;
289 if (sf->file_pos + seek_by < 0)
291 new_pos = lseek(sf->curfd, seek_by, SEEK_CUR);
296 sf->tot_pos += new_pos - sf->file_pos;
297 sf->file_pos = new_pos;
300 return (sf->tot_pos);
307 struct split_file *sf = (struct split_file *)f->f_fsdata;
310 if ((result = fstat(sf->curfd, sb)) == 0)