idp 67 lib/util/idtree.c static struct idr_layer *alloc_layer(struct idr_context *idp)
idp 71 lib/util/idtree.c if (!(p = idp->id_free))
idp 73 lib/util/idtree.c idp->id_free = p->ary[0];
idp 74 lib/util/idtree.c idp->id_free_cnt--;
idp 85 lib/util/idtree.c static void free_layer(struct idr_context *idp, struct idr_layer *p)
idp 87 lib/util/idtree.c p->ary[0] = idp->id_free;
idp 88 lib/util/idtree.c idp->id_free = p;
idp 89 lib/util/idtree.c idp->id_free_cnt++;
idp 92 lib/util/idtree.c static int idr_pre_get(struct idr_context *idp)
idp 94 lib/util/idtree.c while (idp->id_free_cnt < IDR_FREE_MAX) {
idp 95 lib/util/idtree.c struct idr_layer *pn = talloc_zero(idp, struct idr_layer);
idp 98 lib/util/idtree.c free_layer(idp, pn);
idp 103 lib/util/idtree.c static int sub_alloc(struct idr_context *idp, void *ptr, int *starting_id)
idp 115 lib/util/idtree.c p = idp->top;
idp 116 lib/util/idtree.c l = idp->layers;
idp 158 lib/util/idtree.c if (!(pn = alloc_layer(idp)))
idp 189 lib/util/idtree.c static int idr_get_new_above_int(struct idr_context *idp, void *ptr, int starting_id)
idp 194 lib/util/idtree.c idr_pre_get(idp);
idp 198 lib/util/idtree.c p = idp->top;
idp 199 lib/util/idtree.c layers = idp->layers;
idp 201 lib/util/idtree.c if (!(p = alloc_layer(idp)))
idp 213 lib/util/idtree.c if (!(pn = alloc_layer(idp))) {
idp 218 lib/util/idtree.c for (pn = p; p && p != idp->top; pn = p) {
idp 222 lib/util/idtree.c free_layer(idp, pn);
idp 232 lib/util/idtree.c idp->top = p;
idp 233 lib/util/idtree.c idp->layers = layers;
idp 234 lib/util/idtree.c v = sub_alloc(idp, ptr, &id);
idp 240 lib/util/idtree.c static int sub_remove(struct idr_context *idp, int shift, int id)
idp 242 lib/util/idtree.c struct idr_layer *p = idp->top;
idp 248 lib/util/idtree.c *++paa = &idp->top;
idp 262 lib/util/idtree.c free_layer(idp, **paa);
idp 266 lib/util/idtree.c idp->layers = 0;
idp 272 lib/util/idtree.c static void *_idr_find(struct idr_context *idp, int id)
idp 277 lib/util/idtree.c n = idp->layers * IDR_BITS;
idp 278 lib/util/idtree.c p = idp->top;
idp 296 lib/util/idtree.c static int _idr_remove(struct idr_context *idp, int id)
idp 303 lib/util/idtree.c if (sub_remove(idp, (idp->layers - 1) * IDR_BITS, id) == -1) {
idp 307 lib/util/idtree.c if ( idp->top && idp->top->count == 1 &&
idp 308 lib/util/idtree.c (idp->layers > 1) &&
idp 309 lib/util/idtree.c idp->top->ary[0]) {
idp 311 lib/util/idtree.c p = idp->top->ary[0];
idp 312 lib/util/idtree.c idp->top->bitmap = idp->top->count = 0;
idp 313 lib/util/idtree.c free_layer(idp, idp->top);
idp 314 lib/util/idtree.c idp->top = p;
idp 315 lib/util/idtree.c --idp->layers;
idp 317 lib/util/idtree.c while (idp->id_free_cnt >= IDR_FREE_MAX) {
idp 318 lib/util/idtree.c p = alloc_layer(idp);
idp 342 lib/util/idtree.c _PUBLIC_ int idr_get_new(struct idr_context *idp, void *ptr, int limit)
idp 344 lib/util/idtree.c int ret = idr_get_new_above_int(idp, ptr, 0);
idp 346 lib/util/idtree.c idr_remove(idp, ret);
idp 356 lib/util/idtree.c _PUBLIC_ int idr_get_new_above(struct idr_context *idp, void *ptr, int starting_id, int limit)
idp 358 lib/util/idtree.c int ret = idr_get_new_above_int(idp, ptr, starting_id);
idp 360 lib/util/idtree.c idr_remove(idp, ret);
idp 369 lib/util/idtree.c _PUBLIC_ int idr_get_new_random(struct idr_context *idp, void *ptr, int limit)
idp 376 lib/util/idtree.c id = idr_get_new_above(idp, ptr, 1+(generate_random() % limit), limit);
idp 378 lib/util/idtree.c id = idr_get_new_above(idp, ptr, 1+(generate_random()%(limit/2)), limit);
idp 387 lib/util/idtree.c _PUBLIC_ void *idr_find(struct idr_context *idp, int id)
idp 389 lib/util/idtree.c return _idr_find(idp, id);
idp 395 lib/util/idtree.c _PUBLIC_ int idr_remove(struct idr_context *idp, int id)
idp 398 lib/util/idtree.c ret = _idr_remove((struct idr_context *)idp, id);
idp 727 lib/util/util.h _PUBLIC_ int idr_get_new(struct idr_context *idp, void *ptr, int limit);
idp 733 lib/util/util.h _PUBLIC_ int idr_get_new_above(struct idr_context *idp, void *ptr, int starting_id, int limit);
idp 738 lib/util/util.h _PUBLIC_ int idr_get_new_random(struct idr_context *idp, void *ptr, int limit);
idp 743 lib/util/util.h _PUBLIC_ void *idr_find(struct idr_context *idp, int id);
idp 748 lib/util/util.h _PUBLIC_ int idr_remove(struct idr_context *idp, int id);
idp 25 source3/modules/vfs_aixacl_util.c struct ace_id *idp;
idp 54 source3/modules/vfs_aixacl_util.c idp = id_nxt(acl_entry->ace_id);
idp 56 source3/modules/vfs_aixacl_util.c (acl_entry->ace_type == ACC_PERMIT)) && (idp != id_last(acl_entry))) {
idp 61 source3/modules/vfs_aixacl_util.c idp = acl_entry->ace_id;
idp 62 source3/modules/vfs_aixacl_util.c DEBUG(10,("idp->id_data is %d\n",idp->id_data[0]));
idp 74 source3/modules/vfs_aixacl_util.c DEBUG(10,("idp->id_type is %d\n",idp->id_type));
idp 77 source3/modules/vfs_aixacl_util.c ace->a_type = idp->id_type;
idp 81 source3/modules/vfs_aixacl_util.c ace->uid = idp->id_data[0];
idp 88 source3/modules/vfs_aixacl_util.c ace->gid = idp->id_data[0];