View Javadoc

1   package com.tapina.robe.runtime;
2   
3   import com.tapina.robe.runtime.RawDataBlock;
4   
5   /***
6    * This class represents an operating system dynamic area definition.
7    * 
8    * @author gareth
9    */
10  public final class DynamicArea extends RawDataBlock {
11      /*** Constant denoting area privileges - area is read/write */
12      public static final int READ_WRITE = 0;
13      /*** Constant denoting area privileges - area is read only */
14      public static final int READ_ONLY = 1;
15      /*** Constant denoting area privileges - area is inaccessible in User mode */
16      public static final int INACCESSIBLE = 2;
17      /*** Constant denoting area privileges - area is mapped out */
18      public static final int MAPPED_OUT = 3;
19  
20      public static final int NOT_BUFFERABLE = 16;
21      public static final int NOT_CACHEABLE = 32;
22      public static final int DOUBLY_MAPPED = 64;
23      public static final int NOT_USER_RESIZABLE = 128;
24      public static final int REQUIRE_SPECIFIC_PAGES = 256;
25      public static final int SHRINKABLE = 512;
26      public static final int SPARSE = 1024;
27      public static final int BOUND = 2048;
28  
29      private static int areaNumberSeq = 256;
30  
31      private final int areaNumber;
32      private final int base;
33      private final int maximumSize;
34      private final int initialSize;
35      private final int handlerRoutine;
36      private final int handlerWorkspace;
37      private final String name;
38      private final int privileges;
39      private final int flags;
40  
41      public DynamicArea(int base, int maximumSize, int initialSize, int handlerRoutine,
42                         int handlerWorkspace, String name, int privileges, int flags) {
43          super(base, initialSize);
44          synchronized (DynamicArea.class) {
45              this.areaNumber = areaNumberSeq++;
46          }
47          this.base = base;
48          this.maximumSize = maximumSize;
49          this.initialSize = initialSize;
50          this.handlerRoutine = handlerRoutine;
51          this.handlerWorkspace = handlerWorkspace;
52          this.name = name;
53          this.privileges = privileges;
54          this.flags = flags;
55      }
56  
57      public final int getAreaNumber() {
58          return areaNumber;
59      }
60  
61      public final int getBase() {
62          return base;
63      }
64  
65      public final int getMaximumSize() {
66          return maximumSize;
67      }
68  
69      public final int getInitialSize() {
70          return initialSize;
71      }
72  
73      public final int getHandlerRoutine() {
74          return handlerRoutine;
75      }
76  
77      public final int getHandlerWorkspace() {
78          return handlerWorkspace;
79      }
80  
81      public final String getName() {
82          return name;
83      }
84  
85      public final int getPrivileges() {
86          return privileges;
87      }
88  
89      public final int getFlags() {
90          return flags;
91      }
92  }