Lines Matching defs:end
71 static int crush_decode_uniform_bucket(void **p, void *end,
74 dout("crush_decode_uniform_bucket %p to %p\n", *p, end);
75 ceph_decode_need(p, end, (1+b->h.size) * sizeof(u32), bad);
82 static int crush_decode_list_bucket(void **p, void *end,
86 dout("crush_decode_list_bucket %p to %p\n", *p, end);
93 ceph_decode_need(p, end, 2 * b->h.size * sizeof(u32), bad);
103 static int crush_decode_tree_bucket(void **p, void *end,
107 dout("crush_decode_tree_bucket %p to %p\n", *p, end);
108 ceph_decode_8_safe(p, end, b->num_nodes, bad);
112 ceph_decode_need(p, end, b->num_nodes * sizeof(u32), bad);
120 static int crush_decode_straw_bucket(void **p, void *end,
124 dout("crush_decode_straw_bucket %p to %p\n", *p, end);
131 ceph_decode_need(p, end, 2 * b->h.size * sizeof(u32), bad);
141 static int crush_decode_straw2_bucket(void **p, void *end,
145 dout("crush_decode_straw2_bucket %p to %p\n", *p, end);
149 ceph_decode_need(p, end, b->h.size * sizeof(u32), bad);
184 static int decode_crush_names(void **p, void *end, struct rb_root *root)
188 ceph_decode_32_safe(p, end, n, e_inval);
194 ceph_decode_32_safe(p, end, id, e_inval);
195 ceph_decode_32_safe(p, end, name_len, e_inval);
196 ceph_decode_need(p, end, name_len, e_inval);
277 static u32 *decode_array_32_alloc(void **p, void *end, u32 *plen)
283 ceph_decode_32_safe(p, end, len, e_inval);
293 ceph_decode_need(p, end, len * sizeof(u32), e_inval);
311 static int decode_choose_arg(void **p, void *end, struct crush_choose_arg *arg)
315 ceph_decode_32_safe(p, end, arg->weight_set_size, e_inval);
328 w->weights = decode_array_32_alloc(p, end, &w->size);
337 arg->ids = decode_array_32_alloc(p, end, &arg->ids_size);
350 static int decode_choose_args(void **p, void *end, struct crush_map *c)
356 ceph_decode_32_safe(p, end, num_choose_arg_maps, e_inval);
364 ceph_decode_64_safe(p, end, arg_map->choose_args_index,
374 ceph_decode_32_safe(p, end, num_buckets, e_inval);
379 ceph_decode_32_safe(p, end, bucket_index, e_inval);
384 ret = decode_choose_arg(p, end, arg);
431 static struct crush_map *crush_decode(void *pbyval, void *end)
440 dout("crush_decode %p to %p len %d\n", *p, end, (int)(end - *p));
456 ceph_decode_need(p, end, 4*sizeof(u32), bad);
480 ceph_decode_32_safe(p, end, alg, bad);
486 i, (int)(*p-start), *p, end);
512 ceph_decode_need(p, end, 4*sizeof(u32), bad);
521 b->size, (int)(*p-start), *p, end);
527 ceph_decode_need(p, end, b->size*sizeof(u32), bad);
533 err = crush_decode_uniform_bucket(p, end,
539 err = crush_decode_list_bucket(p, end,
545 err = crush_decode_tree_bucket(p, end,
551 err = crush_decode_straw_bucket(p, end,
557 err = crush_decode_straw2_bucket(p, end,
571 ceph_decode_32_safe(p, end, yes, bad);
574 i, (int)(*p-start), *p, end);
580 i, (int)(*p-start), *p, end);
583 ceph_decode_32_safe(p, end, yes, bad);
595 ceph_decode_copy_safe(p, end, &r->mask, 4, bad); /* 4 u8's */
596 ceph_decode_need(p, end, r->len*3*sizeof(u32), bad);
604 err = decode_crush_names(p, end, &c->type_names);
608 err = decode_crush_names(p, end, &c->names);
612 ceph_decode_skip_map(p, end, 32, string, bad); /* rule_name_map */
615 ceph_decode_need(p, end, 3*sizeof(u32), done);
626 ceph_decode_need(p, end, sizeof(u32), done);
631 ceph_decode_need(p, end, sizeof(u8), done);
637 ceph_decode_need(p, end, sizeof(u8) + sizeof(u32), done);
640 ceph_decode_need(p, end, sizeof(u8), done);
645 if (*p != end) {
647 ceph_decode_skip_map(p, end, 32, 32, bad);
649 ceph_decode_skip_map(p, end, 32, string, bad);
651 ceph_decode_skip_map_of_map(p, end, 32, 32, 32, bad);
654 if (*p != end) {
655 err = decode_choose_args(p, end, c);
788 static int decode_pool(void **p, void *end, struct ceph_pg_pool_info *pi)
794 ceph_decode_need(p, end, 2 + 4, bad);
806 ceph_decode_need(p, end, len, bad);
952 static int decode_pool_names(void **p, void *end, struct ceph_osdmap *map)
958 ceph_decode_32_safe(p, end, num, bad);
961 ceph_decode_64_safe(p, end, pool, bad);
962 ceph_decode_32_safe(p, end, len, bad);
964 ceph_decode_need(p, end, len, bad);
1290 static int get_osdmap_client_data_v(void **p, void *end,
1295 ceph_decode_8_safe(p, end, struct_v, e_inval);
1299 ceph_decode_8_safe(p, end, struct_compat, e_inval);
1308 ceph_decode_8_safe(p, end, struct_v, e_inval);
1309 ceph_decode_8_safe(p, end, struct_compat, e_inval);
1321 ceph_decode_16_safe(p, end, version, e_inval);
1339 static int __decode_pools(void **p, void *end, struct ceph_osdmap *map,
1344 ceph_decode_32_safe(p, end, n, e_inval);
1350 ceph_decode_64_safe(p, end, pool, e_inval);
1367 ret = decode_pool(p, end, pi);
1378 static int decode_pools(void **p, void *end, struct ceph_osdmap *map)
1380 return __decode_pools(p, end, map, false);
1383 static int decode_new_pools(void **p, void *end, struct ceph_osdmap *map)
1385 return __decode_pools(p, end, map, true);
1390 static int decode_pg_mapping(void **p, void *end, struct rb_root *mapping_root,
1397 ceph_decode_32_safe(p, end, n, e_inval);
1403 ret = ceph_decode_pgid(p, end, &pgid);
1415 pg = fn(p, end, incremental);
1432 static struct ceph_pg_mapping *__decode_pg_temp(void **p, void *end,
1438 ceph_decode_32_safe(p, end, len, e_inval);
1444 ceph_decode_need(p, end, len * sizeof(u32), e_inval);
1459 static int decode_pg_temp(void **p, void *end, struct ceph_osdmap *map)
1461 return decode_pg_mapping(p, end, &map->pg_temp, __decode_pg_temp,
1465 static int decode_new_pg_temp(void **p, void *end, struct ceph_osdmap *map)
1467 return decode_pg_mapping(p, end, &map->pg_temp, __decode_pg_temp,
1471 static struct ceph_pg_mapping *__decode_primary_temp(void **p, void *end,
1477 ceph_decode_32_safe(p, end, osd, e_inval);
1492 static int decode_primary_temp(void **p, void *end, struct ceph_osdmap *map)
1494 return decode_pg_mapping(p, end, &map->primary_temp,
1498 static int decode_new_primary_temp(void **p, void *end,
1501 return decode_pg_mapping(p, end, &map->primary_temp,
1538 static int decode_primary_affinity(void **p, void *end,
1543 ceph_decode_32_safe(p, end, len, e_inval);
1552 ceph_decode_need(p, end, map->max_osd*sizeof(u32), e_inval);
1568 static int decode_new_primary_affinity(void **p, void *end,
1573 ceph_decode_32_safe(p, end, n, e_inval);
1578 ceph_decode_32_safe(p, end, osd, e_inval);
1579 ceph_decode_32_safe(p, end, aff, e_inval);
1594 static struct ceph_pg_mapping *__decode_pg_upmap(void **p, void *end,
1597 return __decode_pg_temp(p, end, false);
1600 static int decode_pg_upmap(void **p, void *end, struct ceph_osdmap *map)
1602 return decode_pg_mapping(p, end, &map->pg_upmap, __decode_pg_upmap,
1606 static int decode_new_pg_upmap(void **p, void *end, struct ceph_osdmap *map)
1608 return decode_pg_mapping(p, end, &map->pg_upmap, __decode_pg_upmap,
1612 static int decode_old_pg_upmap(void **p, void *end, struct ceph_osdmap *map)
1614 return decode_pg_mapping(p, end, &map->pg_upmap, NULL, true);
1617 static struct ceph_pg_mapping *__decode_pg_upmap_items(void **p, void *end,
1623 ceph_decode_32_safe(p, end, len, e_inval);
1627 ceph_decode_need(p, end, 2 * len * sizeof(u32), e_inval);
1644 static int decode_pg_upmap_items(void **p, void *end, struct ceph_osdmap *map)
1646 return decode_pg_mapping(p, end, &map->pg_upmap_items,
1650 static int decode_new_pg_upmap_items(void **p, void *end,
1653 return decode_pg_mapping(p, end, &map->pg_upmap_items,
1657 static int decode_old_pg_upmap_items(void **p, void *end,
1660 return decode_pg_mapping(p, end, &map->pg_upmap_items, NULL, true);
1666 static int osdmap_decode(void **p, void *end, bool msgr2,
1676 dout("%s %p to %p len %d\n", __func__, *p, end, (int)(end - *p));
1678 err = get_osdmap_client_data_v(p, end, "full", &struct_v);
1683 ceph_decode_need(p, end, sizeof(map->fsid) + sizeof(u32) +
1691 err = decode_pools(p, end, map);
1696 err = decode_pool_names(p, end, map);
1700 ceph_decode_32_safe(p, end, map->pool_max, e_inval);
1702 ceph_decode_32_safe(p, end, map->flags, e_inval);
1705 ceph_decode_32_safe(p, end, max, e_inval);
1713 ceph_decode_need(p, end, 3*sizeof(u32) +
1741 err = ceph_decode_entity_addrvec(p, end, msgr2, addr);
1743 err = ceph_decode_entity_addr(p, end, addr);
1751 err = decode_pg_temp(p, end, map);
1757 err = decode_primary_temp(p, end, map);
1764 err = decode_primary_affinity(p, end, map);
1772 ceph_decode_32_safe(p, end, len, e_inval);
1773 err = osdmap_set_crush(map, crush_decode(*p, min(*p + len, end)));
1780 ceph_decode_skip_map_of_map(p, end, string, string, string,
1785 err = decode_pg_upmap(p, end, map);
1789 err = decode_pg_upmap_items(p, end, map);
1798 *p = end;
1807 err, epoch, (int)(*p - start), *p, start, end);
1810 start, end - start, true);
1817 struct ceph_osdmap *ceph_osdmap_decode(void **p, void *end, bool msgr2)
1826 ret = osdmap_decode(p, end, msgr2, map);
1843 static int decode_new_up_state_weight(void **p, void *end, u8 struct_v,
1854 ceph_decode_32_safe(p, end, len, e_inval);
1858 ceph_decode_skip_32(p, end, e_inval);
1860 ret = ceph_decode_entity_addrvec(p, end, msgr2, &addr);
1862 ret = ceph_decode_entity_addr(p, end, &addr);
1868 ceph_decode_32_safe(p, end, len, e_inval);
1870 ceph_decode_need(p, end, len, e_inval);
1874 ceph_decode_32_safe(p, end, len, e_inval);
1879 ceph_decode_need(p, end, 2*sizeof(u32), e_inval);
1942 ret = ceph_decode_entity_addrvec(p, end, msgr2, &addr);
1944 ret = ceph_decode_entity_addr(p, end, &addr);
1965 struct ceph_osdmap *osdmap_apply_incremental(void **p, void *end, bool msgr2,
1979 dout("%s %p to %p len %d\n", __func__, *p, end, (int)(end - *p));
1981 err = get_osdmap_client_data_v(p, end, "inc", &struct_v);
1986 ceph_decode_need(p, end, sizeof(fsid) + sizeof(u32) + sizeof(modified) +
1996 ceph_decode_32_safe(p, end, len, e_inval);
1999 len, *p, end);
2000 return ceph_osdmap_decode(p, min(*p+len, end), msgr2);
2004 ceph_decode_32_safe(p, end, len, e_inval);
2007 crush_decode(*p, min(*p + len, end)));
2020 ceph_decode_32_safe(p, end, max, e_inval);
2031 err = decode_new_pools(p, end, map);
2036 err = decode_pool_names(p, end, map);
2041 ceph_decode_32_safe(p, end, len, e_inval);
2045 ceph_decode_64_safe(p, end, pool, e_inval);
2052 err = decode_new_up_state_weight(p, end, struct_v, msgr2, map);
2057 err = decode_new_pg_temp(p, end, map);
2063 err = decode_new_primary_temp(p, end, map);
2070 err = decode_new_primary_affinity(p, end, map);
2077 ceph_decode_skip_map_of_map(p, end, string, string, string,
2080 ceph_decode_skip_set(p, end, string, e_inval);
2084 err = decode_new_pg_upmap(p, end, map);
2088 err = decode_old_pg_upmap(p, end, map);
2092 err = decode_new_pg_upmap_items(p, end, map);
2096 err = decode_old_pg_upmap_items(p, end, map);
2102 *p = end;
2111 err, epoch, (int)(*p - start), *p, start, end);
2114 start, end - start, true);