• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* Copyright (c) 2013, The Linux Foundation. All rights reserved.
2  *
3  * Redistribution and use in source and binary forms, with or without
4  * modification, are permitted provided that the following conditions are
5  * met:
6  *     * Redistributions of source code must retain the above copyright
7  *       notice, this list of conditions and the following disclaimer.
8  *     * Redistributions in binary form must reproduce the above
9  *       copyright notice, this list of conditions and the following
10  *       disclaimer in the documentation and/or other materials provided
11  *       with the distribution.
12  *     * Neither the name of The Linux Foundation nor the names of its
13  *       contributors may be used to endorse or promote products derived
14  *       from this software without specific prior written permission.
15  *
16  * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
17  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
18  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
19  * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
20  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
23  * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
25  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
26  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  *
28  */
29 
30 #ifndef __MM_JPEG_IONBUF_H__
31 #define __MM_JPEG_IONBUF_H__
32 
33 
34 #include <stdio.h>
35 #include <string.h>
36 #include <linux/msm_ion.h>
37 #include <sys/mman.h>
38 #include <unistd.h>
39 #include <errno.h>
40 #include <fcntl.h>
41 #include "mm_jpeg_dbg.h"
42 
43 typedef struct  {
44   struct ion_fd_data ion_info_fd;
45   struct ion_allocation_data alloc;
46   int p_pmem_fd;
47   long size;
48   int ion_fd;
49   uint8_t *addr;
50 } buffer_t;
51 
52 /** buffer_allocate:
53  *
54  *  Arguments:
55  *     @p_buffer: ION buffer
56  *
57  *  Return:
58  *     buffer address
59  *
60  *  Description:
61  *      allocates ION buffer
62  *
63  **/
64 void* buffer_allocate(buffer_t *p_buffer, int cached);
65 
66 /** buffer_deallocate:
67  *
68  *  Arguments:
69  *     @p_buffer: ION buffer
70  *
71  *  Return:
72  *     error val
73  *
74  *  Description:
75  *      deallocates ION buffer
76  *
77  **/
78 int buffer_deallocate(buffer_t *p_buffer);
79 
80 /** buffer_invalidate:
81  *
82  *  Arguments:
83  *     @p_buffer: ION buffer
84  *
85  *  Return:
86  *     error val
87  *
88  *  Description:
89  *      Invalidates the cached buffer
90  *
91  **/
92 int buffer_invalidate(buffer_t *p_buffer);
93 
94 #endif
95 
96