OSDN Git Service

Merge branch 'master' of github.com:Artanejp/common_source_project-fm7
[csp-qt/common_source_project-fm7.git] / source / src / vm / libcpu_newdev / libcpu_i386 / vtlb.h
1 // license:BSD-3-Clause
2 // copyright-holders:Aaron Giles
3 /***************************************************************************
4
5     vtlb.h
6
7     Generic virtual TLB implementation.
8
9 ***************************************************************************/
10
11 #pragma once
12
13 #ifndef __LIB_I386_VTLB_H__
14 #define __LIB_I386_VTLB_H__
15
16 /***************************************************************************
17     CONSTANTS
18 ***************************************************************************/
19
20 #define VTLB_FLAGS_MASK             0xff
21
22 #define VTLB_READ_ALLOWED           0x01        /* (1 << TRANSLATE_READ) */
23 #define VTLB_WRITE_ALLOWED          0x02        /* (1 << TRANSLATE_WRITE) */
24 #define VTLB_FETCH_ALLOWED          0x04        /* (1 << TRANSLATE_FETCH) */
25 #define VTLB_FLAG_VALID             0x08
26 #define VTLB_USER_READ_ALLOWED      0x10        /* (1 << TRANSLATE_READ_USER) */
27 #define VTLB_USER_WRITE_ALLOWED     0x20        /* (1 << TRANSLATE_WRITE_USER) */
28 #define VTLB_USER_FETCH_ALLOWED     0x40        /* (1 << TRANSLATE_FETCH_USER) */
29 #define VTLB_FLAG_FIXED             0x80
30
31
32
33 /***************************************************************************
34     TYPE DEFINITIONS
35 ***************************************************************************/
36
37 /* represents an entry in the VTLB */
38 typedef UINT32 vtlb_entry;
39
40 /* opaque structure describing VTLB state */
41 struct vtlb_state;
42
43 #endif /* __VTLB_H__ */