1. 09 Mar, 2017 1 commit
  2. 08 Mar, 2017 1 commit
  3. 13 Oct, 2016 4 commits
    • Josh Kunz's avatar
      Cleanup logging output slightly · b9e9b6d7
      Josh Kunz authored
      b9e9b6d7
    • Josh Kunz's avatar
      Fix cap_revoke to work on depth > 2 CDTs · 47d7e879
      Josh Kunz authored
      The old algorithm would ignore 2nd-level children of the revoked node
      because they were inserted "before" their parent that was getting
      removed from the list.
      
      The new algorithm re-starts the revoke from the last "checkpoint" (node
      that is guaranteed to be in the output tree) so that we can detect the
      children of deleted nodes.
      47d7e879
    • Josh Kunz's avatar
      Fix __try_derive, wasn't actually deriving · 484e1ae7
      Josh Kunz authored
      Instead of the weird "two-part" move that I was doing, trying to
      splice both the old CDT root and its children into the new parent's
      "children" list. I realized that you can just move the old root into the
      children list, and everything will work out fine.
      484e1ae7
    • Josh Kunz's avatar
      Add debugging function to dump the CDT · 5cefc879
      Josh Kunz authored
      5cefc879
  4. 22 Sep, 2016 2 commits
    • David Johnson's avatar
      Fix nit in last commit. · cd48df13
      David Johnson authored
      cd48df13
    • David Johnson's avatar
      Add lame aarch64 userspace support. · 26f60603
      David Johnson authored
      We don't (can't) have runtime L1 cache size detection on aarch64 without
      help.  Of course, line size is always 64 bytes (and that can be found at
      runtime); but the total L1 dcache size is not discoverable unless the
      kernel (or something else at EL0) has flipped the ECT bit in the system
      control register.  This could well be why getconf LEVEL1_DCACHE_SIZE
      fails.  In any case, I can't see how it would work.
      
      So, abuse the fact that no aarch64 impl has L1 dcache < 32KB and be happy.
      26f60603
  5. 20 Sep, 2016 1 commit
  6. 03 Sep, 2016 1 commit
  7. 31 May, 2016 1 commit
  8. 09 May, 2016 1 commit
  9. 08 May, 2016 2 commits
  10. 04 May, 2016 1 commit
  11. 20 Apr, 2016 2 commits
  12. 18 Apr, 2016 1 commit
  13. 11 Apr, 2016 2 commits
  14. 07 Apr, 2016 1 commit
  15. 15 Mar, 2016 4 commits
    • Josh Kunz's avatar
      More logic errors/typos · 3e09a664
      Josh Kunz authored
      * Moves where cnode->cptr is defined closer to where a cnode is first
        created. This way, cnodes not created through `cap_insert` still get
        cptrs.
      * When granting, we definitely don't want copy the src cspace to the dst
        cspace. Kind-of defeats the purpose
      3e09a664
    • Josh Kunz's avatar
      Add delete callback invocation · c626cc01
      Josh Kunz authored
      Also adds some default returns to address compiler warnings.
      c626cc01
    • Josh Kunz's avatar
      Actually call grant callback + callback docs · 98c05147
      Josh Kunz authored
      Currently I'm assuming that we want the grant callbacks to actually see
      the granted cnode. Therefore, we need to roll-back if the grant callback
      aborts the grant operation.
      
      The additional comments about the libcap callbacks just explain their
      semantics in greater detail.
      98c05147
    • Josh Kunz's avatar
      Fix logic bug in CDT locking · 909fc18e
      Josh Kunz authored
      909fc18e
  16. 01 Mar, 2016 1 commit
    • Charlie Jacobsen's avatar
      Bug in kernel platform trylock definition. · 4b5f7849
      Charlie Jacobsen authored
      Unlike other kernel functions, mutex_trylock returns 1 on sucess
      and 0 on error. The double negations were inverting the interpretation
      of the result. (It still worked because on the first attempt, we
      interpreted as a failure and tried again; on the second attempt, it
      was really a failure to take the lock but we interpreted as a
      success.)
      4b5f7849
  17. 27 Jan, 2016 2 commits
    • Josh Kunz's avatar
      Fix tester callbacks · 1290d48e
      Josh Kunz authored
      1290d48e
    • Josh Kunz's avatar
      Re-work the old ops to use the new CDT interface · fe68b750
      Josh Kunz authored
      This commit does three main things:
        1. Full CDT reference counting. When CDT locks are acquired, all
           intermediate root's reference counts are update safely.
        2. Re-factor's the operations to use two generic locking routines with
           special handlers (binop, and unop). This removes a lot of code duplication
           which made adding the locking code much easier, and should help
           prevent bugs.
        3. Removes the `delete` callback, now `delete` will be called whenever
           a cnode is created. It's the object's decision if this requires a
           memory free or not. Also adds three new callbacks:
             * `grant(src, dst)`: called when a grant from src -> dst happens.
                Only the handler for `src` is called.
             * `derive_src(src, dst)`: called on `src` when dst is derived from src.
             * `derive_dst(src, dst)`: called on `dst` when dst is derived from src.
          Objects are now responsible for doing some sort of reference
          counting in the grant and delete callbacks to prevent leaks. The
          grant and derive callbacks will also be the main hooks for capnet.
      fe68b750
  18. 13 Jan, 2016 4 commits
  19. 19 Jan, 2016 1 commit
    • Charlie Jacobsen's avatar
      Add kernel build fixes. · d6dc6cb7
      Charlie Jacobsen authored
      I got rid of the KERNEL_HEADERS_INSTALL thing. Kind of silly. The
      user is just expected to set their prefix right. We still have to
      do a hook in order to install the kernel-specific stuff. libcap.a
      and libcap.ko (kernel binaries) go in prefix/lib.
      d6dc6cb7
  20. 17 Jan, 2016 7 commits