Permalink
Commits on Mar 10, 2015
  1. drv: tty: Make a start on implementing the TTY

    Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
    committed Mar 10, 2015
Commits on Mar 9, 2015
  1. driver: Add basic IOCTL functionality

    Rather than giving each device a separate file for IO control, we're now
    giving files their own IOCTL function, with which the file setup can be
    managed.
    
    Also, add in some definitions and implementation of IOCTL request
    values.
    
    Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
    committed Mar 8, 2015
Commits on Mar 6, 2015
  1. init: Reorder boot sequence to observe dependencies

    Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
    committed Mar 4, 2015
Commits on Mar 3, 2015
  1. Merge branch 'vfs' into serial

    Conflicts:
    	include/fs/vfs.h
    	src/lib/avl/tree.c
    	src/lib/stdio/printf.c
    committed Mar 3, 2015
  2. vfs: pipe: Make the pipes a whole lot more usable

    Pipes now support, caching, seeking and syncing. Use with care.
    
    Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
    committed Mar 3, 2015
Commits on Mar 2, 2015
  1. drv: serial: Enable uart interrupts

    Add the option for a void* argument structure in the interrupt call, as
    well as adding in the interrupt handlers to the UART code.
    
    A basic mock up of the file abstraction is in place and needs a buffer
    to fully come to life.
    
    There seems to be a bit of a stability issue at this moment in time, I
    don't know whether that is because of the timer interrupts, the UART
    interrupts or something unrelated. More research is needed.
    
    Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
    committed Mar 1, 2015
  2. fs: vfs: Rework streams to use pipes

    Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
    committed Mar 2, 2015
Commits on Feb 25, 2015
  1. Merge branch 'timer' into serial

    Conflicts:
    	dep.flags
    	src/andromeda/core.c
    	src/arch/x86/kernel/irq.c
    	src/drivers/drivers.build
    committed Feb 25, 2015
  2. stdlib: uninline debug and warning

    The functions were used so often that the benefit of inlining them was
    countered by the fact that they are then duplicated so much.
    
    Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
    committed Feb 25, 2015
  3. timer: dbg: Make the tests a little more generic

    Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
    committed Feb 25, 2015
Commits on Feb 16, 2015
  1. timer: Simplify timer finding and subscribing

    Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
    committed Feb 16, 2015
Commits on Feb 15, 2015
  1. arch: x86: pit: Add pit programming logic

    Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
    committed Feb 15, 2015
Commits on Feb 14, 2015
  1. IRQ: PIT: Hook this up to the global architecture

    Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
    committed Feb 14, 2015
Commits on Feb 13, 2015
  1. andromeda: timer: Rework the irq system for timer

    Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
    committed Feb 13, 2015
  2. lib: tree: Fix faulty remove condition

    The code for removing a node without a parent was not completely
    implemented.
    
    Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
    committed Feb 13, 2015
  3. x86: 8259 pic: Add spurious irq detect & handle

    Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
    committed Feb 12, 2015
Commits on Feb 11, 2015
  1. x86: cpu: Clean up eflags and clarify warnings

    Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
    committed Feb 10, 2015
Commits on Feb 10, 2015
  1. x86: interrupt: Forward registers and cleanup

    A total of 4 registers are forwarded to the interrupt handlers. This
    should allow the interrupt hanlers to process task specifics, such as
    taks switches or system calls.
    
    Also, the names of some functions have switched to remove some legacy
    naming.
    
    Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
    committed Feb 8, 2015
Commits on Feb 6, 2015
  1. arch: cpu: clean up some cpuid memoryleak mess

    Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
    committed Feb 6, 2015
  2. andromeda: x86: Clean some interrupt mess

    Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
    committed Feb 6, 2015
Commits on Jan 28, 2015
  1. driver: timer: Start by cleaning up timer mess

    Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
    committed Jan 23, 2015
Commits on Jan 22, 2015
  1. net: cleanup arch: Guarantee gcc, despite root cc

    net: Cleanup of a nested function
    
    arch: select gcc as the default compiler in case the root compiler is
    switched to, for example, clang. The x86 architecture seems to be using
    some gcc specific features.
    
    Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
    committed Jan 22, 2015
