cvmx-helper-fpa.h 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /***********************license start***************
  2. * Author: Cavium Networks
  3. *
  4. * Contact: support@caviumnetworks.com
  5. * This file is part of the OCTEON SDK
  6. *
  7. * Copyright (c) 2003-2008 Cavium Networks
  8. *
  9. * This file is free software; you can redistribute it and/or modify
  10. * it under the terms of the GNU General Public License, Version 2, as
  11. * published by the Free Software Foundation.
  12. *
  13. * This file is distributed in the hope that it will be useful, but
  14. * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
  15. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
  16. * NONINFRINGEMENT. See the GNU General Public License for more
  17. * details.
  18. *
  19. * You should have received a copy of the GNU General Public License
  20. * along with this file; if not, write to the Free Software
  21. * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
  22. * or visit http://www.gnu.org/licenses/.
  23. *
  24. * This file may also be available under a different license from Cavium.
  25. * Contact Cavium Networks for more information
  26. ***********************license end**************************************/
  27. /**
  28. * @file
  29. *
  30. * Helper functions for FPA setup.
  31. *
  32. */
  33. #ifndef __CVMX_HELPER_H_FPA__
  34. #define __CVMX_HELPER_H_FPA__
  35. /**
  36. * Allocate memory and initialize the FPA pools using memory
  37. * from cvmx-bootmem. Sizes of each element in the pools is
  38. * controlled by the cvmx-config.h header file. Specifying
  39. * zero for any parameter will cause that FPA pool to not be
  40. * setup. This is useful if you aren't using some of the
  41. * hardware and want to save memory.
  42. *
  43. * @packet_buffers:
  44. * Number of packet buffers to allocate
  45. * @work_queue_entries:
  46. * Number of work queue entries
  47. * @pko_buffers:
  48. * PKO Command buffers. You should at minimum have two per
  49. * each PKO queue.
  50. * @tim_buffers:
  51. * TIM ring buffer command queues. At least two per timer bucket
  52. * is recommened.
  53. * @dfa_buffers:
  54. * DFA command buffer. A relatively small (32 for example)
  55. * number should work.
  56. * Returns Zero on success, non-zero if out of memory
  57. */
  58. extern int cvmx_helper_initialize_fpa(int packet_buffers,
  59. int work_queue_entries, int pko_buffers,
  60. int tim_buffers, int dfa_buffers);
  61. #endif /* __CVMX_HELPER_H__ */