Lines Matching refs:pool_info

108 static int hermon_rsrc_mbox_alloc(hermon_rsrc_pool_info_t *pool_info,
112 static int hermon_rsrc_hw_entry_alloc(hermon_rsrc_pool_info_t *pool_info,
114 static void hermon_rsrc_hw_entry_free(hermon_rsrc_pool_info_t *pool_info,
116 static int hermon_rsrc_hw_entry_reserve(hermon_rsrc_pool_info_t *pool_info,
119 static int hermon_rsrc_hw_entry_icm_confirm(hermon_rsrc_pool_info_t *pool_info,
121 static int hermon_rsrc_hw_entry_icm_free(hermon_rsrc_pool_info_t *pool_info,
124 static int hermon_rsrc_swhdl_alloc(hermon_rsrc_pool_info_t *pool_info,
126 static void hermon_rsrc_swhdl_free(hermon_rsrc_pool_info_t *pool_info,
129 static int hermon_rsrc_pdhdl_alloc(hermon_rsrc_pool_info_t *pool_info,
131 static void hermon_rsrc_pdhdl_free(hermon_rsrc_pool_info_t *pool_info,
1833 hermon_rsrc_mbox_alloc(hermon_rsrc_pool_info_t *pool_info, uint_t num,
1841 ASSERT(pool_info != NULL);
1845 priv = pool_info->rsrc_private;
1856 temp_len = (num << pool_info->rsrc_shift);
1895 hermon_rsrc_hw_entry_alloc(hermon_rsrc_pool_info_t *pool_info, uint_t num,
1904 ASSERT(pool_info != NULL);
1914 hdl->hr_len = (num << pool_info->rsrc_shift);
1915 align = (num_align << pool_info->rsrc_shift);
1917 addr = vmem_xalloc(pool_info->rsrc_vmp, hdl->hr_len,
1928 offset = (uintptr_t)addr - (uintptr_t)pool_info->rsrc_start;
1930 hdl->hr_indx = offset >> pool_info->rsrc_shift;
1932 if (pool_info->rsrc_loc == HERMON_IN_ICM) {
1934 hermon_rsrc_type_t rsrc_type = pool_info->rsrc_type;
1940 status = hermon_rsrc_hw_entry_icm_confirm(pool_info, num, hdl,
1957 hermon_rsrc_hw_entry_reserve(hermon_rsrc_pool_info_t *pool_info, uint_t num,
1965 ASSERT(pool_info != NULL);
1967 ASSERT(pool_info->rsrc_loc == HERMON_IN_ICM);
1976 hdl->hr_len = (num << pool_info->rsrc_shift);
1977 align = (num_align << pool_info->rsrc_shift);
1979 addr = vmem_xalloc(pool_info->rsrc_vmp, hdl->hr_len,
1990 offset = (uintptr_t)addr - (uintptr_t)pool_info->rsrc_start;
1992 hdl->hr_indx = offset >> pool_info->rsrc_shift;
2005 hermon_rsrc_hw_entry_free(hermon_rsrc_pool_info_t *pool_info,
2012 ASSERT(pool_info != NULL);
2016 offset = hdl->hr_indx << pool_info->rsrc_shift;
2017 addr = (void *)(uintptr_t)(offset + (uintptr_t)pool_info->rsrc_start);
2020 vmem_xfree(pool_info->rsrc_vmp, addr, hdl->hr_len);
2022 if (pool_info->rsrc_loc == HERMON_IN_ICM) {
2024 hermon_rsrc_type_t rsrc_type = pool_info->rsrc_type;
2030 status = hermon_rsrc_hw_entry_icm_free(pool_info, hdl,
2033 HERMON_WARNING(pool_info->rsrc_state,
2043 hermon_rsrc_hw_entry_icm_confirm(hermon_rsrc_pool_info_t *pool_info, uint_t num,
2070 state = pool_info->rsrc_state;
2071 type = pool_info->rsrc_type;
2198 hermon_rsrc_hw_entry_icm_free(hermon_rsrc_pool_info_t *pool_info,
2222 state = pool_info->rsrc_state;
2223 type = pool_info->rsrc_type;
2231 num = hdl->hr_len >> pool_info->rsrc_shift;
2304 hermon_rsrc_swhdl_alloc(hermon_rsrc_pool_info_t *pool_info, uint_t sleepflag,
2310 ASSERT(pool_info != NULL);
2315 addr = kmem_cache_alloc(pool_info->rsrc_private, flag);
2319 hdl->hr_len = pool_info->rsrc_quantum;
2331 hermon_rsrc_swhdl_free(hermon_rsrc_pool_info_t *pool_info, hermon_rsrc_t *hdl)
2333 ASSERT(pool_info != NULL);
2337 kmem_cache_free(pool_info->rsrc_private, hdl->hr_addr);
2346 hermon_rsrc_pdhdl_alloc(hermon_rsrc_pool_info_t *pool_info, uint_t sleepflag,
2353 ASSERT(pool_info != NULL);
2357 status = hermon_rsrc_swhdl_alloc(pool_info, sleepflag, hdl);
2366 tmpaddr = vmem_alloc(pool_info->rsrc_vmp, 1, flag);
2369 hermon_rsrc_swhdl_free(pool_info, hdl);
2385 hermon_rsrc_pdhdl_free(hermon_rsrc_pool_info_t *pool_info, hermon_rsrc_t *hdl)
2387 ASSERT(pool_info != NULL);
2391 vmem_free(pool_info->rsrc_vmp, (void *)(uintptr_t)hdl->hr_indx, 1);
2394 hermon_rsrc_swhdl_free(pool_info, hdl);