• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/ap/gpl/timemachine/netatalk-2.2.5/libatalk/tdb/

Lines Matching refs:rec

451 static int rec_read(TDB_CONTEXT *tdb, tdb_off offset, struct list_struct *rec)
453 if (tdb_read(tdb, offset, rec, sizeof(*rec),DOCONV()) == -1)
455 if (TDB_BAD_MAGIC(rec)) {
458 TDB_LOG((tdb, 0,"rec_read bad magic 0x%x at offset=%d\n", rec->magic, offset));
461 return tdb_oob(tdb, rec->next+sizeof(*rec), 0);
463 static int rec_write(TDB_CONTEXT *tdb, tdb_off offset, struct list_struct *rec)
465 struct list_struct r = *rec;
470 static int rec_free_read(TDB_CONTEXT *tdb, tdb_off off, struct list_struct *rec)
472 if (tdb_read(tdb, off, rec, sizeof(*rec),DOCONV()) == -1)
475 if (rec->magic == TDB_MAGIC) {
479 rec->magic, off));
480 rec->magic = TDB_FREE_MAGIC;
481 if (tdb_write(tdb, off, rec, sizeof(*rec)) == -1)
485 if (rec->magic != TDB_FREE_MAGIC) {
489 rec->magic, off));
492 if (tdb_oob(tdb, rec->next+sizeof(*rec), 0) != 0)
499 const struct list_struct *rec)
504 totalsize = sizeof(*rec) + rec->rec_len;
511 struct list_struct rec;
514 if (tdb_read(tdb, offset, (char *)&rec, sizeof(rec), DOCONV()) == -1) {
519 printf(" rec: offset=%u next=%d rec_len=%d key_len=%d data_len=%d full_hash=0x%x magic=0x%x\n",
520 offset, rec.next, rec.rec_len, rec.key_len, rec.data_len, rec.full_hash, rec.magic);
522 tailer_ofs = offset + sizeof(rec) + rec.rec_len - sizeof(tdb_off);
525 return rec.next;
528 if (tailer != rec.rec_len + sizeof(rec)) {
530 (unsigned)tailer, (unsigned)(rec.rec_len + sizeof(rec)));
532 return rec.next;
572 struct list_struct rec;
587 if (tdb_read(tdb, rec_ptr, (char *)&rec, sizeof(rec), DOCONV()) == -1) {
592 if (rec.magic != TDB_FREE_MAGIC) {
593 printf("bad magic 0x%08x in free list\n", rec.magic);
598 printf("entry offset=[0x%08x], rec.rec_len = [0x%08x (%d)]\n", rec.next, rec.rec_len, rec.rec_len );
599 total_free += rec.rec_len;
602 rec_ptr = rec.next;
631 static int tdb_free(TDB_CONTEXT *tdb, tdb_off offset, struct list_struct *rec)
640 if (update_tailer(tdb, offset, rec) != 0) {
646 right = offset + sizeof(*rec) + rec->rec_len;
647 if (right + sizeof(*rec) <= tdb->map_size) {
661 rec->rec_len += sizeof(r) + r.rec_len;
692 rec->rec_len += leftsize;
698 if (update_tailer(tdb, offset, rec) == -1) {
704 rec->magic = TDB_FREE_MAGIC;
706 if (ofs_read(tdb, FREELIST_TOP, &rec->next) == -1 ||
707 rec_write(tdb, offset, rec) == -1 ||
778 struct list_struct rec;
824 memset(&rec,'\0',sizeof(rec));
825 rec.rec_len = size - sizeof(rec);
829 if (tdb_free(tdb, offset, &rec) == -1)
846 struct list_struct *rec)
866 if (rec_free_read(tdb, rec_ptr, rec) == -1)
869 if (rec->rec_len >= length) {
871 if (rec->rec_len > length + MIN_REC_SIZE) {
876 newrec.rec_len = rec->rec_len
877 - (sizeof(*rec) + length);
878 newrec_ptr = rec_ptr + sizeof(*rec) + length;
881 rec->rec_len = length;
886 if (ofs_write(tdb, last_ptr, &rec->next) == -1)
893 rec->magic = TDB_MAGIC;
894 if (rec_write(tdb, rec_ptr, rec) == -1)
901 if (update_tailer(tdb, rec_ptr, rec) == -1)
915 rec_ptr = rec->next;
919 if (tdb_expand(tdb, length + sizeof(*rec)) == 0)
973 in rec */
1021 struct list_struct *rec)
1030 if (!(rec_ptr = tdb_find(tdb, key, hash, rec)))
1068 struct list_struct rec;
1072 if (!(rec_ptr = tdb_find(tdb, key, tdb_hash(&key), &rec)))
1076 if (rec.rec_len < key.dsize + dbuf.dsize + sizeof(tdb_off)) {
1081 if (tdb_write(tdb, rec_ptr + sizeof(rec) + rec.key_len,
1085 if (dbuf.dsize != rec.data_len) {
1087 rec.data_len = dbuf.dsize;
1088 return rec_write(tdb, rec_ptr, &rec);
1104 struct list_struct rec;
1108 if (!(rec_ptr = tdb_find_lock(tdb,key,F_RDLCK,&rec)))
1111 if (rec.data_len)
1112 ret.dptr = tdb_alloc_read(tdb, rec_ptr + sizeof(rec) + rec.key_len,
1113 rec.data_len);
1116 ret.dsize = rec.data_len;
1117 tdb_unlock(tdb, BUCKET(rec.full_hash), F_RDLCK);
1129 struct list_struct rec;
1131 if (tdb_find_lock(tdb, key, F_RDLCK, &rec) == 0)
1133 tdb_unlock(tdb, BUCKET(rec.full_hash), F_RDLCK);
1181 static int do_delete(TDB_CONTEXT *tdb, tdb_off rec_ptr, struct list_struct*rec)
1190 rec->magic = TDB_DEAD_MAGIC;
1191 return rec_write(tdb, rec_ptr, rec);
1197 if (ofs_read(tdb, TDB_HASH_TOP(rec->full_hash), &i) == -1)
1205 last_ptr = TDB_HASH_TOP(rec->full_hash);
1206 if (ofs_write(tdb, last_ptr, &rec->next) == -1)
1210 if (tdb_free(tdb, rec_ptr, rec) == -1)
1217 struct list_struct *rec)
1243 if (rec_read(tdb, tlock->off, rec) == -1)
1245 tlock->off = rec->next;
1251 if (rec_read(tdb, tlock->off, rec) == -1)
1253 if (!TDB_DEAD(rec)) {
1261 tlock->off = rec->next;
1262 if (do_delete(tdb, current, rec) != 0)
1286 struct list_struct rec;
1299 while ((ret = tdb_next_lock(tdb, &tl, &rec)) > 0) {
1302 key.dptr = tdb_alloc_read(tdb, tl.off + sizeof(rec),
1303 rec.key_len + rec.data_len);
1312 key.dsize = rec.key_len;
1313 dbuf.dptr = key.dptr + rec.key_len;
1314 dbuf.dsize = rec.data_len;
1346 struct list_struct rec;
1353 if (tdb_next_lock(tdb, &tdb->travlocks, &rec) <= 0)
1356 key.dsize = rec.key_len;
1357 key.dptr =tdb_alloc_read(tdb,tdb->travlocks.off+sizeof(rec),key.dsize);
1368 struct list_struct rec;
1375 if (rec_read(tdb, tdb->travlocks.off, &rec) == -1
1376 || !(k = tdb_alloc_read(tdb,tdb->travlocks.off+sizeof(rec),
1377 rec.key_len))
1392 tdb->travlocks.off = tdb_find_lock(tdb, oldkey, F_WRLCK, &rec);
1395 tdb->travlocks.hash = BUCKET(rec.full_hash);
1405 if (tdb_next_lock(tdb, &tdb->travlocks, &rec) > 0) {
1406 key.dsize = rec.key_len;
1407 key.dptr = tdb_alloc_read(tdb, tdb->travlocks.off+sizeof(rec),
1423 struct list_struct rec;
1426 if (!(rec_ptr = tdb_find_lock(tdb, key, F_WRLCK, &rec)))
1428 ret = do_delete(tdb, rec_ptr, &rec);
1429 if (tdb_unlock(tdb, BUCKET(rec.full_hash), F_WRLCK) != 0)
1441 struct list_struct rec;
1491 if (!(rec_ptr = tdb_allocate(tdb, key.dsize + dbuf.dsize, &rec)))
1495 if (ofs_read(tdb, TDB_HASH_TOP(hash), &rec.next) == -1)
1498 rec.key_len = key.dsize;
1499 rec.data_len = dbuf.dsize;
1500 rec.full_hash = hash;
1501 rec.magic = TDB_MAGIC;
1504 if (rec_write(tdb, rec_ptr, &rec) == -1
1505 || tdb_write(tdb, rec_ptr+sizeof(rec), p, key.dsize+dbuf.dsize)==-1
1525 struct list_struct rec;
1529 if (!(rec_ptr = tdb_find(tdb, key, tdb_hash(&key), &rec)))
1537 if (rec.rec_len < key.dsize + rec.data_len + new_dbuf.dsize + sizeof(tdb_off)) {
1543 if (tdb_write(tdb, rec_ptr + sizeof(rec) + rec.key_len + rec.data_len,
1548 rec.data_len += new_dbuf.dsize;
1549 return rec_write(tdb, rec_ptr, &rec);
1556 struct list_struct rec;
1578 if (!(rec_ptr = tdb_find(tdb, key, hash, &rec))) {
1588 new_data_size = rec.data_len + new_dbuf.dsize;
1602 if (rec.data_len &&
1603 tdb_read(tdb, rec_ptr + sizeof(rec) + rec.key_len, p + key.dsize, rec.data_len, 0) == -1)
1608 memcpy(p+key.dsize+rec.data_len, new_dbuf.dptr, new_dbuf.dsize);
1616 if (!(rec_ptr = tdb_allocate(tdb, key.dsize + new_data_size, &rec)))
1620 if (ofs_read(tdb, TDB_HASH_TOP(hash), &rec.next) == -1)
1623 rec.key_len = key.dsize;
1624 rec.data_len = new_data_size;
1625 rec.full_hash = hash;
1626 rec.magic = TDB_MAGIC;
1629 if (rec_write(tdb, rec_ptr, &rec) == -1
1630 || tdb_write(tdb, rec_ptr+sizeof(rec), p, key.dsize+new_data_size)==-1