Lines Matching refs:db

110 #define OS_AREA_DB_MAGIC_NUM "-db-"
114 * @magic_num: Always '-db-'.
371 static int db_verify(const struct os_area_db *db)
373 if (memcmp(db->magic_num, OS_AREA_DB_MAGIC_NUM,
374 sizeof(db->magic_num))) {
379 if (db->version != 1) {
393 const struct os_area_db *db;
416 static int db_for_each_64(const struct os_area_db *db,
420 if (!i->db) {
421 i->db = db;
423 i->idx = (void *)db + db->index_64;
424 i->last_idx = i->idx + db->count_64;
425 i->value_64 = (void *)db + db->index_64
426 + db_align_up(db->count_64, 8);
447 static int db_delete_64(struct os_area_db *db, const struct os_area_db_id *id)
451 for (i.db = NULL; db_for_each_64(db, id, &i); ) {
464 static int db_set_64(struct os_area_db *db, const struct os_area_db_id *id,
479 db_delete_64(db, id);
481 i.db = NULL;
482 if (db_for_each_64(db, &os_area_db_id_empty, &i)) {
502 static int __init db_get_64(const struct os_area_db *db,
507 i.db = NULL;
508 if (db_for_each_64(db, id, &i)) {
518 static int __init db_get_rtc_diff(const struct os_area_db *db, int64_t *rtc_diff)
520 return db_get_64(db, &os_area_db_id_rtc_diff, (uint64_t*)rtc_diff);
524 static void _dump_db(const struct os_area_db *db, const char *func,
527 char str[sizeof(db->magic_num) + 1];
529 dump_field(str, db->magic_num, sizeof(db->magic_num));
530 pr_debug("%s:%d: db.magic_num: '%s'\n", func, line,
532 pr_debug("%s:%d: db.version: %u\n", func, line,
533 db->version);
534 pr_debug("%s:%d: db.index_64: %u\n", func, line,
535 db->index_64);
536 pr_debug("%s:%d: db.count_64: %u\n", func, line,
537 db->count_64);
538 pr_debug("%s:%d: db.index_32: %u\n", func, line,
539 db->index_32);
540 pr_debug("%s:%d: db.count_32: %u\n", func, line,
541 db->count_32);
542 pr_debug("%s:%d: db.index_16: %u\n", func, line,
543 db->index_16);
544 pr_debug("%s:%d: db.count_16: %u\n", func, line,
545 db->count_16);
548 static void os_area_db_init(struct os_area_db *db)
560 memset(db, 0, sizeof(struct os_area_db));
562 memcpy(db->magic_num, OS_AREA_DB_MAGIC_NUM, sizeof(db->magic_num));
563 db->version = 1;
564 db->index_64 = HEADER_SIZE;
565 db->count_64 = VALUES_64_COUNT;
566 db->index_32 = HEADER_SIZE
569 db->count_32 = VALUES_32_COUNT;
570 db->index_16 = HEADER_SIZE
575 db->count_16 = VALUES_16_COUNT;
577 /* Rules to check db layout. */
609 struct os_area_db* db;
611 /* Read in header and db from flash. */
634 /* Now got a good db offset and some maybe good db data. */
636 db = (void *)header + pos;
638 error = db_verify(db);
642 dump_db(db);
643 os_area_db_init(db);
646 /* Now got good db data. */
648 db_set_64(db, &os_area_db_id_rtc_diff, saved_params.rtc_diff);
650 count = os_area_flash_write(db, sizeof(struct os_area_db), pos);
720 struct os_area_db *db;
745 db = (struct os_area_db *)__va(lpar_addr
750 dump_db(db);
752 result = db_verify(db) || db_get_rtc_diff(db, &saved_params.rtc_diff);