Skip to content
  • Ian Campbell's avatar
    mini-os: use BSD sys/queue.h instead of Linux list.h · a58c6d79
    Ian Campbell authored
    
    
    The latter is GPL which makes the whole of mini-os GPL rather than BSD
    as intended. In tree users are all GPL or GPL-compatible but we should
    fix this so that mini-os is BSD. Do so by using the same BSD
    sys/queue.h as we use in libxl.
    
    Tested with the builtin mini-os test app and qemu stubdomain, both of which
    appear to still function as expected.
    
    Move tools/libxl/external and the associated sed script to
    tools/include/xen-external to allow more sensible access from mini-os.
    
    Also add s/NULL/0/ in the sed script due to NULL not always being
    defined in stubdom code when mini-os/wait.h is included.
    
    As well as the obvious ABI changes there are a few API updates
    associated with the change:
    
      - struct rw_semaphore.wait_list is unused
      - remove_waiter needs to take the wait_queue_head
    
    The latter requires a qemu update, so there is also a QEMU_TAG
    update in this changeset.
    
    I sprinkled some extra-emacs local variables around the files I edited
    which didn't have them.
    
    I think this should be backported to the stable branches since
    external users of mini-os may have been mislead into thinking they
    could safely link mini-os against GPL-incompatible code.
    
    Signed-off-by: default avatarIan Campbell <ian.campbell@citrix.com>
    Committed-by: default avatarIan Jackson <Ian.Jackson@eu.citrix.com>
    a58c6d79