Commits on Nov 5, 2014
  1. Merge branch 'vm_alloc_bug' into testing

    Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
    
    Conflicts:
    	dep.flags
    	src/mm/slab/slab_alloc.c
    committed Nov 5, 2014
  2. mm: vm: Add loop detect and fix loop in vm_range

    Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
    committed Nov 5, 2014
Commits on Oct 13, 2014
  1. mm: vm: range_alloc: Hook up range_alloc

    Now that this system has been implemented, it is time to hook up the
    range descriptor allocator up to the range allocator itself.
    
    Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
    committed Oct 9, 2014
Commits on Oct 9, 2014
  1. build: Improve andromeda.build readability

    Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
    committed Oct 9, 2014
Commits on Oct 8, 2014
  1. mm: vm: range_alloc: Add alloc buffer

    In the old situation, allocation of range descriptors was a potential
    problem when the allocator ran out of memory because:
    
    1) The VM descriptor requires the object allocator for range desriptors
    2) When out of memory, the allocator requires a new VM range
    3) The allocator could provide a descriptor for the required range.
    
    In order to solve this, a buffer has now been created to stash some
    range descriptors.
    
    Each allocator is supposed to call the update function, in order to make
    sure the range descriptors are topped up once the descriptors in buffer
    dip below the maximum allowed.
    
    This should make it possible to always have a range descriptor
    available, up until the point where memory truly runs out.
    
    Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
    committed Oct 8, 2014
Commits on Oct 4, 2014
  1. build: Allow for extra build flags in Makefile

    Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
    committed Oct 4, 2014
  2. mm: slab: Fix faulty size failure bug

    In careful rereading of the code one potential bug became evident. The
    kfree macro calls upon kmem_free. The size of the object is determined
    by the sizeof operator embedded within this macro.
    
    Exactly herein lies the theoretical bug, as the given size might be
    smaller than the given object, and only larger object sizes are scanned
    by this function.
    
    To patch this issue, if the object is not found within the constraints
    of the object size parameter, the search for the appropriate cache is
    widened to include all caches.
    
    Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
    committed Oct 1, 2014
Commits on Sep 29, 2014
  1. driver: serial: Add file based IO stub

    Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
    committed Sep 29, 2014
Commits on Sep 27, 2014
  1. drivers: serial: Add beginning to serial driver

    Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
    committed Sep 26, 2014
Commits on Sep 26, 2014
  1. build: Fix broken symlink bug

    If the build binary is available, but the symlink is not yet present,
    the kernel will fail to configure and build. By moving the code for
    making the symlink away from the condition in which the binary has to be
    fetched, we eliminate the possibility of this bug.
    
    Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
    committed Sep 26, 2014
  2. kbd: Fix keyboard unresponsive after early keypress

    If a key was pressed but the kernel was not listening for interrupts,
    the interrupt controller would wait until the previous interrupt was
    handled, thus the kernel never finds out about the keypress and the
    keyboard becomes unresponsive.
    
    Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
    committed Sep 26, 2014
Commits on Sep 25, 2014
  1. x86: irq: Cut out the work done by Michel Megens.

    The setting up of IRQ's was flawed. His implementation, prepared a stub
    function, for which memory was allocated.
    
    With the allocated memory, the IRQ stub code was then copied into the
    allocated region, before a few pointers were set.
    
    In future implementations, a stub will be made present, which then calls
    a function pointer implemented in this stub. This can either be fetched
    from a separate table, easier to implement in C, or point to a generic
    function, that contains an IRQ identifying number.
    
    This static approach might require a little more memory in systems that
    don't require the entire IRQ space to be available, but it does help in
    keeping the code more debuggable and understandable.
    
    Also, maintaining a static approach, allows us to keep track of where
    the code is in the future, so that we can detect whenever the EIP goes
    somewhere it shouldn't (in case of a stack or heap overflow attack).
    
    Note that in the case of detecting a stack overflow attack, the stack
    should be registered in a different location to enable it to be marked
    as unexecutable by the page tables.
    
    Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
    committed Sep 25, 2014
Commits on Sep 23, 2014
  1. build: Add version checking.

    Previously if there was a newer version to be used, the build system
    would not be able to detect that.
    
    With the current system, a newer version, requires the setting of the
    $BUILD_VARIABLE in the scripts/get_build.sh script, and it will fetch
    the new version.
    
    Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>
    committed Sep 23, 2014