Home | History | Annotate | Download | only in pppd

Lines Matching refs:rec

444 static int rec_read(TDB_CONTEXT *tdb, tdb_off offset, struct list_struct *rec)
446 if (tdb_read(tdb, offset, rec, sizeof(*rec),DOCONV()) == -1)
448 if (TDB_BAD_MAGIC(rec)) {
451 TDB_LOG((tdb, 0,"rec_read bad magic 0x%x at offset=%d\n", rec->magic, offset));
454 return tdb_oob(tdb, rec->next+sizeof(*rec), 0);
456 static int rec_write(TDB_CONTEXT *tdb, tdb_off offset, struct list_struct *rec)
458 struct list_struct r = *rec;
463 static int rec_free_read(TDB_CONTEXT *tdb, tdb_off off, struct list_struct *rec)
465 if (tdb_read(tdb, off, rec, sizeof(*rec),DOCONV()) == -1)
468 if (rec->magic == TDB_MAGIC) {
472 rec->magic, off));
473 rec->magic = TDB_FREE_MAGIC;
474 if (tdb_write(tdb, off, rec, sizeof(*rec)) == -1)
478 if (rec->magic != TDB_FREE_MAGIC) {
482 rec->magic, off));
485 if (tdb_oob(tdb, rec->next+sizeof(*rec), 0) != 0)
492 const struct list_struct *rec)
497 totalsize = sizeof(*rec) + rec->rec_len;
504 struct list_struct rec;
507 if (tdb_read(tdb, offset, (char *)&rec, sizeof(rec), DOCONV()) == -1) {
512 printf(" rec: offset=%u next=%d rec_len=%d key_len=%d data_len=%d full_hash=0x%x magic=0x%x\n",
513 offset, rec.next, rec.rec_len, rec.key_len, rec.data_len, rec.full_hash, rec.magic);
515 tailer_ofs = offset + sizeof(rec) + rec.rec_len - sizeof(tdb_off);
518 return rec.next;
521 if (tailer != rec.rec_len + sizeof(rec)) {
523 (unsigned)tailer, (unsigned)(rec.rec_len + sizeof(rec)));
525 return rec.next;
565 struct list_struct rec;
580 rec, sizeof(rec), DOCONV()) == -1) {
585 if (rec.magic != TDB_FREE_MAGIC) {
586 printf("bad magic 0x%08x in free list\n", rec.magic);
591 printf("entry offset=[0x%08x], rec.rec_len = [0x%08x (%d)]\n", rec.next, rec.rec_len, rec.rec_len );
592 total_free += rec.rec_len;
595 rec_ptr = rec.next;
624 static int tdb_free(TDB_CONTEXT *tdb, tdb_off offset, struct list_struct *rec)
633 if (update_tailer(tdb, offset, rec) != 0) {
639 right = offset + sizeof(*rec) + rec->rec_len;
640 if (right + sizeof(*rec) <= tdb->map_size) {
654 rec->rec_len += sizeof(r) + r.rec_len;
685 rec->rec_len += leftsize;
691 if (update_tailer(tdb, offset, rec) == -1) {
697 rec->magic = TDB_FREE_MAGIC;
699 if (ofs_read(tdb, FREELIST_TOP, &rec->next) == -1 ||
700 rec_write(tdb, offset, rec) == -1 ||
771 struct list_struct rec;
817 memset(&rec,'\0',sizeof(rec));
818 rec.rec_len = size - sizeof(rec);
822 if (tdb_free(tdb, offset, &rec) == -1)
839 struct list_struct *rec)
861 if (rec_free_read(tdb, rec_ptr, rec) == -1)
864 if (rec->rec_len >= length) {
866 if (rec->rec_len > length + MIN_REC_SIZE) {
871 newrec.rec_len = rec->rec_len
872 - (sizeof(*rec) + length);
873 newrec_ptr = rec_ptr + sizeof(*rec) + length;
876 rec->rec_len = length;
881 if (ofs_write(tdb, last_ptr, &rec->next) == -1)
888 rec->magic = TDB_MAGIC;
889 if (rec_write(tdb, rec_ptr, rec) == -1)
896 if (update_tailer(tdb, rec_ptr, rec) == -1)
910 rec_ptr = rec->next;
914 if (tdb_expand(tdb, length + sizeof(*rec)) == 0)
965 in rec */
1001 struct list_struct *rec)
1007 if (!(rec_ptr = tdb_find(tdb, key, hash, rec)))
1045 struct list_struct rec;
1049 if (!(rec_ptr = tdb_find(tdb, key, hash, &rec)))
1053 if (rec.rec_len < key.dsize + dbuf.dsize + sizeof(tdb_off)) {
1058 if (tdb_write(tdb, rec_ptr + sizeof(rec) + rec.key_len,
1062 if (dbuf.dsize != rec.data_len) {
1064 rec.data_len = dbuf.dsize;
1065 return rec_write(tdb, rec_ptr, &rec);
1081 struct list_struct rec;
1087 if (!(rec_ptr = tdb_find_lock_hash(tdb,key,hash,F_RDLCK,&rec)))
1090 if (rec.data_len)
1091 ret.dptr = tdb_alloc_read(tdb, rec_ptr + sizeof(rec) + rec.key_len,
1092 rec.data_len);
1095 ret.dsize = rec.data_len;
1096 tdb_unlock(tdb, BUCKET(rec.full_hash), F_RDLCK);
1108 struct list_struct rec;
1110 if (tdb_find_lock_hash(tdb, key, hash, F_RDLCK, &rec) == 0)
1112 tdb_unlock(tdb, BUCKET(rec.full_hash), F_RDLCK);
1166 static int do_delete(TDB_CONTEXT *tdb, tdb_off rec_ptr, struct list_struct*rec)
1175 rec->magic = TDB_DEAD_MAGIC;
1176 return rec_write(tdb, rec_ptr, rec);
1182 if (ofs_read(tdb, TDB_HASH_TOP(rec->full_hash), &i) == -1)
1190 last_ptr = TDB_HASH_TOP(rec->full_hash);
1191 if (ofs_write(tdb, last_ptr, &rec->next) == -1)
1195 if (tdb_free(tdb, rec_ptr, rec) == -1)
1202 struct list_struct *rec)
1224 if (rec_read(tdb, tlock->off, rec) == -1)
1226 tlock->off = rec->next;
1232 if (rec_read(tdb, tlock->off, rec) == -1)
1234 if (!TDB_DEAD(rec)) {
1242 tlock->off = rec->next;
1244 do_delete(tdb, current, rec) != 0)
1268 struct list_struct rec;
1281 while ((ret = tdb_next_lock(tdb, &tl, &rec)) > 0) {
1284 key.dptr = tdb_alloc_read(tdb, tl.off + sizeof(rec),
1285 rec.key_len + rec.data_len);
1294 key.dsize = rec.key_len;
1295 dbuf.dptr = key.dptr + rec.key_len;
1296 dbuf.dsize = rec.data_len;
1328 struct list_struct rec;
1335 if (tdb_next_lock(tdb, &tdb->travlocks, &rec) <= 0)
1338 key.dsize = rec.key_len;
1339 key.dptr =tdb_alloc_read(tdb,tdb->travlocks.off+sizeof(rec),key.dsize);
1350 struct list_struct rec;
1357 if (rec_read(tdb, tdb->travlocks.off, &rec) == -1
1358 || !(k = tdb_alloc_read(tdb,tdb->travlocks.off+sizeof(rec),
1359 rec.key_len))
1374 tdb->travlocks.off = tdb_find_lock_hash(tdb, oldkey, tdb->hash_fn(&oldkey), F_WRLCK, &rec);
1377 tdb->travlocks.hash = BUCKET(rec.full_hash);
1387 if (tdb_next_lock(tdb, &tdb->travlocks, &rec) > 0) {
1388 key.dsize = rec.key_len;
1389 key.dptr = tdb_alloc_read(tdb, tdb->travlocks.off+sizeof(rec),
1405 struct list_struct rec;
1408 if (!(rec_ptr = tdb_find_lock_hash(tdb, key, hash, F_WRLCK, &rec)))
1410 ret = do_delete(tdb, rec_ptr, &rec);
1411 if (tdb_unlock(tdb, BUCKET(rec.full_hash), F_WRLCK) != 0)
1429 struct list_struct rec;
1479 if (!(rec_ptr = tdb_allocate(tdb, key.dsize + dbuf.dsize, &rec)))
1483 if (ofs_read(tdb, TDB_HASH_TOP(hash), &rec.next) == -1)
1486 rec.key_len = key.dsize;
1487 rec.data_len = dbuf.dsize;
1488 rec.full_hash = hash;
1489 rec.magic = TDB_MAGIC;
1492 if (rec_write(tdb, rec_ptr, &rec) == -1
1493 || tdb_write(tdb, rec_ptr+sizeof(rec), p, key.dsize+dbuf.dsize)==-1
1513 struct list_struct rec;
1517 if (!(rec_ptr = tdb_find(tdb, key, hash, &rec)))
1525 if (rec.rec_len < key.dsize + rec.data_len + new_dbuf.dsize + sizeof(tdb_off)) {
1531 if (tdb_write(tdb, rec_ptr + sizeof(rec) + rec.key_len + rec.data_len,
1536 rec.data_len += new_dbuf.dsize;
1537 return rec_write(tdb, rec_ptr, &rec);
1544 struct list_struct rec;
1564 if (!(rec_ptr = tdb_find(tdb, key, hash, &rec))) {
1574 new_data_size = rec.data_len + new_dbuf.dsize;
1588 if (rec.data_len &&
1589 tdb_read(tdb, rec_ptr + sizeof(rec) + rec.key_len, p + key.dsize, rec.data_len, 0) == -1)
1594 memcpy(p+key.dsize+rec.data_len, new_dbuf.dptr, new_dbuf.dsize);
1602 if (!(rec_ptr = tdb_allocate(tdb, key.dsize + new_data_size, &rec)))
1606 if (ofs_read(tdb, TDB_HASH_TOP(hash), &rec.next) == -1)
1609 rec.key_len = key.dsize;
1610 rec.data_len = new_data_size;
1611 rec.full_hash = hash;
1612 rec.magic = TDB_MAGIC;
1615 if (rec_write(tdb, rec_ptr, &rec) == -1
1616 || tdb_write(tdb, rec_ptr+sizeof(rec), p, key.dsize+new_data_size)==-1