Symbol: offtab
sys/arch/mips/rmi/rmixl_pcie.c
727
static const int offtab[] =
sys/arch/mips/rmi/rmixl_pcie.c
730
for (i=0; i < sizeof(offtab)/sizeof(offtab[0]); i++) {
sys/arch/mips/rmi/rmixl_pcie.c
731
offset = 0x100 + offtab[i];
usr.bin/vndcompress/offtab.c
101
assert(window_start <= offtab->ot_n_offsets);
usr.bin/vndcompress/offtab.c
106
assert(offtab->ot_fdpos <= OFFTAB_MAX_FDPOS);
usr.bin/vndcompress/offtab.c
109
assert(ADD_OK(off_t, offtab->ot_fdpos, window_offset));
usr.bin/vndcompress/offtab.c
110
*pos = (offtab->ot_fdpos + window_offset);
usr.bin/vndcompress/offtab.c
117
offtab_read_window(struct offtab *offtab, uint32_t blkno, int read_flags)
usr.bin/vndcompress/offtab.c
119
const uint32_t window_start = rounddown(blkno, offtab->ot_window_size);
usr.bin/vndcompress/offtab.c
123
assert(offtab->ot_mode == OFFTAB_MODE_READ);
usr.bin/vndcompress/offtab.c
125
(lseek(offtab->ot_fd, 0, SEEK_CUR) == offtab->ot_fdpos) ||
usr.bin/vndcompress/offtab.c
126
((lseek(offtab->ot_fd, 0, SEEK_CUR) == -1) && (errno == ESPIPE)));
usr.bin/vndcompress/offtab.c
128
offtab_compute_window_position(offtab, window_start,
usr.bin/vndcompress/offtab.c
131
? pread_block(offtab->ot_fd, offtab->ot_window, window_bytes,
usr.bin/vndcompress/offtab.c
133
: read_block(offtab->ot_fd, offtab->ot_window, window_bytes));
usr.bin/vndcompress/offtab.c
135
(*offtab->ot_report)("read offset table at %"PRIuMAX,
usr.bin/vndcompress/offtab.c
141
(*offtab->ot_reportx)("partial read of offset table"
usr.bin/vndcompress/offtab.c
147
offtab->ot_window_start = window_start;
usr.bin/vndcompress/offtab.c
153
offtab_maybe_read_window(struct offtab *offtab, uint32_t blkno, int read_flags)
usr.bin/vndcompress/offtab.c
157
if ((offtab->ot_window_start <= blkno) &&
usr.bin/vndcompress/offtab.c
158
(blkno < offtab_current_window_end(offtab)))
usr.bin/vndcompress/offtab.c
161
if (!offtab_read_window(offtab, blkno, read_flags))
usr.bin/vndcompress/offtab.c
168
offtab_write_window(struct offtab *offtab)
usr.bin/vndcompress/offtab.c
173
assert(offtab->ot_mode == OFFTAB_MODE_WRITE);
usr.bin/vndcompress/offtab.c
175
offtab_compute_window_position(offtab, offtab->ot_window_start,
usr.bin/vndcompress/offtab.c
177
const ssize_t n_written = pwrite(offtab->ot_fd, offtab->ot_window,
usr.bin/vndcompress/offtab.c
189
offtab_maybe_write_window(struct offtab *offtab, uint32_t start, uint32_t end)
usr.bin/vndcompress/offtab.c
193
if (end <= offtab->ot_window_start)
usr.bin/vndcompress/offtab.c
195
if (offtab_current_window_end(offtab) < start)
usr.bin/vndcompress/offtab.c
198
offtab_write_window(offtab);
usr.bin/vndcompress/offtab.c
206
offtab_init(struct offtab *offtab, uint32_t n_offsets, uint32_t window_size,
usr.bin/vndcompress/offtab.c
210
assert(offtab != NULL);
usr.bin/vndcompress/offtab.c
216
offtab->ot_n_offsets = n_offsets;
usr.bin/vndcompress/offtab.c
218
offtab->ot_window_size = n_offsets;
usr.bin/vndcompress/offtab.c
220
offtab->ot_window_size = window_size;
usr.bin/vndcompress/offtab.c
221
assert(offtab->ot_window_size <= offtab->ot_n_offsets);
usr.bin/vndcompress/offtab.c
222
offtab->ot_window_start = (uint32_t)-1;
usr.bin/vndcompress/offtab.c
224
offtab->ot_window = malloc(offtab->ot_window_size * sizeof(uint64_t));
usr.bin/vndcompress/offtab.c
225
if (offtab->ot_window == NULL)
usr.bin/vndcompress/offtab.c
227
offtab->ot_blkno = (uint32_t)-1;
usr.bin/vndcompress/offtab.c
228
offtab->ot_fd = fd;
usr.bin/vndcompress/offtab.c
229
offtab->ot_fdpos = fdpos;
usr.bin/vndcompress/offtab.c
230
offtab->ot_report = &offtab_bug;
usr.bin/vndcompress/offtab.c
231
offtab->ot_reportx = &offtab_bugx;
usr.bin/vndcompress/offtab.c
232
offtab->ot_mode = OFFTAB_MODE_NONE;
usr.bin/vndcompress/offtab.c
239
offtab_destroy(struct offtab *offtab)
usr.bin/vndcompress/offtab.c
242
free(offtab->ot_window);
usr.bin/vndcompress/offtab.c
251
offtab_transmogrify_read_to_write(struct offtab *offtab, uint32_t blkno)
usr.bin/vndcompress/offtab.c
254
assert(offtab->ot_mode == OFFTAB_MODE_READ);
usr.bin/vndcompress/offtab.c
257
if (!offtab_maybe_read_window(offtab, blkno, OFFTAB_READ_SEEK))
usr.bin/vndcompress/offtab.c
260
offtab->ot_mode = OFFTAB_MODE_WRITE;
usr.bin/vndcompress/offtab.c
261
offtab->ot_blkno = blkno;
usr.bin/vndcompress/offtab.c
279
offtab_reset_read(struct offtab *offtab,
usr.bin/vndcompress/offtab.c
284
assert((lseek(offtab->ot_fd, 0, SEEK_CUR) == offtab->ot_fdpos) ||
usr.bin/vndcompress/offtab.c
285
((lseek(offtab->ot_fd, 0, SEEK_CUR) == -1) && (errno == ESPIPE)));
usr.bin/vndcompress/offtab.c
287
offtab->ot_report = report;
usr.bin/vndcompress/offtab.c
288
offtab->ot_reportx = reportx;
usr.bin/vndcompress/offtab.c
289
offtab->ot_mode = OFFTAB_MODE_READ;
usr.bin/vndcompress/offtab.c
290
offtab->ot_blkno = (uint32_t)-1;
usr.bin/vndcompress/offtab.c
292
if (!offtab_read_window(offtab, 0, OFFTAB_READ_NOSEEK))
usr.bin/vndcompress/offtab.c
295
if (offtab->ot_window_size < offtab->ot_n_offsets) {
usr.bin/vndcompress/offtab.c
297
const off_t offtab_bytes = ((off_t)offtab->ot_n_offsets *
usr.bin/vndcompress/offtab.c
299
assert(offtab->ot_fdpos <= OFFTAB_MAX_FDPOS);
usr.bin/vndcompress/offtab.c
302
assert(ADD_OK(off_t, offtab->ot_fdpos, offtab_bytes));
usr.bin/vndcompress/offtab.c
303
const off_t first_offset = (offtab->ot_fdpos + offtab_bytes);
usr.bin/vndcompress/offtab.c
304
if (lseek(offtab->ot_fd, first_offset, SEEK_SET) == -1) {
usr.bin/vndcompress/offtab.c
305
(*offtab->ot_report)("lseek to first offset 0x%"PRIx64,
usr.bin/vndcompress/offtab.c
320
offtab_prepare_get(struct offtab *offtab, uint32_t blkno)
usr.bin/vndcompress/offtab.c
323
assert(offtab->ot_mode == OFFTAB_MODE_READ);
usr.bin/vndcompress/offtab.c
324
assert(blkno < offtab->ot_n_offsets);
usr.bin/vndcompress/offtab.c
326
if (!offtab_maybe_read_window(offtab, blkno, OFFTAB_READ_SEEK))
usr.bin/vndcompress/offtab.c
329
assert(offtab->ot_window_start <= blkno);
usr.bin/vndcompress/offtab.c
330
assert(blkno < offtab_current_window_end(offtab));
usr.bin/vndcompress/offtab.c
332
offtab->ot_blkno = blkno;
usr.bin/vndcompress/offtab.c
341
offtab_get(struct offtab *offtab, uint32_t blkno)
usr.bin/vndcompress/offtab.c
344
assert(offtab->ot_mode == OFFTAB_MODE_READ);
usr.bin/vndcompress/offtab.c
345
assert(blkno == offtab->ot_blkno);
usr.bin/vndcompress/offtab.c
346
assert(offtab->ot_window_start <= blkno);
usr.bin/vndcompress/offtab.c
347
assert(blkno < offtab_current_window_end(offtab));
usr.bin/vndcompress/offtab.c
349
return be64toh(offtab->ot_window[blkno - offtab->ot_window_start]);
usr.bin/vndcompress/offtab.c
359
offtab_reset_write(struct offtab *offtab)
usr.bin/vndcompress/offtab.c
363
assert(lseek(offtab->ot_fd, 0, SEEK_CUR) == offtab->ot_fdpos);
usr.bin/vndcompress/offtab.c
365
offtab->ot_mode = OFFTAB_MODE_WRITE;
usr.bin/vndcompress/offtab.c
366
offtab->ot_blkno = (uint32_t)-1;
usr.bin/vndcompress/offtab.c
374
assert(offtab->ot_n_offsets > 0);
usr.bin/vndcompress/offtab.c
377
for (i = 0; i < offtab->ot_window_size; i++)
usr.bin/vndcompress/offtab.c
378
offtab->ot_window[i] = ~(uint64_t)0;
usr.bin/vndcompress/offtab.c
382
howmany(offtab->ot_n_offsets, offtab->ot_window_size);
usr.bin/vndcompress/offtab.c
385
offtab->ot_window_start = (i * offtab->ot_window_size);
usr.bin/vndcompress/offtab.c
386
offtab_write_window(offtab);
usr.bin/vndcompress/offtab.c
391
const off_t offtab_bytes = ((off_t)offtab->ot_n_offsets *
usr.bin/vndcompress/offtab.c
395
assert(offtab->ot_fdpos <= OFFTAB_MAX_FDPOS);
usr.bin/vndcompress/offtab.c
398
assert(ADD_OK(off_t, offtab->ot_fdpos, offtab_bytes));
usr.bin/vndcompress/offtab.c
399
const off_t first_offset = (offtab->ot_fdpos + offtab_bytes);
usr.bin/vndcompress/offtab.c
407
offtab->ot_window_start = 0;
usr.bin/vndcompress/offtab.c
408
offtab->ot_window[0] = htobe64((uint64_t)first_offset);
usr.bin/vndcompress/offtab.c
409
offtab_write_window(offtab);
usr.bin/vndcompress/offtab.c
411
if (lseek(offtab->ot_fd, first_offset, SEEK_SET) == -1)
usr.bin/vndcompress/offtab.c
428
offtab_checkpoint(struct offtab *offtab, uint32_t n_offsets, int flags)
usr.bin/vndcompress/offtab.c
431
assert(offtab->ot_mode == OFFTAB_MODE_WRITE);
usr.bin/vndcompress/offtab.c
432
assert(n_offsets <= offtab->ot_n_offsets);
usr.bin/vndcompress/offtab.c
438
if (offtab->ot_window != NULL)
usr.bin/vndcompress/offtab.c
439
offtab_maybe_write_window(offtab, 0, n_offsets);
usr.bin/vndcompress/offtab.c
447
assert(ADD_OK(off_t, offtab->ot_fdpos, sync_bytes));
usr.bin/vndcompress/offtab.c
448
if (fsync_range(offtab->ot_fd, (FFILESYNC | FDISKSYNC),
usr.bin/vndcompress/offtab.c
449
offtab->ot_fdpos, (offtab->ot_fdpos + sync_bytes))
usr.bin/vndcompress/offtab.c
460
offtab_prepare_put(struct offtab *offtab, uint32_t blkno)
usr.bin/vndcompress/offtab.c
464
assert(offtab->ot_mode == OFFTAB_MODE_WRITE);
usr.bin/vndcompress/offtab.c
465
assert(blkno < offtab->ot_n_offsets);
usr.bin/vndcompress/offtab.c
472
assert((offtab->ot_blkno == (uint32_t)-1) ||
usr.bin/vndcompress/offtab.c
473
((offtab->ot_blkno + 1) == blkno));
usr.bin/vndcompress/offtab.c
476
if ((offtab->ot_window_start <= blkno) &&
usr.bin/vndcompress/offtab.c
477
(blkno < offtab_current_window_end(offtab)))
usr.bin/vndcompress/offtab.c
481
offtab_write_window(offtab);
usr.bin/vndcompress/offtab.c
483
assert(offtab->ot_window_size <= blkno);
usr.bin/vndcompress/offtab.c
484
assert(offtab->ot_window_start == (blkno - offtab->ot_window_size));
usr.bin/vndcompress/offtab.c
485
assert((offtab->ot_window_start + offtab->ot_window_size) ==
usr.bin/vndcompress/offtab.c
486
rounddown(blkno, offtab->ot_window_size));
usr.bin/vndcompress/offtab.c
497
window = offtab->ot_window;
usr.bin/vndcompress/offtab.c
498
offtab->ot_window = NULL;
usr.bin/vndcompress/offtab.c
502
for (i = 0; i < offtab_current_window_size(offtab); i++)
usr.bin/vndcompress/offtab.c
507
offtab->ot_window = window;
usr.bin/vndcompress/offtab.c
508
offtab->ot_window_start = rounddown(blkno, offtab->ot_window_size);
usr.bin/vndcompress/offtab.c
512
win: assert(offtab->ot_window_start <= blkno);
usr.bin/vndcompress/offtab.c
513
assert(blkno < offtab_current_window_end(offtab));
usr.bin/vndcompress/offtab.c
515
offtab->ot_blkno = blkno;
usr.bin/vndcompress/offtab.c
522
offtab_put(struct offtab *offtab, uint32_t blkno, uint64_t offset)
usr.bin/vndcompress/offtab.c
525
assert(offtab->ot_mode == OFFTAB_MODE_WRITE);
usr.bin/vndcompress/offtab.c
526
assert(blkno == offtab->ot_blkno);
usr.bin/vndcompress/offtab.c
527
assert(offtab->ot_window_start <= blkno);
usr.bin/vndcompress/offtab.c
528
assert(blkno < offtab_current_window_end(offtab));
usr.bin/vndcompress/offtab.c
530
offtab->ot_window[blkno - offtab->ot_window_start] = htobe64(offset);
usr.bin/vndcompress/offtab.c
67
offtab_compute_window_size(struct offtab *offtab, uint32_t start)
usr.bin/vndcompress/offtab.c
70
assert(start < offtab->ot_n_offsets);
usr.bin/vndcompress/offtab.c
71
return MIN(offtab->ot_window_size, (offtab->ot_n_offsets - start));
usr.bin/vndcompress/offtab.c
75
offtab_current_window_size(struct offtab *offtab)
usr.bin/vndcompress/offtab.c
78
return offtab_compute_window_size(offtab, offtab->ot_window_start);
usr.bin/vndcompress/offtab.c
82
offtab_current_window_end(struct offtab *offtab)
usr.bin/vndcompress/offtab.c
85
assert(offtab->ot_window_start < offtab->ot_n_offsets);
usr.bin/vndcompress/offtab.c
86
assert(offtab_current_window_size(offtab) <=
usr.bin/vndcompress/offtab.c
87
(offtab->ot_n_offsets - offtab->ot_window_start));
usr.bin/vndcompress/offtab.c
88
return (offtab->ot_window_start + offtab_current_window_size(offtab));
usr.bin/vndcompress/offtab.c
92
offtab_compute_window_position(struct offtab *offtab, uint32_t window_start,
usr.bin/vndcompress/offtab.c
95
const uint32_t window_size = offtab_compute_window_size(offtab,
usr.bin/vndcompress/offtab.h
63
void offtab_init(struct offtab *, uint32_t, uint32_t, int, off_t);
usr.bin/vndcompress/offtab.h
64
void offtab_destroy(struct offtab *);
usr.bin/vndcompress/offtab.h
66
bool offtab_transmogrify_read_to_write(struct offtab *, uint32_t);
usr.bin/vndcompress/offtab.h
68
bool offtab_reset_read(struct offtab *,
usr.bin/vndcompress/offtab.h
71
bool offtab_prepare_get(struct offtab *, uint32_t);
usr.bin/vndcompress/offtab.h
72
uint64_t offtab_get(struct offtab *, uint32_t);
usr.bin/vndcompress/offtab.h
74
void offtab_reset_write(struct offtab *);
usr.bin/vndcompress/offtab.h
75
void offtab_checkpoint(struct offtab *, uint32_t, int);
usr.bin/vndcompress/offtab.h
77
void offtab_prepare_put(struct offtab *, uint32_t);
usr.bin/vndcompress/offtab.h
78
void offtab_put(struct offtab *, uint32_t, uint64_t);
usr.bin/vndcompress/vndcompress.c
171
offtab_prepare_put(&S->offtab, (S->blkno + 1));
usr.bin/vndcompress/vndcompress.c
210
offtab_put(&S->offtab, S->blkno, S->offset); /* (c) */
usr.bin/vndcompress/vndcompress.c
495
offtab_init(&S->offtab, S->n_offsets, window_size, S->cloop2_fd,
usr.bin/vndcompress/vndcompress.c
546
offtab_reset_write(&S->offtab);
usr.bin/vndcompress/vndcompress.c
611
if (!offtab_reset_read(&S->offtab, &warn, &warnx))
usr.bin/vndcompress/vndcompress.c
613
if (!offtab_prepare_get(&S->offtab, 0))
usr.bin/vndcompress/vndcompress.c
615
const uint64_t first_offset = offtab_get(&S->offtab, 0);
usr.bin/vndcompress/vndcompress.c
632
if (!offtab_prepare_get(&S->offtab, blkno))
usr.bin/vndcompress/vndcompress.c
634
const uint64_t offset = offtab_get(&S->offtab, blkno);
usr.bin/vndcompress/vndcompress.c
670
if (!offtab_prepare_get(&S->offtab, nblkno))
usr.bin/vndcompress/vndcompress.c
672
const uint64_t offset = offtab_get(&S->offtab, nblkno);
usr.bin/vndcompress/vndcompress.c
699
if (!offtab_transmogrify_read_to_write(&S->offtab, blkno))
usr.bin/vndcompress/vndcompress.c
77
struct offtab offtab;
usr.bin/vndcompress/vndcompress.c
857
offtab_checkpoint(&S->offtab, n_offsets,
usr.bin/vndcompress/vndcompress.c
908
offtab_destroy(&S->offtab);
usr.bin/vndcompress/vnduncompress.c
138
offtab_init(&offtab, n_offsets, window_size, cloop2_fd,
usr.bin/vndcompress/vnduncompress.c
140
offtab_reset_read(&offtab, &err1, &errx1);
usr.bin/vndcompress/vnduncompress.c
164
(void)offtab_prepare_get(&offtab, 0);
usr.bin/vndcompress/vnduncompress.c
165
uint64_t last = offtab_get(&offtab, 0);
usr.bin/vndcompress/vnduncompress.c
167
(void)offtab_prepare_get(&offtab, (blkno + 1));
usr.bin/vndcompress/vnduncompress.c
170
const uint64_t end = offtab_get(&offtab, (blkno + 1));
usr.bin/vndcompress/vnduncompress.c
231
offtab_destroy(&offtab);
usr.bin/vndcompress/vnduncompress.c
59
struct offtab offtab;