Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(646)

Unified Diff: src/trusted/validator_arm/ncvalidate.cc

Issue 10134056: Refactor the process of choosing validators. (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client
Patch Set: more aesthetics Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/trusted/validator_arm/cpuid_arm.h ('k') | src/trusted/validator_ragel/unreviewed/decoder.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/trusted/validator_arm/ncvalidate.cc
diff --git a/src/trusted/validator_arm/ncvalidate.cc b/src/trusted/validator_arm/ncvalidate.cc
index 879b223662a50374362142a538f67439a4c5eec1..858da2186cee6971b382938edcb357538f203968 100644
--- a/src/trusted/validator_arm/ncvalidate.cc
+++ b/src/trusted/validator_arm/ncvalidate.cc
@@ -12,8 +12,8 @@
#include "native_client/src/include/nacl_string.h"
#include "native_client/src/include/portability.h"
#include "native_client/src/trusted/validator_arm/cpuid_arm.h"
-#include "native_client/src/trusted/validator_arm/validator.h"
#include "native_client/src/trusted/validator_arm/model.h"
+#include "native_client/src/trusted/validator_arm/validator.h"
#include "native_client/src/trusted/validator/ncvalidate.h"
using nacl_arm_val::SfiValidator;
@@ -48,6 +48,36 @@ class EarlyExitProblemSink : public nacl_arm_val::ProblemSink {
}
};
+static NaClValidationStatus ValidatorCopyNotImplemented(
+ uintptr_t guest_addr,
+ uint8_t *data_old,
+ uint8_t *data_new,
+ size_t size,
+ const NaClCPUFeatures *cpu_features,
+ NaClCopyInstructionFunc copy_func) {
+ UNREFERENCED_PARAMETER(guest_addr);
+ UNREFERENCED_PARAMETER(data_old);
+ UNREFERENCED_PARAMETER(data_new);
+ UNREFERENCED_PARAMETER(size);
+ UNREFERENCED_PARAMETER(cpu_features);
+ UNREFERENCED_PARAMETER(copy_func);
+ return NaClValidationFailedNotImplemented;
+}
+
+static NaClValidationStatus ValidatorCodeReplacementNotImplemented(
+ uintptr_t guest_addr,
+ uint8_t *data_old,
+ uint8_t *data_new,
+ size_t size,
+ const NaClCPUFeatures *cpu_features) {
+ UNREFERENCED_PARAMETER(guest_addr);
+ UNREFERENCED_PARAMETER(data_old);
+ UNREFERENCED_PARAMETER(data_new);
+ UNREFERENCED_PARAMETER(size);
+ UNREFERENCED_PARAMETER(cpu_features);
+ return NaClValidationFailedNotImplemented;
+}
+
EXTERN_C_BEGIN
int NCValidateSegment(uint8_t *mbase, uint32_t vbase, size_t size) {
@@ -68,13 +98,13 @@ int NCValidateSegment(uint8_t *mbase, uint32_t vbase, size_t size) {
return 0;
}
-NaClValidationStatus NACL_SUBARCH_NAME(ApplyValidator, arm, 32) (
+static NaClValidationStatus ApplyValidatorArm(
uintptr_t guest_addr,
uint8_t *data,
size_t size,
int stubout_mode,
int readonly_text,
- const NaClCPUFeaturesArm *cpu_features,
+ const NaClCPUFeatures *cpu_features,
struct NaClValidationCache *cache) {
UNREFERENCED_PARAMETER(cpu_features);
/* The ARM validator is currently unsafe w.r.t. caching. */
@@ -89,32 +119,14 @@ NaClValidationStatus NACL_SUBARCH_NAME(ApplyValidator, arm, 32) (
? NaClValidationSucceeded : NaClValidationFailed);
}
-NaClValidationStatus NACL_SUBARCH_NAME(ApplyValidatorCodeReplacement, arm, 32)
- (uintptr_t guest_addr,
- uint8_t *data_old,
- uint8_t *data_new,
- size_t size,
- const NaClCPUFeaturesArm *cpu_features) {
- UNREFERENCED_PARAMETER(guest_addr);
- UNREFERENCED_PARAMETER(data_old);
- UNREFERENCED_PARAMETER(data_new);
- UNREFERENCED_PARAMETER(size);
- UNREFERENCED_PARAMETER(cpu_features);
- return NaClValidationFailedNotImplemented;
-}
+static struct NaClValidatorInterface validator = {
+ ApplyValidatorArm,
+ ValidatorCopyNotImplemented,
+ ValidatorCodeReplacementNotImplemented,
+};
-NaClValidationStatus NACL_SUBARCH_NAME(ApplyValidatorCopy, arm, 32)
- (uintptr_t guest_addr,
- uint8_t *data_old,
- uint8_t *data_new,
- size_t size,
- const NaClCPUFeaturesArm *cpu_features) {
- UNREFERENCED_PARAMETER(guest_addr);
- UNREFERENCED_PARAMETER(data_old);
- UNREFERENCED_PARAMETER(data_new);
- UNREFERENCED_PARAMETER(size);
- UNREFERENCED_PARAMETER(cpu_features);
- return NaClValidationFailedNotImplemented;
+const struct NaClValidatorInterface *NaClValidatorCreateArm() {
+ return &validator;
}
EXTERN_C_END
« no previous file with comments | « src/trusted/validator_arm/cpuid_arm.h ('k') | src/trusted/validator_ragel/unreviewed/decoder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698