128 return Flag::VIOLATES_CONSTRAINT; |
128 return Flag::VIOLATES_CONSTRAINT; |
129 } else { |
129 } else { |
130 return Flag::SUCCESS; |
130 return Flag::SUCCESS; |
131 } |
131 } |
132 } |
132 } |
133 |
|
134 static inline Flag::Error sharedConstraintFunc(const char *name, size_t value, size_t taken, bool verbose) { |
|
135 size_t available = (MAX_SHARED_DELTA-(taken+SHARED_PAGE)); |
|
136 if (value > available) { |
|
137 CommandLineError::print(verbose, |
|
138 "%s (" SIZE_FORMAT ") must be " |
|
139 "smaller than or equal to (" SIZE_FORMAT ")\n", |
|
140 name, value, available); |
|
141 return Flag::VIOLATES_CONSTRAINT; |
|
142 } else { |
|
143 return Flag::SUCCESS; |
|
144 } |
|
145 } |
|
146 |
|
147 Flag::Error SharedReadWriteSizeConstraintFunc(size_t value, bool verbose) { |
|
148 size_t taken = (SharedReadOnlySize+SharedMiscDataSize+SharedMiscCodeSize); |
|
149 return sharedConstraintFunc("SharedReadWriteSize", value, taken, verbose); |
|
150 } |
|
151 |
|
152 Flag::Error SharedReadOnlySizeConstraintFunc(size_t value, bool verbose) { |
|
153 size_t taken = (SharedReadWriteSize+SharedMiscDataSize+SharedMiscCodeSize); |
|
154 return sharedConstraintFunc("SharedReadOnlySize", value, taken, verbose); |
|
155 } |
|
156 |
|
157 Flag::Error SharedMiscDataSizeConstraintFunc(size_t value, bool verbose) { |
|
158 size_t taken = (SharedReadWriteSize+SharedReadOnlySize+SharedMiscCodeSize); |
|
159 return sharedConstraintFunc("SharedMiscDataSize", value, taken, verbose); |
|
160 } |
|
161 |
|
162 Flag::Error SharedMiscCodeSizeConstraintFunc(size_t value, bool verbose) { |
|
163 size_t taken = (SharedReadWriteSize+SharedReadOnlySize+SharedMiscDataSize); |
|
164 return sharedConstraintFunc("SharedMiscCodeSize", value, taken, verbose); |
|
165 } |
|