Lines Matching defs:mpctx
281 isc__mempool_setname(isc_mempool_t *mpctx, const char *name);
285 isc__mempool_associatelock(isc_mempool_t *mpctx, isc_mutex_t *lock);
287 isc___mempool_get(isc_mempool_t *mpctx FLARG);
289 isc___mempool_put(isc_mempool_t *mpctx, void *mem FLARG);
291 isc__mempool_setfreemax(isc_mempool_t *mpctx, unsigned int limit);
293 isc__mempool_getfreemax(isc_mempool_t *mpctx);
295 isc__mempool_getfreecount(isc_mempool_t *mpctx);
297 isc__mempool_setmaxalloc(isc_mempool_t *mpctx, unsigned int limit);
299 isc__mempool_getmaxalloc(isc_mempool_t *mpctx);
301 isc__mempool_getallocated(isc_mempool_t *mpctx);
303 isc__mempool_setfillcount(isc_mempool_t *mpctx, unsigned int limit);
305 isc__mempool_getfillcount(isc_mempool_t *mpctx);
1837 isc__mempool_t *mpctx;
1847 mpctx = isc_mem_get((isc_mem_t *)mctx, sizeof(isc__mempool_t));
1848 if (mpctx == NULL)
1851 mpctx->common.methods = (isc_mempoolmethods_t *)&mempoolmethods;
1852 mpctx->common.impmagic = MEMPOOL_MAGIC;
1853 mpctx->common.magic = ISCAPI_MPOOL_MAGIC;
1854 mpctx->lock = NULL;
1855 mpctx->mctx = mctx;
1856 mpctx->size = size;
1857 mpctx->maxalloc = UINT_MAX;
1858 mpctx->allocated = 0;
1859 mpctx->freecount = 0;
1860 mpctx->freemax = 1;
1861 mpctx->fillcount = 1;
1862 mpctx->gets = 0;
1864 mpctx->name[0] = 0;
1866 mpctx->items = NULL;
1868 *mpctxp = (isc_mempool_t *)mpctx;
1871 ISC_LIST_INITANDAPPEND(mctx->pools, mpctx, link);
1880 isc__mempool_t *mpctx = (isc__mempool_t *)mpctx0;
1883 REQUIRE(VALID_MEMPOOL(mpctx));
1886 if (mpctx->lock != NULL)
1887 LOCK(mpctx->lock);
1889 strlcpy(mpctx->name, name, sizeof(mpctx->name));
1891 if (mpctx->lock != NULL)
1892 UNLOCK(mpctx->lock);
1894 UNUSED(mpctx);
1901 isc__mempool_t *mpctx;
1907 mpctx = (isc__mempool_t *)*mpctxp;
1908 REQUIRE(VALID_MEMPOOL(mpctx));
1910 if (mpctx->allocated > 0)
1914 mpctx->name);
1916 REQUIRE(mpctx->allocated == 0);
1918 mctx = mpctx->mctx;
1920 lock = mpctx->lock;
1929 while (mpctx->items != NULL) {
1930 INSIST(mpctx->freecount > 0);
1931 mpctx->freecount--;
1932 item = mpctx->items;
1933 mpctx->items = item->next;
1936 mem_putunlocked(mctx, item, mpctx->size);
1938 mem_putstats(mctx, item, mpctx->size);
1939 mem_put(mctx, item, mpctx->size);
1948 ISC_LIST_UNLINK(mctx->pools, mpctx, link);
1952 mpctx->common.impmagic = 0;
1953 mpctx->common.magic = 0;
1955 isc_mem_put((isc_mem_t *)mpctx->mctx, mpctx, sizeof(isc__mempool_t));
1965 isc__mempool_t *mpctx = (isc__mempool_t *)mpctx0;
1967 REQUIRE(VALID_MEMPOOL(mpctx));
1968 REQUIRE(mpctx->lock == NULL);
1971 mpctx->lock = lock;
1976 isc__mempool_t *mpctx = (isc__mempool_t *)mpctx0;
1981 REQUIRE(VALID_MEMPOOL(mpctx));
1983 mctx = mpctx->mctx;
1985 if (mpctx->lock != NULL)
1986 LOCK(mpctx->lock);
1991 if (ISC_UNLIKELY(mpctx->allocated >= mpctx->maxalloc)) {
1996 if (ISC_UNLIKELY(mpctx->items == NULL)) {
2002 for (i = 0; i < mpctx->fillcount; i++) {
2004 item = mem_getunlocked(mctx, mpctx->size);
2006 item = mem_get(mctx, mpctx->size);
2008 mem_getstats(mctx, mpctx->size);
2012 item->next = mpctx->items;
2013 mpctx->items = item;
2014 mpctx->freecount++;
2022 item = mpctx->items;
2026 mpctx->items = item->next;
2027 INSIST(mpctx->freecount > 0);
2028 mpctx->freecount--;
2029 mpctx->gets++;
2030 mpctx->allocated++;
2033 if (mpctx->lock != NULL)
2034 UNLOCK(mpctx->lock);
2039 ADD_TRACE(mctx, item, mpctx->size, file, line);
2050 isc__mempool_t *mpctx = (isc__mempool_t *)mpctx0;
2054 REQUIRE(VALID_MEMPOOL(mpctx));
2057 mctx = mpctx->mctx;
2059 if (mpctx->lock != NULL)
2060 LOCK(mpctx->lock);
2062 INSIST(mpctx->allocated > 0);
2063 mpctx->allocated--;
2068 DELETE_TRACE(mctx, mem, mpctx->size, file, line);
2076 if (mpctx->freecount >= mpctx->freemax) {
2079 mem_putunlocked(mctx, mem, mpctx->size);
2081 mem_putstats(mctx, mem, mpctx->size);
2082 mem_put(mctx, mem, mpctx->size);
2085 if (mpctx->lock != NULL)
2086 UNLOCK(mpctx->lock);
2093 mpctx->freecount++;
2095 item->next = mpctx->items;
2096 mpctx->items = item;
2098 if (mpctx->lock != NULL)
2099 UNLOCK(mpctx->lock);
2108 isc__mempool_t *mpctx = (isc__mempool_t *)mpctx0;
2110 REQUIRE(VALID_MEMPOOL(mpctx));
2112 if (mpctx->lock != NULL)
2113 LOCK(mpctx->lock);
2115 mpctx->freemax = limit;
2117 if (mpctx->lock != NULL)
2118 UNLOCK(mpctx->lock);
2123 isc__mempool_t *mpctx = (isc__mempool_t *)mpctx0;
2126 REQUIRE(VALID_MEMPOOL(mpctx));
2128 if (mpctx->lock != NULL)
2129 LOCK(mpctx->lock);
2131 freemax = mpctx->freemax;
2133 if (mpctx->lock != NULL)
2134 UNLOCK(mpctx->lock);
2141 isc__mempool_t *mpctx = (isc__mempool_t *)mpctx0;
2144 REQUIRE(VALID_MEMPOOL(mpctx));
2146 if (mpctx->lock != NULL)
2147 LOCK(mpctx->lock);
2149 freecount = mpctx->freecount;
2151 if (mpctx->lock != NULL)
2152 UNLOCK(mpctx->lock);
2159 isc__mempool_t *mpctx = (isc__mempool_t *)mpctx0;
2163 REQUIRE(VALID_MEMPOOL(mpctx));
2165 if (mpctx->lock != NULL)
2166 LOCK(mpctx->lock);
2168 mpctx->maxalloc = limit;
2170 if (mpctx->lock != NULL)
2171 UNLOCK(mpctx->lock);
2176 isc__mempool_t *mpctx = (isc__mempool_t *)mpctx0;
2179 REQUIRE(VALID_MEMPOOL(mpctx));
2181 if (mpctx->lock != NULL)
2182 LOCK(mpctx->lock);
2184 maxalloc = mpctx->maxalloc;
2186 if (mpctx->lock != NULL)
2187 UNLOCK(mpctx->lock);
2194 isc__mempool_t *mpctx = (isc__mempool_t *)mpctx0;
2197 REQUIRE(VALID_MEMPOOL(mpctx));
2199 if (mpctx->lock != NULL)
2200 LOCK(mpctx->lock);
2202 allocated = mpctx->allocated;
2204 if (mpctx->lock != NULL)
2205 UNLOCK(mpctx->lock);
2212 isc__mempool_t *mpctx = (isc__mempool_t *)mpctx0;
2215 REQUIRE(VALID_MEMPOOL(mpctx));
2217 if (mpctx->lock != NULL)
2218 LOCK(mpctx->lock);
2220 mpctx->fillcount = limit;
2222 if (mpctx->lock != NULL)
2223 UNLOCK(mpctx->lock);
2228 isc__mempool_t *mpctx = (isc__mempool_t *)mpctx0;
2232 REQUIRE(VALID_MEMPOOL(mpctx));
2234 if (mpctx->lock != NULL)
2235 LOCK(mpctx->lock);
2237 fillcount = mpctx->fillcount;
2239 if (mpctx->lock != NULL)
2240 UNLOCK(mpctx->lock);
2852 isc_mempool_getallocated(isc_mempool_t *mpctx) {
2853 REQUIRE(ISCAPI_MPOOL_VALID(mpctx));
2856 return (isc__mempool_getallocated(mpctx));
2858 return (mpctx->methods->getallocated(mpctx));
2862 isc_mempool_setmaxalloc(isc_mempool_t *mpctx, unsigned int limit) {
2863 REQUIRE(ISCAPI_MPOOL_VALID(mpctx));
2866 isc__mempool_setmaxalloc(mpctx, limit);
2868 mpctx->methods->setmaxalloc(mpctx, limit);
2872 isc_mempool_setfreemax(isc_mempool_t *mpctx, unsigned int limit) {
2873 REQUIRE(ISCAPI_MPOOL_VALID(mpctx));
2876 isc__mempool_setfreemax(mpctx, limit);
2878 mpctx->methods->setfreemax(mpctx, limit);
2882 isc_mempool_setname(isc_mempool_t *mpctx, const char *name) {
2883 REQUIRE(ISCAPI_MPOOL_VALID(mpctx));
2886 isc__mempool_setname(mpctx, name);
2888 mpctx->methods->setname(mpctx, name);
2892 isc_mempool_associatelock(isc_mempool_t *mpctx, isc_mutex_t *lock) {
2893 REQUIRE(ISCAPI_MPOOL_VALID(mpctx));
2896 isc__mempool_associatelock(mpctx, lock);
2898 mpctx->methods->associatelock(mpctx, lock);
2902 isc_mempool_setfillcount(isc_mempool_t *mpctx, unsigned int limit) {
2903 REQUIRE(ISCAPI_MPOOL_VALID(mpctx));
2906 isc__mempool_setfillcount(mpctx, limit);
2908 mpctx->methods->setfillcount(mpctx, limit);
2988 isc__mempool_get(isc_mempool_t *mpctx FLARG) {
2989 REQUIRE(ISCAPI_MPOOL_VALID(mpctx));
2992 return (isc___mempool_get(mpctx FLARG_PASS));
2994 return (mpctx->methods->get(mpctx FLARG_PASS));
2998 isc__mempool_put(isc_mempool_t *mpctx, void *mem FLARG) {
2999 REQUIRE(ISCAPI_MPOOL_VALID(mpctx));
3002 isc___mempool_put(mpctx, mem FLARG_PASS);
3004 mpctx->methods->put(mpctx, mem FLARG_PASS);