1afd912394690cbf7d40b021c62d80ff0f3d40806Rebecca Schultz Zavin/*
2afd912394690cbf7d40b021c62d80ff0f3d40806Rebecca Schultz Zavin *  ion.c
3afd912394690cbf7d40b021c62d80ff0f3d40806Rebecca Schultz Zavin *
4afd912394690cbf7d40b021c62d80ff0f3d40806Rebecca Schultz Zavin * Memory Allocator functions for ion
5afd912394690cbf7d40b021c62d80ff0f3d40806Rebecca Schultz Zavin *
6afd912394690cbf7d40b021c62d80ff0f3d40806Rebecca Schultz Zavin *   Copyright 2011 Google, Inc
7afd912394690cbf7d40b021c62d80ff0f3d40806Rebecca Schultz Zavin *
8afd912394690cbf7d40b021c62d80ff0f3d40806Rebecca Schultz Zavin *  Licensed under the Apache License, Version 2.0 (the "License");
9afd912394690cbf7d40b021c62d80ff0f3d40806Rebecca Schultz Zavin *  you may not use this file except in compliance with the License.
10afd912394690cbf7d40b021c62d80ff0f3d40806Rebecca Schultz Zavin *  You may obtain a copy of the License at
11afd912394690cbf7d40b021c62d80ff0f3d40806Rebecca Schultz Zavin *
12afd912394690cbf7d40b021c62d80ff0f3d40806Rebecca Schultz Zavin *      http://www.apache.org/licenses/LICENSE-2.0
13afd912394690cbf7d40b021c62d80ff0f3d40806Rebecca Schultz Zavin *
14afd912394690cbf7d40b021c62d80ff0f3d40806Rebecca Schultz Zavin *  Unless required by applicable law or agreed to in writing, software
15afd912394690cbf7d40b021c62d80ff0f3d40806Rebecca Schultz Zavin *  distributed under the License is distributed on an "AS IS" BASIS,
16afd912394690cbf7d40b021c62d80ff0f3d40806Rebecca Schultz Zavin *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17afd912394690cbf7d40b021c62d80ff0f3d40806Rebecca Schultz Zavin *  See the License for the specific language governing permissions and
18afd912394690cbf7d40b021c62d80ff0f3d40806Rebecca Schultz Zavin *  limitations under the License.
19afd912394690cbf7d40b021c62d80ff0f3d40806Rebecca Schultz Zavin */
20afd912394690cbf7d40b021c62d80ff0f3d40806Rebecca Schultz Zavin
21830e19731dbfd5d8a2dd061f188f2ddc30443360Dima Zavin#ifndef __SYS_CORE_ION_H
22830e19731dbfd5d8a2dd061f188f2ddc30443360Dima Zavin#define __SYS_CORE_ION_H
23830e19731dbfd5d8a2dd061f188f2ddc30443360Dima Zavin
24afd912394690cbf7d40b021c62d80ff0f3d40806Rebecca Schultz Zavin#include <linux/ion.h>
25afd912394690cbf7d40b021c62d80ff0f3d40806Rebecca Schultz Zavin
26830e19731dbfd5d8a2dd061f188f2ddc30443360Dima Zavin__BEGIN_DECLS
27830e19731dbfd5d8a2dd061f188f2ddc30443360Dima Zavin
28afd912394690cbf7d40b021c62d80ff0f3d40806Rebecca Schultz Zavinint ion_open();
29afd912394690cbf7d40b021c62d80ff0f3d40806Rebecca Schultz Zavinint ion_close(int fd);
30a50fd5568ea72ea1ad662207ccea512735803174Rebecca Schultz Zavinint ion_alloc(int fd, size_t len, size_t align, unsigned int heap_mask,
31a50fd5568ea72ea1ad662207ccea512735803174Rebecca Schultz Zavin	      unsigned int flags, struct ion_handle **handle);
32a50fd5568ea72ea1ad662207ccea512735803174Rebecca Schultz Zavinint ion_alloc_fd(int fd, size_t len, size_t align, unsigned int heap_mask,
33a50fd5568ea72ea1ad662207ccea512735803174Rebecca Schultz Zavin		 unsigned int flags, int *handle_fd);
343cfcc300058070f0873763abfa604e07ec536da3Rebecca Schultz Zavinint ion_sync_fd(int fd, int handle_fd);
35afd912394690cbf7d40b021c62d80ff0f3d40806Rebecca Schultz Zavinint ion_free(int fd, struct ion_handle *handle);
36afd912394690cbf7d40b021c62d80ff0f3d40806Rebecca Schultz Zavinint ion_map(int fd, struct ion_handle *handle, size_t length, int prot,
37afd912394690cbf7d40b021c62d80ff0f3d40806Rebecca Schultz Zavin            int flags, off_t offset, unsigned char **ptr, int *map_fd);
38afd912394690cbf7d40b021c62d80ff0f3d40806Rebecca Schultz Zavinint ion_share(int fd, struct ion_handle *handle, int *share_fd);
39afd912394690cbf7d40b021c62d80ff0f3d40806Rebecca Schultz Zavinint ion_import(int fd, int share_fd, struct ion_handle **handle);
40afd912394690cbf7d40b021c62d80ff0f3d40806Rebecca Schultz Zavin
41830e19731dbfd5d8a2dd061f188f2ddc30443360Dima Zavin__END_DECLS
42830e19731dbfd5d8a2dd061f188f2ddc30443360Dima Zavin
43830e19731dbfd5d8a2dd061f188f2ddc30443360Dima Zavin#endif /* __SYS_CORE_ION_H */
44