qpb_allocator.c 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. /*
  2. * qpb_allocator.c
  3. *
  4. * @copyright Copyright (C) 2016 Sproute Networks, Inc.
  5. *
  6. * @author Avneesh Sachdev <avneesh@sproute.com>
  7. *
  8. * This file is part of Quagga.
  9. *
  10. * Quagga is free software; you can redistribute it and/or modify it
  11. * under the terms of the GNU General Public License as published by the
  12. * Free Software Foundation; either version 2, or (at your option) any
  13. * later version.
  14. *
  15. * Quagga is distributed in the hope that it will be useful, but
  16. * WITHOUT ANY WARRANTY; without even the implied warranty of
  17. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  18. * General Public License for more details.
  19. *
  20. * You should have received a copy of the GNU General Public License
  21. * along with Quagga; see the file COPYING. If not, write to the Free
  22. * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  23. * 02111-1307, USA.
  24. */
  25. #include "linear_allocator.h"
  26. #include "qpb_allocator.h"
  27. /*
  28. * _qpb_alloc
  29. */
  30. static void *
  31. _qpb_alloc (void *allocator_data, size_t size)
  32. {
  33. return linear_allocator_alloc (allocator_data, size);
  34. }
  35. /*
  36. * _qpb_free
  37. */
  38. static void
  39. _qpb_free (void *allocator_data, void *ptr)
  40. {
  41. linear_allocator_free (allocator_data, ptr);
  42. }
  43. static ProtobufCAllocator allocator_template = {
  44. _qpb_alloc,
  45. _qpb_free,
  46. NULL,
  47. 8192,
  48. NULL
  49. };
  50. /*
  51. * qpb_allocator_init_linear
  52. *
  53. * Initialize qpb_allocator_t with the given linear allocator.
  54. */
  55. void
  56. qpb_allocator_init_linear (qpb_allocator_t *allocator,
  57. linear_allocator_t *linear_allocator)
  58. {
  59. *allocator = allocator_template;
  60. allocator->allocator_data = linear_allocator;
  61. }