pool_info
if ((info_buf = pool_info(conf, pool, PO_TRUE)) == NULL)
return (PoolInternal.pool_info(_conf.getConf(), getPool(),
result = pool_info((pool_conf_t *)(uintptr_t)jconf,
extern char *pool_info(const pool_conf_t *, const pool_t *, int);
pool_info, /* info */
static int hermon_rsrc_mbox_alloc(hermon_rsrc_pool_info_t *pool_info,
static int hermon_rsrc_hw_entry_alloc(hermon_rsrc_pool_info_t *pool_info,
static void hermon_rsrc_hw_entry_free(hermon_rsrc_pool_info_t *pool_info,
static int hermon_rsrc_hw_entry_reserve(hermon_rsrc_pool_info_t *pool_info,
static int hermon_rsrc_hw_entry_icm_confirm(hermon_rsrc_pool_info_t *pool_info,
static int hermon_rsrc_hw_entry_icm_free(hermon_rsrc_pool_info_t *pool_info,
static int hermon_rsrc_swhdl_alloc(hermon_rsrc_pool_info_t *pool_info,
static void hermon_rsrc_swhdl_free(hermon_rsrc_pool_info_t *pool_info,
static int hermon_rsrc_pdhdl_alloc(hermon_rsrc_pool_info_t *pool_info,
static void hermon_rsrc_pdhdl_free(hermon_rsrc_pool_info_t *pool_info,
hermon_rsrc_mbox_alloc(hermon_rsrc_pool_info_t *pool_info, uint_t num,
ASSERT(pool_info != NULL);
priv = pool_info->rsrc_private;
temp_len = (num << pool_info->rsrc_shift);
hermon_rsrc_hw_entry_alloc(hermon_rsrc_pool_info_t *pool_info, uint_t num,
ASSERT(pool_info != NULL);
hdl->hr_len = (num << pool_info->rsrc_shift);
align = (num_align << pool_info->rsrc_shift);
addr = vmem_xalloc(pool_info->rsrc_vmp, hdl->hr_len,
offset = (uintptr_t)addr - (uintptr_t)pool_info->rsrc_start;
hdl->hr_indx = offset >> pool_info->rsrc_shift;
if (pool_info->rsrc_loc == HERMON_IN_ICM) {
hermon_rsrc_type_t rsrc_type = pool_info->rsrc_type;
status = hermon_rsrc_hw_entry_icm_confirm(pool_info, num, hdl,
hermon_rsrc_hw_entry_reserve(hermon_rsrc_pool_info_t *pool_info, uint_t num,
ASSERT(pool_info != NULL);
ASSERT(pool_info->rsrc_loc == HERMON_IN_ICM);
hdl->hr_len = (num << pool_info->rsrc_shift);
align = (num_align << pool_info->rsrc_shift);
addr = vmem_xalloc(pool_info->rsrc_vmp, hdl->hr_len,
offset = (uintptr_t)addr - (uintptr_t)pool_info->rsrc_start;
hdl->hr_indx = offset >> pool_info->rsrc_shift;
hermon_rsrc_hw_entry_free(hermon_rsrc_pool_info_t *pool_info,
ASSERT(pool_info != NULL);
offset = hdl->hr_indx << pool_info->rsrc_shift;
addr = (void *)(uintptr_t)(offset + (uintptr_t)pool_info->rsrc_start);
vmem_xfree(pool_info->rsrc_vmp, addr, hdl->hr_len);
if (pool_info->rsrc_loc == HERMON_IN_ICM) {
hermon_rsrc_type_t rsrc_type = pool_info->rsrc_type;
status = hermon_rsrc_hw_entry_icm_free(pool_info, hdl,
HERMON_WARNING(pool_info->rsrc_state,
hermon_rsrc_hw_entry_icm_confirm(hermon_rsrc_pool_info_t *pool_info, uint_t num,
state = pool_info->rsrc_state;
type = pool_info->rsrc_type;
hermon_rsrc_hw_entry_icm_free(hermon_rsrc_pool_info_t *pool_info,
state = pool_info->rsrc_state;
type = pool_info->rsrc_type;
num = hdl->hr_len >> pool_info->rsrc_shift;
hermon_rsrc_swhdl_alloc(hermon_rsrc_pool_info_t *pool_info, uint_t sleepflag,
ASSERT(pool_info != NULL);
addr = kmem_cache_alloc(pool_info->rsrc_private, flag);
hdl->hr_len = pool_info->rsrc_quantum;
hermon_rsrc_swhdl_free(hermon_rsrc_pool_info_t *pool_info, hermon_rsrc_t *hdl)
ASSERT(pool_info != NULL);
kmem_cache_free(pool_info->rsrc_private, hdl->hr_addr);
hermon_rsrc_pdhdl_alloc(hermon_rsrc_pool_info_t *pool_info, uint_t sleepflag,
ASSERT(pool_info != NULL);
status = hermon_rsrc_swhdl_alloc(pool_info, sleepflag, hdl);
tmpaddr = vmem_alloc(pool_info->rsrc_vmp, 1, flag);
hermon_rsrc_swhdl_free(pool_info, hdl);
hermon_rsrc_pdhdl_free(hermon_rsrc_pool_info_t *pool_info, hermon_rsrc_t *hdl)
ASSERT(pool_info != NULL);
vmem_free(pool_info->rsrc_vmp, (void *)(uintptr_t)hdl->hr_indx, 1);
hermon_rsrc_swhdl_free(pool_info, hdl);
static int tavor_rsrc_mbox_alloc(tavor_rsrc_pool_info_t *pool_info,
static void tavor_rsrc_mbox_free(tavor_rsrc_pool_info_t *pool_info,
static int tavor_rsrc_hw_entry_alloc(tavor_rsrc_pool_info_t *pool_info,
static void tavor_rsrc_hw_entry_free(tavor_rsrc_pool_info_t *pool_info,
static int tavor_rsrc_swhdl_alloc(tavor_rsrc_pool_info_t *pool_info,
static void tavor_rsrc_swhdl_free(tavor_rsrc_pool_info_t *pool_info,
static int tavor_rsrc_pdhdl_alloc(tavor_rsrc_pool_info_t *pool_info,
static void tavor_rsrc_pdhdl_free(tavor_rsrc_pool_info_t *pool_info,
tavor_rsrc_mbox_alloc(tavor_rsrc_pool_info_t *pool_info, uint_t num,
ASSERT(pool_info != NULL);
priv = pool_info->rsrc_private;
if (pool_info->rsrc_loc == TAVOR_IN_DDR) {
hdl->tr_len = (num * pool_info->rsrc_quantum);
addr = vmem_alloc(pool_info->rsrc_vmp, hdl->tr_len,
(uintptr_t)pool_info->rsrc_ddr_offset);
(uintptr_t)pool_info->rsrc_start);
temp_len = (num * pool_info->rsrc_quantum);
tavor_rsrc_mbox_free(tavor_rsrc_pool_info_t *pool_info, tavor_rsrc_t *hdl)
ASSERT(pool_info != NULL);
if (pool_info->rsrc_loc == TAVOR_IN_DDR) {
(uintptr_t)pool_info->rsrc_start);
(uintptr_t)pool_info->rsrc_ddr_offset);
vmem_free(pool_info->rsrc_vmp, addr, hdl->tr_len);
tavor_rsrc_hw_entry_alloc(tavor_rsrc_pool_info_t *pool_info, uint_t num,
ASSERT(pool_info != NULL);
hdl->tr_len = (num * pool_info->rsrc_quantum);
align = (num_align * pool_info->rsrc_quantum);
addr = vmem_xalloc(pool_info->rsrc_vmp, hdl->tr_len,
offset = ((uintptr_t)addr - (uintptr_t)pool_info->rsrc_ddr_offset);
(uintptr_t)pool_info->rsrc_start);
hdl->tr_indx = (offset >> pool_info->rsrc_shift);
tavor_rsrc_hw_entry_free(tavor_rsrc_pool_info_t *pool_info, tavor_rsrc_t *hdl)
ASSERT(pool_info != NULL);
offset = ((uintptr_t)hdl->tr_addr - (uintptr_t)pool_info->rsrc_start);
(uintptr_t)pool_info->rsrc_ddr_offset);
vmem_xfree(pool_info->rsrc_vmp, addr, hdl->tr_len);
tavor_rsrc_swhdl_alloc(tavor_rsrc_pool_info_t *pool_info, uint_t sleepflag,
ASSERT(pool_info != NULL);
addr = kmem_cache_alloc(pool_info->rsrc_private, flag);
hdl->tr_len = pool_info->rsrc_quantum;
tavor_rsrc_swhdl_free(tavor_rsrc_pool_info_t *pool_info, tavor_rsrc_t *hdl)
ASSERT(pool_info != NULL);
kmem_cache_free(pool_info->rsrc_private, hdl->tr_addr);
tavor_rsrc_pdhdl_alloc(tavor_rsrc_pool_info_t *pool_info, uint_t sleepflag,
ASSERT(pool_info != NULL);
status = tavor_rsrc_swhdl_alloc(pool_info, sleepflag, hdl);
tmpaddr = vmem_alloc(pool_info->rsrc_vmp, 1, flag);
tavor_rsrc_swhdl_free(pool_info, hdl);
tavor_rsrc_pdhdl_free(tavor_rsrc_pool_info_t *pool_info, tavor_rsrc_t *hdl)
ASSERT(pool_info != NULL);
vmem_free(pool_info->rsrc_vmp, (void *)(uintptr_t)hdl->tr_indx, 1);
tavor_rsrc_swhdl_free(pool_info, hdl);