Lines Matching refs:impl

364             KmppObjDefImpl *impl = &p->defs[i];  in kmpp_objs_deinit()  local
366 if (impl->pool) { in kmpp_objs_deinit()
367 mpp_mem_pool_deinit_f(impl->pool); in kmpp_objs_deinit()
368 impl->pool = NULL; in kmpp_objs_deinit()
371 if (impl->trie) { in kmpp_objs_deinit()
372 mpp_trie_deinit(impl->trie); in kmpp_objs_deinit()
373 impl->trie = NULL; in kmpp_objs_deinit()
376 if (impl->ioctl) { in kmpp_objs_deinit()
377 mpp_trie_deinit(impl->ioctl); in kmpp_objs_deinit()
378 impl->ioctl = NULL; in kmpp_objs_deinit()
450 KmppObjDefImpl *impl = &p->defs[i]; in kmpp_objs_init() local
462 impl->trie = trie_objdef; in kmpp_objs_init()
465 impl->index = info_objdef ? *(rk_s32 *)mpp_trie_info_ctx(info_objdef) : -1; in kmpp_objs_init()
466 impl->defs_idx = info->index; in kmpp_objs_init()
468 impl->entry_size = info_objdef ? *(rk_s32 *)mpp_trie_info_ctx(info_objdef) : 0; in kmpp_objs_init()
469 impl->name = name; in kmpp_objs_init()
470 impl->is_kobj = 1; in kmpp_objs_init()
474 count, i, name, offset, impl->entry_size); in kmpp_objs_init()
477 name, impl->entry_size); in kmpp_objs_init()
486 mpp_trie_init_by_root(&impl->ioctl, ioc.root + ioc_offset); in kmpp_objs_init()
487 if (impl->ioctl) in kmpp_objs_init()
489 name, mpp_trie_get_info_count(impl->ioctl)); in kmpp_objs_init()
507 KmppObjDefImpl *impl = (KmppObjDefImpl *)def; in kmpp_objdef_put() local
510 if (impl) { in kmpp_objdef_put()
513 if (impl->is_kobj) { in kmpp_objdef_put()
514 impl->ref_cnt--; in kmpp_objdef_put()
515 if (!impl->ref_cnt) in kmpp_objdef_put()
519 impl->name, impl->ref_cnt); in kmpp_objdef_put()
521 if (impl->cfg) { in kmpp_objdef_put()
522 mpp_cfg_put_all(impl->cfg); in kmpp_objdef_put()
523 impl->cfg = NULL; in kmpp_objdef_put()
529 if (impl->pool) { in kmpp_objdef_put()
530 mpp_mem_pool_deinit_f(impl->pool); in kmpp_objdef_put()
531 impl->pool = NULL; in kmpp_objdef_put()
534 if (impl->trie) { in kmpp_objdef_put()
535 mpp_trie_deinit(impl->trie); in kmpp_objdef_put()
536 impl->trie = NULL; in kmpp_objdef_put()
540 if (!impl->is_kobj) in kmpp_objdef_put()
541 mpp_free(impl); in kmpp_objdef_put()
551 KmppObjDefImpl *impl = NULL; in kmpp_objdef_register() local
564 impl = mpp_calloc_size(KmppObjDefImpl, sizeof(KmppObjDefImpl) + name_buf_size); in kmpp_objdef_register()
565 if (!impl) { in kmpp_objdef_register()
570 buf = (char *)(impl + 1); in kmpp_objdef_register()
573 impl->name = buf; in kmpp_objdef_register()
574 impl->priv_size = MPP_ALIGN(priv_size, sizeof(void *)); in kmpp_objdef_register()
575 impl->entry_size = size; in kmpp_objdef_register()
576 impl->buf_size = size + sizeof(KmppObjImpl); in kmpp_objdef_register()
577 impl->ref_cnt = 1; in kmpp_objdef_register()
579 obj_dbg_flow("objdef %-16s registered size %4d\n", name, size, impl); in kmpp_objdef_register()
581 *def = impl; in kmpp_objdef_register()
618 static rk_s32 create_objdef_mem_pool(KmppObjDefImpl *impl) in create_objdef_mem_pool() argument
620 rk_s32 old_size = impl->all_size; in create_objdef_mem_pool()
623 if (impl->flag_max_pos) { in create_objdef_mem_pool()
624 rk_s32 flag_max_pos = MPP_ALIGN(impl->flag_max_pos, 8); in create_objdef_mem_pool()
627 impl->flag_offset = impl->entry_size; in create_objdef_mem_pool()
628 impl->flag_max_pos = flag_max_pos; in create_objdef_mem_pool()
630 flag_size -= impl->entry_size; in create_objdef_mem_pool()
633 impl->buf_size = impl->entry_size + flag_size; in create_objdef_mem_pool()
636 impl->all_size = sizeof(KmppObjImpl) + impl->priv_size + impl->buf_size; in create_objdef_mem_pool()
638 obj_dbg_pool("objdef %-16s entry size %4d buf size %4d -> %4d\n", impl->name, in create_objdef_mem_pool()
639 impl->entry_size, old_size, impl->all_size); in create_objdef_mem_pool()
641 impl->pool = mpp_mem_pool_init_f(impl->name, impl->all_size); in create_objdef_mem_pool()
642 if (!impl->pool) in create_objdef_mem_pool()
643 mpp_loge_f("get mem pool size %d failed\n", impl->all_size); in create_objdef_mem_pool()
645 return impl->pool ? rk_ok : rk_nok; in create_objdef_mem_pool()
650 KmppObjDefImpl *impl = NULL; in kmpp_objdef_get() local
657 if (kmpp_objdef_find((KmppObjDef *)&impl, name)) { in kmpp_objdef_get()
662 mpp_assert(impl); in kmpp_objdef_get()
663 impl->priv_size = priv_size; in kmpp_objdef_get()
664 create_objdef_mem_pool(impl); in kmpp_objdef_get()
665 if (impl->ref_cnt) in kmpp_objdef_get()
666 mpp_logw_f("objdef %-16s already get ref %d\n", name, impl->ref_cnt); in kmpp_objdef_get()
668 impl->ref_cnt++; in kmpp_objdef_get()
670 *def = impl; in kmpp_objdef_get()
677 KmppObjDefImpl *impl = (KmppObjDefImpl *)def; in kmpp_objdef_add_cfg_root() local
680 if (impl) { in kmpp_objdef_add_cfg_root()
681 impl->cfg = root; in kmpp_objdef_add_cfg_root()
690 KmppObjDefImpl *impl = (KmppObjDefImpl *)def; in kmpp_objdef_get_cfg_root() local
692 return impl ? impl->cfg : NULL; in kmpp_objdef_get_cfg_root()
697 KmppObjDefImpl *impl = (KmppObjDefImpl *)def; in kmpp_objdef_add_entry() local
700 if (!impl->trie) { in kmpp_objdef_add_entry()
703 return create_objdef_mem_pool(impl); in kmpp_objdef_add_entry()
706 mpp_trie_init(&impl->trie, impl->name); in kmpp_objdef_add_entry()
709 if (impl->trie) { in kmpp_objdef_add_entry()
710 MppTrie trie = impl->trie; in kmpp_objdef_add_entry()
715 if (tbl->tbl.flag_offset > impl->flag_max_pos) in kmpp_objdef_add_entry()
716 impl->flag_max_pos = tbl->tbl.flag_offset; in kmpp_objdef_add_entry()
719 impl->name, name, tbl->tbl.flag_offset); in kmpp_objdef_add_entry()
722 ret = mpp_trie_add_info(trie, "__index", &impl->index, sizeof(rk_s32)); in kmpp_objdef_add_entry()
723 ret = mpp_trie_add_info(trie, "__size", &impl->entry_size, sizeof(rk_s32)); in kmpp_objdef_add_entry()
725 ret |= create_objdef_mem_pool(impl); in kmpp_objdef_add_entry()
730 mpp_loge("objdef %s add entry %s failed ret %d\n", impl ? impl->name : NULL, name, ret); in kmpp_objdef_add_entry()
738 KmppObjDefImpl *impl = (KmppObjDefImpl *)def; in kmpp_objdef_add_init() local
740 impl->init = init; in kmpp_objdef_add_init()
750 KmppObjDefImpl *impl = (KmppObjDefImpl *)def; in kmpp_objdef_add_deinit() local
752 impl->deinit = deinit; in kmpp_objdef_add_deinit()
762 KmppObjDefImpl *impl = (KmppObjDefImpl *)def; in kmpp_objdef_add_preset() local
764 impl->preset = preset; in kmpp_objdef_add_preset()
774 KmppObjDefImpl *impl = (KmppObjDefImpl *)def; in kmpp_objdef_add_dump() local
776 impl->dump = dump; in kmpp_objdef_add_dump()
786 KmppObjDefImpl *impl = (KmppObjDefImpl *)def; in kmpp_objdef_set_prop() local
789 impl->disable_mismatch_log = value ? 1 : 0; in kmpp_objdef_set_prop()
803 KmppObjDefImpl *impl = (KmppObjDefImpl *)def; in kmpp_objdef_get_entry() local
806 if (impl->trie) { in kmpp_objdef_get_entry()
807 MppTrieInfo *info = mpp_trie_get_info(impl->trie, name); in kmpp_objdef_get_entry()
815 if (ret && !impl->disable_mismatch_log) in kmpp_objdef_get_entry()
817 impl ? impl->name : NULL, name, ret); in kmpp_objdef_get_entry()
824 KmppObjDefImpl *impl = (KmppObjDefImpl *)def; in kmpp_objdef_get_offset() local
827 if (impl->trie) { in kmpp_objdef_get_offset()
828 MppTrieInfo *info = mpp_trie_get_info(impl->trie, name); in kmpp_objdef_get_offset()
843 KmppObjDefImpl *impl = (KmppObjDefImpl *)def; in kmpp_objdef_get_cmd() local
845 if (impl->ioctl) { in kmpp_objdef_get_cmd()
846 MppTrieInfo *info = mpp_trie_get_info(impl->ioctl, name); in kmpp_objdef_get_cmd()
858 KmppObjDefImpl *impl = (KmppObjDefImpl *)def; in kmpp_objdef_dump() local
859 MppTrie trie = impl->trie; in kmpp_objdef_dump()
861 const char *name = impl->name; in kmpp_objdef_dump()
865 name, impl->entry_size, mpp_trie_get_info_count(trie)); in kmpp_objdef_dump()
905 KmppObjDefImpl *impl = (KmppObjDefImpl *)def; in kmpp_objdef_get_name() local
907 return impl ? impl->name : NULL; in kmpp_objdef_get_name()
912 KmppObjDefImpl *impl = (KmppObjDefImpl *)def; in kmpp_objdef_get_entry_size() local
914 return impl ? impl->entry_size : 0; in kmpp_objdef_get_entry_size()
919 KmppObjDefImpl *impl = (KmppObjDefImpl *)def; in kmpp_objdef_get_trie() local
921 return impl ? impl->trie : NULL; in kmpp_objdef_get_trie()
930 KmppObjImpl *impl = mpp_mem_pool_get(def->pool, caller); in _get_obj_from_def() local
933 if (!impl) { in _get_obj_from_def()
939 base = (rk_u8 *)(impl + 1); in _get_obj_from_def()
940 impl->name = def->name; in _get_obj_from_def()
941 impl->def = def; in _get_obj_from_def()
942 impl->trie = def->trie; in _get_obj_from_def()
945 impl->priv = base; in _get_obj_from_def()
948 impl->priv = NULL; in _get_obj_from_def()
952 impl->shm = shm; in _get_obj_from_def()
953 impl->entry = (void *)(shm->uptr + p->entry_offset); in _get_obj_from_def()
956 *(RK_U64 *)(shm->uptr + p->priv_offset) = (RK_U64)(intptr_t)impl; in _get_obj_from_def()
959 def->name, impl, shm->uaddr, shm->kaddr, caller); in _get_obj_from_def()
961 impl->shm = NULL; in _get_obj_from_def()
962 impl->entry = base; in _get_obj_from_def()
965 def->name, impl, base, caller); in _get_obj_from_def()
969 def->init(impl->entry, impl, caller); in _get_obj_from_def()
971 return impl; in _get_obj_from_def()
1054 KmppObjImpl *impl; in kmpp_obj_get_by_sptr() local
1073 impl = (KmppObjImpl *)(intptr_t) * (rk_u64 *)(uptr + p->priv_offset); in kmpp_obj_get_by_sptr()
1074 if (impl) { in kmpp_obj_get_by_sptr()
1075 if (!kmpp_obj_check_f((KmppObj)impl)) in kmpp_obj_get_by_sptr()
1096 impl = get_obj_from_def(p, def, (KmppShmPtr *)uptr, caller); in kmpp_obj_get_by_sptr()
1099 *obj = impl; in kmpp_obj_get_by_sptr()
1101 return impl ? rk_ok : rk_nok; in kmpp_obj_get_by_sptr()
1107 KmppObjImpl *impl = (KmppObjImpl *)obj; in kmpp_obj_put() local
1108 KmppObjDefImpl *def = impl->def; in kmpp_obj_put()
1114 def->deinit(impl->entry, impl, caller); in kmpp_obj_put()
1118 if (impl->shm) { in kmpp_obj_put()
1126 ioc->obj_sptr[0].uaddr = impl->shm->uaddr; in kmpp_obj_put()
1127 ioc->obj_sptr[0].kaddr = impl->shm->kaddr; in kmpp_obj_put()
1130 impl, impl->shm->uaddr, impl->shm->kaddr, caller); in kmpp_obj_put()
1136 impl->shm = NULL; in kmpp_obj_put()
1139 mpp_mem_pool_put(def->pool, impl, caller); in kmpp_obj_put()
1150 KmppObjImpl *impl = (KmppObjImpl *)obj; in kmpp_obj_impl_put() local
1151 KmppObjDefImpl *def = impl->def; in kmpp_obj_impl_put()
1157 def->deinit(impl->entry, impl, caller); in kmpp_obj_impl_put()
1160 mpp_mem_pool_put(def->pool, impl, caller); in kmpp_obj_impl_put()
1172 KmppObjImpl *impl = (KmppObjImpl *)obj; in kmpp_obj_preset() local
1173 KmppObjDefImpl *def = impl->def; in kmpp_obj_preset()
1178 return def->preset(impl->entry, impl, arg, caller); in kmpp_obj_preset()
1186 KmppObjImpl *impl = (KmppObjImpl *)obj; in kmpp_obj_check() local
1188 if (!impl) { in kmpp_obj_check()
1193 if (!impl->name || !impl->def || impl->name != impl->def->name) { in kmpp_obj_check()
1195 impl->def ? impl->def->name : NULL, impl->name); in kmpp_obj_check()
1199 if (!impl->entry || !impl->def->trie) { in kmpp_obj_check()
1201 impl->entry, impl->def->trie); in kmpp_obj_check()
1212 KmppObjImpl *impl = (KmppObjImpl *)ctx; in kmpp_obj_ioctl() local
1232 if (!impl || !impl->def) { in kmpp_obj_ioctl()
1234 impl, impl ? impl->def : NULL, caller); in kmpp_obj_ioctl()
1238 def = impl->def; in kmpp_obj_ioctl()
1310 KmppObjImpl *impl = (KmppObjImpl *)obj; in kmpp_obj_is_kobj() local
1312 return (impl && impl->def) ? impl->def->is_kobj : 0; in kmpp_obj_is_kobj()
1317 KmppObjImpl *impl = (KmppObjImpl *)obj; in kmpp_obj_to_objdef() local
1319 return impl ? impl->def : NULL; in kmpp_obj_to_objdef()
1324 KmppObjImpl *impl = (KmppObjImpl *)obj; in kmpp_obj_to_flags() local
1326 if (impl && impl->def && impl->def->flag_offset) in kmpp_obj_to_flags()
1327 return impl->entry + impl->def->flag_offset; in kmpp_obj_to_flags()
1334 KmppObjImpl *impl = (KmppObjImpl *)obj; in kmpp_obj_to_flags_size() local
1336 if (impl && impl->def && impl->def->flag_max_pos) { in kmpp_obj_to_flags_size()
1337 KmppObjDefImpl *def = impl->def; in kmpp_obj_to_flags_size()
1348 KmppObjImpl *impl = (KmppObjImpl *)obj; in kmpp_obj_to_shm() local
1350 if (!impl) { in kmpp_obj_to_shm()
1355 return impl->shm; in kmpp_obj_to_shm()
1366 KmppObjImpl *impl = (KmppObjImpl *)obj; in kmpp_obj_get_name() local
1368 if (impl && impl->def && impl->def->name) in kmpp_obj_get_name()
1369 return impl->def->name; in kmpp_obj_get_name()
1376 KmppObjImpl *impl = (KmppObjImpl *)obj; in kmpp_obj_to_priv() local
1378 return impl ? impl->priv : NULL; in kmpp_obj_to_priv()
1383 KmppObjImpl *impl = (KmppObjImpl *)obj; in kmpp_obj_to_entry() local
1385 return impl ? impl->entry : NULL; in kmpp_obj_to_entry()
1390 KmppObjImpl *impl = (KmppObjImpl *)obj; in kmpp_obj_to_offset() local
1392 if (!impl || !name) { in kmpp_obj_to_offset()
1397 if (impl->trie) { in kmpp_obj_to_offset()
1398 MppTrieInfo *info = mpp_trie_get_info(impl->trie, name); in kmpp_obj_to_offset()
1416 KmppObjImpl *impl = (KmppObjImpl *)obj; \
1418 if (impl->trie) { \
1419 MppTrieInfo *info = mpp_trie_get_info(impl->trie, name); \
1422 ret = kmpp_obj_impl_set_##type(tbl, impl->entry, val); \
1427 impl ? impl->def ? impl->def->name : NULL : NULL, name, ret); \
1432 KmppObjImpl *impl = (KmppObjImpl *)obj; \
1434 if (impl->trie) { \
1435 MppTrieInfo *info = mpp_trie_get_info(impl->trie, name); \
1438 ret = kmpp_obj_impl_get_##type(tbl, impl->entry, val); \
1443 impl ? impl->def ? impl->def->name : NULL : NULL, name, ret); \
1457 KmppObjImpl *impl = (KmppObjImpl *)obj; in MPP_OBJ_ACCESS() local
1460 if (impl->trie) { in MPP_OBJ_ACCESS()
1461 MppTrieInfo *info = mpp_trie_get_info(impl->trie, name); in MPP_OBJ_ACCESS()
1467 ret = kmpp_obj_impl_set_st(tbl, impl->entry, val); in MPP_OBJ_ACCESS()
1469 ret = kmpp_obj_impl_set_ptr(tbl, impl->entry, val); in MPP_OBJ_ACCESS()
1475 (impl && impl->def && impl->def->name) ? impl->def->name : NULL, name, ret); in MPP_OBJ_ACCESS()
1482 KmppObjImpl *impl = (KmppObjImpl *)obj; in kmpp_obj_get_ptr() local
1485 if (impl->trie) { in kmpp_obj_get_ptr()
1486 MppTrieInfo *info = mpp_trie_get_info(impl->trie, name); in kmpp_obj_get_ptr()
1492 ret = kmpp_obj_impl_get_st(tbl, impl->entry, val); in kmpp_obj_get_ptr()
1494 ret = kmpp_obj_impl_get_ptr(tbl, impl->entry, val); in kmpp_obj_get_ptr()
1500 (impl && impl->def && impl->def->name) ? impl->def->name : NULL, name, ret); in kmpp_obj_get_ptr()
1508 KmppObjImpl *impl = (KmppObjImpl *)obj; \
1510 if (impl->trie) { \
1511 MppTrieInfo *info = mpp_trie_get_info(impl->trie, name); \
1514 ret = kmpp_obj_impl_set_##type(tbl, impl->entry, val); \
1519 impl ? impl->def ? impl->def->name : NULL : NULL, name, ret); \
1524 KmppObjImpl *impl = (KmppObjImpl *)obj; \
1526 if (impl->trie) { \
1527 MppTrieInfo *info = mpp_trie_get_info(impl->trie, name); \
1530 ret = kmpp_obj_impl_get_##type(tbl, impl->entry, val); \
1535 impl ? impl->def ? impl->def->name : NULL : NULL, name, ret); \
1545 KmppObjImpl *impl = (KmppObjImpl *)obj; \ in MPP_OBJ_STRUCT_ACCESS()
1547 if (impl) \ in MPP_OBJ_STRUCT_ACCESS()
1548 ret = kmpp_obj_impl_set_##type(tbl, impl->entry, val); \ in MPP_OBJ_STRUCT_ACCESS()
1551 impl ? impl->def ? impl->def->name : NULL : NULL, tbl ? tbl->val : 0, ret); \ in MPP_OBJ_STRUCT_ACCESS()
1556 KmppObjImpl *impl = (KmppObjImpl *)obj; \
1558 if (impl) \
1559 ret = kmpp_obj_impl_get_##type(tbl, impl->entry, val); \
1562 impl ? impl->def ? impl->def->name : NULL : NULL, tbl ? tbl->val : 0, ret); \
1577 KmppObjImpl *impl = (KmppObjImpl *)obj; \
1579 if (impl) \
1580 ret = kmpp_obj_impl_set_##type(tbl, impl->entry, val); \
1583 impl ? impl->def ? impl->def->name : NULL : NULL, tbl ? tbl->val : 0, ret); \
1588 KmppObjImpl *impl = (KmppObjImpl *)obj; \
1590 if (impl) \
1591 ret = kmpp_obj_impl_get_##type(tbl, impl->entry, val); \
1594 impl ? impl->def ? impl->def->name : NULL : NULL, tbl ? tbl->val : 0, ret); \
1629 KmppObjImpl *impl = (KmppObjImpl *)obj; in kmpp_obj_get_shm_obj() local
1636 mpp_loge_f("obj %p get shm %s failed ret %d\n", impl, name, ret); in kmpp_obj_get_shm_obj()
1647 KmppObjImpl *impl = (KmppObjImpl *)obj; in kmpp_obj_test() local
1649 if (impl && impl->trie) { in kmpp_obj_test()
1650 MppTrieInfo *info = mpp_trie_get_info(impl->trie, name); in kmpp_obj_test()
1655 return ENTRY_TEST_FLAG(tbl, impl->entry);; in kmpp_obj_test()
1664 KmppObjImpl *impl = (KmppObjImpl *)obj; in kmpp_obj_tbl_test() local
1666 return (impl && tbl) ? ENTRY_TEST_FLAG(tbl, impl->entry) : 0; in kmpp_obj_tbl_test()
1784 KmppObjImpl *impl = (KmppObjImpl *)obj; in kmpp_obj_run() local
1787 if (impl->trie) { in kmpp_obj_run()
1788 MppTrieInfo *info = mpp_trie_get_info(impl->trie, name); in kmpp_obj_run()
1794 ret = kmpp_obj_impl_get_fp(tbl, impl->entry, &val); in kmpp_obj_run()
1798 ret = kmpp_obj_impl_run(val, impl->entry); in kmpp_obj_run()
1806 KmppObjImpl *impl = (KmppObjImpl *)obj; in kmpp_obj_udump_f() local
1807 KmppObjDefImpl *def = impl ? impl->def : NULL; in kmpp_obj_udump_f()
1815 if (!impl || !def) { in kmpp_obj_udump_f()
1816 mpp_loge_f("invalid obj %p def %p\n", impl, def); in kmpp_obj_udump_f()
1820 trie = impl->trie; in kmpp_obj_udump_f()
1823 mpp_logi("dump obj %-12s - %p at %s:\n", name, impl, caller); in kmpp_obj_udump_f()
1826 return def->dump(impl->entry); in kmpp_obj_udump_f()
2005 KmppObjImpl *impl = (KmppObjImpl *)obj; in kmpp_obj_kdump_f() local
2006 KmppObjDefImpl *def = impl ? impl->def : NULL; in kmpp_obj_kdump_f()
2009 if (!impl || !def || !p) { in kmpp_obj_kdump_f()
2010 mpp_loge_f("invalid obj %p def %p objs %p\n", impl, def, p); in kmpp_obj_kdump_f()
2014 mpp_logi("dump obj %-12s - %p at %s by kernel\n", def->name, impl, caller); in kmpp_obj_kdump_f()
2016 ret = ioctl(p->obj.fd, KMPP_SHM_IOC_DUMP, impl->shm); in kmpp_obj_kdump_f()