1. 21 Sep, 2014 10 commits
  2. 09 Sep, 2014 11 commits
  3. 08 Sep, 2014 14 commits
    • Philippe Gerum's avatar
      cobalt/syscall: prepare for sysctl · eda18d7e
      Philippe Gerum authored
      eda18d7e
    • Philippe Gerum's avatar
      cobalt/heap: drop flush handler in xnheap_destroy() · b18f6578
      Philippe Gerum authored
      Zero users, no purpose.
      b18f6578
    • Philippe Gerum's avatar
      cobalt/heap: limit all sizes and offsets to 32bit values · 22321d48
      Philippe Gerum authored
      The allocator cannot handle more than 2Gb of storage area by design,
      and the uapi/ bits already assume that sizes and offsets produced by
      Cobalt heaps fit in a 32bit word, for 32/64 ABI neutrality.
      
      Therefore we may turn all relevant long types to u32 in the
      implementation, to clearly state the addressing limit of this
      allocator.
      22321d48
    • Philippe Gerum's avatar
      cobalt/posix/memory: do not duplicate base heap information · 7f212d9c
      Philippe Gerum authored
      Now that we have a single contiguous storage area with no embedded
      meta-data attached to the base heap, we may retrieve the size and base
      memory information directly from it.
      7f212d9c
    • Philippe Gerum's avatar
      cobalt/heap: drop error return from xnheap_free() · d2664050
      Philippe Gerum authored
      Since we only don't have application-level code using our heap-based
      allocator anymore, any invalid block pointer passed to xnheap_free()
      would mean that some core code is definitely broken.
      
      In response to such event, we now bluntly freak out and panic upon
      detection of a bad pointer if CONFIG_XENO_OPT_DEBUG_COBALT is
      enabled. Otherwise, xnheap_free() silently returns ignoring the
      request.
      
      As a consequence of this, xnheap_test_and_free() is dropped in the
      same move, since a block pointer should always be valid at this
      interface level, or the Cobalt kernel will pull the break if asked to.
      d2664050
    • Philippe Gerum's avatar
      cobalt/heap: drop support for heap extension · 641dd175
      Philippe Gerum authored
      In-kernel users only maintain fixed-size heaps, so there is no upside
      in making the latter extendable, but only useless overhead. This patch
      drops the support for the "extent" abstraction, assuming a single
      contiguous storage area for any given heap.
      
      In addition, the page map meta-data is moved away from the
      user-defined storage area, so that the client code may actually
      receive the full amount of memory it gave us originally (barring the
      external fragmentation).
      
      The page map is allocated internally instead via kmalloc(), which adds
      the secondary_mode_only() requirement for both xnheap_init() and
      xnheap_destroy(). All existing callers are fine with this already.
      641dd175
    • Philippe Gerum's avatar
      cobalt/heap: use fixed page size · 27178d47
      Philippe Gerum authored
      We don't need to support dynamically-defined page size anymore, as we
      may claim that all client code can use the same value optimally. We
      fix this value to the underlying VM page size.
      27178d47
    • Philippe Gerum's avatar
    • Philippe Gerum's avatar
      72534270
    • Philippe Gerum's avatar
    • Philippe Gerum's avatar
      3b1540ba
    • Philippe Gerum's avatar
      drivers/can: drop useless mention of __DATE__, __TIME__ in version stamp · 3df7fbdc
      Philippe Gerum authored
      This information does not bring any valuable information compared to a
      commit #, with respect to which code release is actually built. In
      addition, it also triggers a warning when -Wdate-time is enabled with
      gcc >= 4.9.
      3df7fbdc
    • Philippe Gerum's avatar
      4e3477d1
    • Philippe Gerum's avatar
      cobalt/kernel, lib/cobalt: introduce built-in drivers for user-mapped heaps · 79d53fb8
      Philippe Gerum authored
      We change the way application processes bind to the private and shared
      memory heaps used in fastsync support. Aside of an obscure and
      outdated implementation, using /dev/rtheap for this purpose led to a
      couple of nasty issues:
      
      - the requirement for abusing mmap()'s offset argument in the no-MMU
        case, so that different processes can map in distinct private heap
        areas.
      
      - as a consequence of the previous point, the exposure of kernel
        addresses to userland (passed as differenciating "area" tags in the
        mapping offset) creates an issue with mixed 32/64bit ABI models.
      
      To fix this, we introduce built-in, RTDM-based memory device drivers
      in the Cobalt kernel (aka "UMM" for user-mapped memory), which expose
      mmap() interfaces for binding to the proper private or shared
      heap. The drivers are called by lib/cobalt when initializing a new
      application process, to perform all the necessary mappings.
      
      In addition, a third built-in driver honors (read-only) requests to
      get status information about the system heap.
      79d53fb8
  4. 05 Sep, 2014 4 commits
  5. 03 Sep, 2014 1 commit