+#[derive(Copy, Clone, Debug, PartialEq)]
+pub enum RejectOpWith {
+ /// Isolated op is rejected with an abort of the machine.
+ Abort,
+
+ /// If not Abort, miri returns an error for an isolated op.
+ /// Following options determine if user should be warned about such error.
+ /// Do not print warning about rejected isolated op.
+ NoWarning,
+
+ /// Print a warning about rejected isolated op, with backtrace.
+ Warning,
+
+ /// Print a warning about rejected isolated op, without backtrace.
+ WarningWithoutBacktrace,
+}
+
+#[derive(Copy, Clone, Debug, PartialEq)]
+pub enum IsolatedOp {
+ /// Reject an op requiring communication with the host. By
+ /// default, miri rejects the op with an abort. If not, it returns
+ /// an error code, and prints a warning about it. Warning levels
+ /// are controlled by `RejectOpWith` enum.
+ Reject(RejectOpWith),
+
+ /// Execute op requiring communication with the host, i.e. disable isolation.
+ Allow,
+}
+