Skip to content
Snippets Groups Projects
  1. May 23, 2014
  2. May 22, 2014
  3. May 21, 2014
  4. May 20, 2014
    • Thomas Eichinger's avatar
      Merge pull request #1193 from LudwigOrtmann/issue-924 · 5808662d
      Thomas Eichinger authored
      core/hwtimer: disable interrupts in hwtimer_remove
      5808662d
    • Thomas Eichinger's avatar
      Merge pull request #977 from mehlis/doxygen-irq · 1e12d589
      Thomas Eichinger authored
      core: kernel: improved doxygen documentation
      1e12d589
    • Christian Mehlis's avatar
      core: kernel: improved doxygen documentation · 67428b58
      Christian Mehlis authored
      also added param[in] to irq.h and fix order of doxygen endguards
      67428b58
    • Christian Mehlis's avatar
      Merge pull request #1208 from Kijewski/issue-1199 · 0aa87a8e
      Christian Mehlis authored
      documentation: fix doxygen for `pthread_*.h`
      0aa87a8e
    • René Kijewski's avatar
      Merge pull request #1216 from LudwigOrtmann/issue-1215 · 06eb95d6
      René Kijewski authored
      native: set _native_pid correctly in daemon mode
      06eb95d6
    • Oleg Hahm's avatar
      Merge pull request #1213 from OlegHahm/ubuntu_msp430_errno_fix · 8aa78edb
      Oleg Hahm authored
      msp430: workaround: define errno values if not provided by MSP430 lib
      8aa78edb
    • Ludwig Knüpfer's avatar
      native: set _native_pid correctly in daemon mode · c9f68e79
      Ludwig Knüpfer authored
      This fixes a bug that leads to all unix sockets being created as
      `/tmp/riot.tty.0`.
      c9f68e79
    • René Kijewski's avatar
      Add TLSF (two level segregated fit) PKG · 88e8915d
      René Kijewski authored
      This is my second take on #669, because I was asked to separate it from #764.
      
      This change adds a malloc implementation as a PKG, which uses *TLSF* (two
      level segregated fit).
      
      The patch file removes the 64bit capatibilities, debug functions, and the
      option to have multiple "control blocks" (a control block holds multiple
      memory pools). It wraps `malloc()` and friends in `disableIRQ() … restoreIRQ()`.
      
      The implemention does not support 16bit platforms, yet, but probably only some
      constants would need fixing. I limited the maximum size of a memory pool to
      2**30 bytes = 1GB.
      
      This PKG is not meant to be used by applicitions directly, but by the boards.
      The board's initialition code needs to call
      `int tlsf_add_pool(void *mem, size_t bytes)` for every free memory region it
      has. If the board in using newlib, then this call needs to happen before the
      first call to `puts`, `printf`, and friends, because newlib allocates the
      control data IO streams (stdin, stdout, stderr) on the heap. Adding a small
      (e.g. 1kB) pool before proper board initialization would be a possible solution.
      
      Please read the additional information in the website of the implementator,
      http://tlsf.baisoku.org/:
      
      > TLSF (two level segregated fit) is a relatively new memory
      allocator designed for embedded systems. It boasts constant
      time O(1) malloc/free response time and a 4-byte block
      overhead. Though it typically is slightly slower than other
      allocators such as dlmalloc, it has no worst-case behavior.
      
      > The original implementation, which comes alongside the white
      paper, is distributed under the GNU GPL/LGPL. The code found
      here is an original implementation, released into the public
      domain, therefore is not subject to any licensing restrictions.
      
      > Features:
       -  O(1) cost for malloc, free, realloc, memalign
       -  Extremely low overhead per allocation (4 bytes)
       -  Low overhead per pool (~3kB)
       -  Low fragmentation
       -  Compiles to only a few kB of code and data
      
      > Caveats:
       -  Currently, assumes architecture can make 4-byte aligned accesses
       -  Not designed to be thread safe; the user must provide this
      
      > Known Issues:
      Due to the internal block structure size and the implementation
      details of tlsf_memalign, there is worst-case behavior when requesting
      small (<16 byte) blocks aligned to 8-byte boundaries. Overuse of memalign
      will generally increase fragmentation, but this particular case will leave
      lots of unusable "holes" in the heap. The solution would be to internally
      align all blocks to 8 bytes, but this will require significantl changes
      to the implementation. Contact me if you are interested.
      88e8915d
  5. May 19, 2014
  6. May 18, 2014
  7. May 16, 2014
Loading