Commit Graph
46 Commits
Author SHA1 Message Date
Mike Auty 13b1126b90 Guard against no progress_callback in intel layer. 2016-12-08 16:03:22 +00:00
Mike Auty 183ff67699 Attach the kernel virtual offset to intel spaces. 2016-12-07 16:00:31 +00:00
Mike Auty 20d0e83e1d Ensure we don't ever round down when log-ing. 2016-12-07 00:05:47 +00:00
Mike Auty 734b9a68b8 Ensure we use math.log correctly.
This is unlikely to ever happen (since we use python3)
but still just as well to implement in case something else
similar comes up.

https://www.willmcgugan.com/blog/tech/post/finding-the-first-bit-set-with-python/
2016-12-06 23:40:21 +00:00
Mike Auty a0f7c81128 Reveal the register size in intel spaces. 2016-12-04 02:14:54 +00:00
Mike Auty d2fcc1d4b0 Add in optimization technique to reduce the number of pages that are scanned more than once. 2016-11-19 23:34:08 +00:00
Mike Auty c9abd290ec Remove an unnecessary test from the intel scan loop. 2016-11-19 18:05:41 +00:00
Mike Auty f707c0c4e9 Add in first shot at an 'efficient' virtual memory scanner. Uses page misses to calculate skipping distances. 2016-11-18 17:14:48 +00:00
Mike Auty 096e2f4610 Make the paged exceptions more useful at knowing how big an area is unavailable. 2016-11-18 11:40:48 +00:00
Mike Auty 3dc161f9b4 Rework Translation Layers to tie more closely to configurations
This change is quite signficant, and requires that TranslationLayers
get all additional parameters that they need through their requirements.

These are now automatically enumerated and populated on object
construction based on the requirements, so should not require lots of
repetitive filling out of fields.

It does come with the downside that TranslationLayers can only be
contructed with a context (and appropiate config), but TLs in particular
always require a context (to contain the base layer) and blank configs
can be constructed relatively easily (convenience functions can be added
if necessary).

This allows configuration trees to be built up, and their configs
spliced into an existing config (as if it were being loaded from a
file).

Not all ConstructableRequirements use this method, since SymbolTables
(for example) do not have access to the context or config_path in order
to get to any parameters stored in the context's config.  They therefore
are still passed their requirement values as __init__ parameters
instead.
2016-08-22 02:20:10 +01:00
Mike Auty d3e63fbc1a Rename update_configuration to build_configuration and return a standalone config. 2016-08-22 02:18:23 +01:00
Mike Auty ca61cf10b9 Refactor the context back into the ConfigurableInterface.
This also adds support for manually constructed configurables to
populate the config tree in the current context.

I'm still toying around with this though, I need to figure out
what to do with optional values and think the whole thing through
to make sure it's worthwhile.
2016-08-14 21:28:43 +01:00
Mike Auty e02feed16e Python 3 has a sane super() implementation (no arguments), so convert to using that. 2016-08-14 00:55:02 +01:00
Mike Auty d3a226d7a8 Remove constraints as a thing, they'll need to come back, but in a different form. 2016-07-30 01:52:44 +01:00
Mike Auty b63f07f493 Rework the imports to make the intel layers easier to read. 2016-07-29 02:57:10 +01:00
Mike Auty bb2dd859d5 Refactor the get_schema call to make more sense. 2016-07-29 02:56:20 +01:00
Mike Auty be54ea0dda Fix minor docstring typo. 2016-07-02 16:24:17 +01:00
Mike Auty c626bebb59 Convert mapping to a generator rather than a list. It must still return in sorted order. 2016-07-02 15:48:09 +01:00
Mike Auty fc34850345 Implement mapping with ignore_errors to get a (sorted) list of valid chunks in a layer. 2016-07-02 15:39:36 +01:00
Mike Auty 5290baf73d Make InvalidAddress exceptions more useful. 2016-07-02 13:31:36 +01:00
Mike Auty 633225edb2 Minor reformatting by pycharm for line length. 2016-05-26 09:14:37 +01:00
Mike Auty 472132e574 Clarify and verify that the memory_layer parameter is the name of the memory layer, not the layer itself. 2016-05-26 09:14:09 +01:00
Mike Auty 7a62e74996 Refactor the translation method out of the TranslationLayer, since it's not always applicable/useful. Contemplate a rename of the TranslationLayer now it doesn't actually translate. 5;) 2016-04-10 11:54:32 +01:00
Mike Auty 03cb131260 Add a priority ordering for testing layers (high priority trumps lower priority). 2016-01-21 00:06:39 +01:00
Mike Auty 00660f2a2b Refactor requirements to their own file. 2016-01-16 21:04:41 +00:00
Mike Auty b36d84ab0d Move metadata to providers variable, and genericize the rudimentary resolver. 2016-01-15 01:50:02 +00:00
Mike Auty 5697428770 Move accessing the configuration to an attribute of the configurable itself. 2016-01-13 00:41:17 +00:00
Mike Auty d2730fc95f Ensure the swap_layer is optional for intel spaces. 2016-01-13 00:11:50 +00:00
Mike Auty 89fa79503c Fix typo in intel space, and ensure inheritted classes accept the same arguments. 2016-01-11 00:02:53 +00:00
Mike Auty bef0689982 Add in constraints for dependency solving. 2016-01-04 01:17:23 +00:00
Mike Auty ff1e326a9c Rip out layer factories, and replace them with a single dependency resolver. 2015-12-30 21:58:41 +00:00
Mike Auty 595e2faeb4 Start including configuration into the data layers. 2015-12-29 22:22:31 +00:00
Mike Auty 119accb10c Add a length parameter to is_valid to check whether whole blocks are valid or not. 2015-01-05 18:40:33 +00:00
Mike Auty 44a375e720 Match the abstract property of the interface. 2015-01-04 21:21:34 +00:00
Mike Auty 62e46c194d Eliminate the *args, **kwargs from the intel translation layer code. 2015-01-04 04:59:14 +00:00
Mike Auty 21109c8eca Revert "Remove the need for **magic from the intel translation layer."
This reverts commit c8dee9f827.
2015-01-04 04:57:30 +00:00
Mike Auty c8dee9f827 Remove the need for **magic from the intel translation layer. 2015-01-04 04:56:02 +00:00
Mike Auty 0046ffc0d7 Fix critical typo in intel translation layer. 2015-01-04 04:55:39 +00:00
Mike Auty 811858aba8 Fix metaclass usage in python 3, and fill in some missing requirements. 2014-12-31 04:25:11 +00:00
Mike Auty 595ec89db1 Fix up some fairly critical core typos. 2014-12-30 03:50:22 +00:00
Mike Auty a97bd19988 Reformat and optimize code, including trailing whitespace and end of file newline. 2014-06-10 15:40:50 +01:00
Mike Auty 89e7e6e7ff Tidy up several areas using PyCharm corrections. 2014-03-30 00:46:31 +00:00
Mike Auty cea4969b49 Add in first attempt at intel mapping code. 2013-05-20 00:10:02 +01:00
Mike Auty 562ed6d506 Remove paging files (since they're OS specific) and add in a windows page validity test. 2013-05-19 13:41:28 +01:00
Mike Auty dff1c167b2 Fix up Intel support with test cases for 32, PAE and 32e modes. 2013-05-19 13:24:19 +01:00
Mike Auty 05d2789b5b Add in initial version of intel space. 2013-05-18 15:29:59 +01:00