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