ipa_mem_descriptor.h 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. /*
  2. * Copyright (c) 2018-2020 The Linux Foundation. All rights reserved.
  3. *
  4. * Redistribution and use in source and binary forms, with or without
  5. * modification, are permitted provided that the following conditions are
  6. * met:
  7. * * Redistributions of source code must retain the above copyright
  8. * notice, this list of conditions and the following disclaimer.
  9. * * Redistributions in binary form must reproduce the above
  10. * copyright notice, this list of conditions and the following
  11. * disclaimer in the documentation and/or other materials provided
  12. * with the distribution.
  13. * * Neither the name of The Linux Foundation nor the names of its
  14. * contributors may be used to endorse or promote products derived
  15. * from this software without specific prior written permission.
  16. *
  17. * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
  18. * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  19. * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
  20. * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
  21. * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  22. * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  23. * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
  24. * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
  25. * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
  26. * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
  27. * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  28. */
  29. #ifndef IPA_MEM_DESCRIPTOR_H
  30. #define IPA_MEM_DESCRIPTOR_H
  31. #include <stdint.h>
  32. #include <stdbool.h>
  33. #include <linux/msm_ipa.h>
  34. typedef struct
  35. {
  36. int orig_rqst_size;
  37. int mmap_size;
  38. void* base_addr;
  39. void* mmap_addr;
  40. uint32_t addr_offset;
  41. unsigned long allocate_ioctl_num;
  42. unsigned long delete_ioctl_num;
  43. char name[IPA_RESOURCE_NAME_MAX];
  44. uint8_t table_index;
  45. uint8_t valid;
  46. bool consider_using_sram;
  47. bool sram_available;
  48. bool sram_to_be_used;
  49. struct ipa_nat_in_sram_info nat_sram_info;
  50. } ipa_mem_descriptor;
  51. void ipa_mem_descriptor_init(
  52. ipa_mem_descriptor* desc,
  53. const char* device_name,
  54. int size,
  55. uint8_t table_index,
  56. unsigned long allocate_ioctl_num,
  57. unsigned long delete_ioctl_num,
  58. bool consider_using_sram );
  59. int ipa_mem_descriptor_allocate_memory(
  60. ipa_mem_descriptor* desc,
  61. int ipa_fd);
  62. int ipa_mem_descriptor_delete(
  63. ipa_mem_descriptor* desc,
  64. int ipa_fd);
  65. #endif