]> git.kernelconcepts.de Git - karo-tx-linux.git/blob - drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_vg.h
gpu: vivante: Update driver from Freescale 3.10.53-1.1-ga BSP
[karo-tx-linux.git] / drivers / mxc / gpu-viv / hal / kernel / gc_hal_kernel_vg.h
1 /****************************************************************************
2 *
3 *    Copyright (C) 2005 - 2014 by Vivante Corp.
4 *
5 *    This program is free software; you can redistribute it and/or modify
6 *    it under the terms of the GNU General Public License as published by
7 *    the Free Software Foundation; either version 2 of the license, or
8 *    (at your option) any later version.
9 *
10 *    This program is distributed in the hope that it will be useful,
11 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
12 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 *    GNU General Public License for more details.
14 *
15 *    You should have received a copy of the GNU General Public License
16 *    along with this program; if not write to the Free Software
17 *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18 *
19 *****************************************************************************/
20
21
22 #ifndef __gc_hal_kernel_vg_h_
23 #define __gc_hal_kernel_vg_h_
24
25 #include "gc_hal.h"
26 #include "gc_hal_driver.h"
27 #include "gc_hal_kernel_hardware.h"
28
29 /******************************************************************************\
30 ********************************** Structures **********************************
31 \******************************************************************************/
32
33 /* gckKERNEL object. */
34 struct _gckVGKERNEL
35 {
36     /* Object. */
37     gcsOBJECT                   object;
38
39     /* Pointer to gckOS object. */
40     gckOS                       os;
41
42     /* Pointer to gckHARDWARE object. */
43     gckVGHARDWARE                   hardware;
44
45     /* Pointer to gckINTERRUPT object. */
46     gckVGINTERRUPT              interrupt;
47
48     /* Pointer to gckCOMMAND object. */
49     gckVGCOMMAND                    command;
50
51     /* Pointer to context. */
52     gctPOINTER                  context;
53
54     /* Pointer to gckMMU object. */
55     gckVGMMU                        mmu;
56
57     gckKERNEL                   kernel;
58 };
59
60 /* gckMMU object. */
61 struct _gckVGMMU
62 {
63     /* The object. */
64     gcsOBJECT                   object;
65
66     /* Pointer to gckOS object. */
67     gckOS                       os;
68
69     /* Pointer to gckHARDWARE object. */
70     gckVGHARDWARE                   hardware;
71
72     /* The page table mutex. */
73     gctPOINTER                  mutex;
74
75     /* Page table information. */
76     gctSIZE_T                   pageTableSize;
77     gctPHYS_ADDR                pageTablePhysical;
78     gctPOINTER                  pageTableLogical;
79
80     /* Allocation index. */
81     gctUINT32                   entryCount;
82     gctUINT32                   entry;
83 };
84
85 #endif /* __gc_hal_kernel_h_ */