Lines Matching refs:db
112 #define OS_AREA_DB_MAGIC_NUM "-db-"
116 * @magic_num: Always '-db-'.
373 static int db_verify(const struct os_area_db *db)
375 if (memcmp(db->magic_num, OS_AREA_DB_MAGIC_NUM,
376 sizeof(db->magic_num))) {
381 if (db->version != 1) {
395 const struct os_area_db *db;
418 static int db_for_each_64(const struct os_area_db *db,
422 if (!i->db) {
423 i->db = db;
425 i->idx = (void *)db + db->index_64;
426 i->last_idx = i->idx + db->count_64;
427 i->value_64 = (void *)db + db->index_64
428 + db_align_up(db->count_64, 8);
449 static int db_delete_64(struct os_area_db *db, const struct os_area_db_id *id)
453 for (i.db = NULL; db_for_each_64(db, id, &i); ) {
466 static int db_set_64(struct os_area_db *db, const struct os_area_db_id *id,
481 db_delete_64(db, id);
483 i.db = NULL;
484 if (db_for_each_64(db, &os_area_db_id_empty, &i)) {
504 static int db_get_64(const struct os_area_db *db,
509 i.db = NULL;
510 if (db_for_each_64(db, id, &i)) {
520 static int db_get_rtc_diff(const struct os_area_db *db, int64_t *rtc_diff)
522 return db_get_64(db, &os_area_db_id_rtc_diff, (uint64_t*)rtc_diff);
526 static void _dump_db(const struct os_area_db *db, const char *func,
529 char str[sizeof(db->magic_num) + 1];
531 dump_field(str, db->magic_num, sizeof(db->magic_num));
532 pr_debug("%s:%d: db.magic_num: '%s'\n", func, line,
534 pr_debug("%s:%d: db.version: %u\n", func, line,
535 db->version);
536 pr_debug("%s:%d: db.index_64: %u\n", func, line,
537 db->index_64);
538 pr_debug("%s:%d: db.count_64: %u\n", func, line,
539 db->count_64);
540 pr_debug("%s:%d: db.index_32: %u\n", func, line,
541 db->index_32);
542 pr_debug("%s:%d: db.count_32: %u\n", func, line,
543 db->count_32);
544 pr_debug("%s:%d: db.index_16: %u\n", func, line,
545 db->index_16);
546 pr_debug("%s:%d: db.count_16: %u\n", func, line,
547 db->count_16);
550 static void os_area_db_init(struct os_area_db *db)
562 memset(db, 0, sizeof(struct os_area_db));
564 memcpy(db->magic_num, OS_AREA_DB_MAGIC_NUM, sizeof(db->magic_num));
565 db->version = 1;
566 db->index_64 = HEADER_SIZE;
567 db->count_64 = VALUES_64_COUNT;
568 db->index_32 = HEADER_SIZE
571 db->count_32 = VALUES_32_COUNT;
572 db->index_16 = HEADER_SIZE
577 db->count_16 = VALUES_16_COUNT;
579 /* Rules to check db layout. */
611 struct os_area_db* db;
613 /* Read in header and db from flash. */
636 /* Now got a good db offset and some maybe good db data. */
638 db = (void *)header + pos;
640 error = db_verify(db);
644 dump_db(db);
645 os_area_db_init(db);
648 /* Now got good db data. */
650 db_set_64(db, &os_area_db_id_rtc_diff, saved_params.rtc_diff);
652 count = os_area_flash_write(db, sizeof(struct os_area_db), pos);
722 struct os_area_db *db;
747 db = (struct os_area_db *)__va(lpar_addr
752 dump_db(db);
754 result = db_verify(db) || db_get_rtc_diff(db, &saved_params.rtc_diff);