1. 08 May, 2016 1 commit
  2. 04 May, 2016 1 commit
  3. 20 Apr, 2016 2 commits
  4. 18 Apr, 2016 1 commit
  5. 11 Apr, 2016 2 commits
  6. 07 Apr, 2016 1 commit
  7. 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
  8. 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
  9. 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
  10. 13 Jan, 2016 4 commits
  11. 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
  12. 17 Jan, 2016 7 commits
  13. 16 Jan, 2016 5 commits
    • Charlie Jacobsen's avatar
      private-types: Updates headers and build for private type systems. · b5dc70da
      Charlie Jacobsen authored
      This will not build yet (cap_type_system_t not defined yet).
      
      In LCDs (kernel land), there will be multiple threads sharing
      this library, but they shouldn't share the same set of types. So,
      we need to allow building libcap to preclude this sharing (using
      a global type system).
      
      A global type system is allowed by default, and the same interface
      will still be there if global types are enabled. There are a few
      new functions introduced with this new feature:
      
            cap_init_cspace_with_type_system
            cap_cspace_get_type_system
            cap_register_private_type
      
      These functions will now always be part of the interface. The old
      functions will be available if global types are allowed:
      
            cap_init_cspace - init cspace and attach global type system to it
            cap_register_type - register a global type
      
      I used some autoconf magic to conditionally include these old
      functions in the libcap.h interface.
      
      Implementation not in place yet.
      b5dc70da
    • Charlie Jacobsen's avatar
      Updates ci jenkins config to build user test apps. · d97e0ffd
      Charlie Jacobsen authored
      Tests are not built by default now.
      d97e0ffd
    • Charlie Jacobsen's avatar
      Updates cptr cache defs and build so that cspace config can truly vary. · 40077300
      Charlie Jacobsen authored
      Before, I just had some CPP checks that would stop the build
      if the cspace depth wasn't 4, etc. So it required some manual
      changes. Now it should be fully automated.
      
      There are three awk scripts that generate some C code / do some
      calculations, and the results are plugged into some headers (that
      are now templates and generated by configure). I did it this way
      because the CPP doesn't seem powerful enough to generate variable
      length definitions like this (without some serious CPP hacking).
      Easier to use awk and then AC_SUBST the results in.
      
      If we want to make the code even faster, we could precompute some
      other stuff like this as well.
      
      I tested the user build, and ran multi_thrd_cap with a cspace
      depth of 8, and cnode table size of 8. Looked ok.
      40077300
    • Charlie Jacobsen's avatar
      Adds symbol exports for kernel land. · 8e2fb16b
      Charlie Jacobsen authored
      When we install libcap as a kernel module, in order for other
      kernel code (modules) to link with it, we need to mark public
      functions with EXPORT_SYMBOL.
      8e2fb16b
    • Charlie Jacobsen's avatar
      Adds contributors file, updates install notes, tweaks kernel install. · 6f8ce609
      Charlie Jacobsen authored
      Adds KERNEL_HEADERS_INSTALL param so you can install the headers
      in a place of your choosing. (Otherwise, they're strewn across the
      source and build dirs - nice to coalesce into one spot.)
      6f8ce609
  14. 15 Jan, 2016 8 commits