Initial commit of vpp code.
[vpp.git] / vppinfra / vppinfra / test_pool_iterate.c
1 /*
2   Copyright (c) 2011 Cisco and/or its affiliates.
3
4   * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at:
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15 */
16
17 #include <vppinfra/mem.h>
18 #include <vppinfra/pool.h>
19
20 #ifdef __KERNEL__
21 # include <linux/unistd.h>
22 #else
23 # include <unistd.h>
24 #endif
25
26 int main (int argc, char * argv[])
27 {
28   int i;
29   uword next;
30   u32 *tp = 0;
31   u32 *junk;
32
33   for (i = 0; i < 70; i++)
34     pool_get (tp, junk);
35   
36   (void) junk;                  /* compiler warning */
37
38   pool_put_index (tp, 1);
39   pool_put_index (tp, 65);
40
41   next = ~0;
42   do {
43     next = pool_next_index (tp, next);
44     fformat (stdout, "next index %d\n", next);
45   } while (next != ~0);
46
47   return 0;
48 }