-Source: http://ports.ubuntu.com/pool/multiverse/v/virtualbox/virtualbox-guest-dkms_5.1.14-dfsg-3_all.deb
-Version: 5.1.14-dfsg-3
+Source: http://ports.ubuntu.com/pool/multiverse/v/virtualbox/virtualbox-guest-dkms_5.1.16-dfsg-1_all.deb
+Version: 5.1.16-dfsg-1
PACKAGE_NAME="virtualbox-guest"
-PACKAGE_VERSION="5.1.14"
+PACKAGE_VERSION="5.1.16"
CLEAN="rm -f *.*o"
BUILT_MODULE_NAME[0]="vboxguest"
BUILT_MODULE_LOCATION[0]="vboxguest"
*
* @todo Fix name, it is a predicate function but it's not returning boolean!
*/
-#if !defined(RT_OS_LINUX) || !defined(__KERNEL__)
+#if !defined(RDESKTOP) && (!defined(RT_OS_LINUX) || !defined(__KERNEL__))
DECLASM(void *) ASMMemFirstNonZero(void const *pv, size_t cb);
#else
DECLINLINE(void *) ASMMemFirstNonZero(void const *pv, size_t cb)
*/
/*
- * Copyright (C) 2011-2016 Oracle Corporation
+ * Copyright (C) 2011-2017 Oracle Corporation
*
* This file is part of VirtualBox Open Source Edition (OSE), as
* available from http://www.virtualbox.org. This file is free software;
# define RTCircBufFree RT_MANGLER(RTCircBufFree)
# define RTCircBufIsReading RT_MANGLER(RTCircBufIsReading)
# define RTCircBufIsWriting RT_MANGLER(RTCircBufIsWriting)
+# define RTCircBufOffsetRead RT_MANGLER(RTCircBufOffsetRead)
+# define RTCircBufOffsetWrite RT_MANGLER(RTCircBufOffsetWrite)
# define RTCircBufReleaseReadBlock RT_MANGLER(RTCircBufReleaseReadBlock)
# define RTCircBufReleaseWriteBlock RT_MANGLER(RTCircBufReleaseWriteBlock)
# define RTCircBufReset RT_MANGLER(RTCircBufReset)
# define RTNetIPv6PseudoChecksum RT_MANGLER(RTNetIPv6PseudoChecksum)
# define RTNetIPv6PseudoChecksumBits RT_MANGLER(RTNetIPv6PseudoChecksumBits)
# define RTNetIPv6PseudoChecksumEx RT_MANGLER(RTNetIPv6PseudoChecksumEx)
+# define RTNetMaskToPrefixIPv4 RT_MANGLER(RTNetMaskToPrefixIPv4)
+# define RTNetPrefixToMaskIPv4 RT_MANGLER(RTNetPrefixToMaskIPv4)
# define RTNetTCPChecksum RT_MANGLER(RTNetTCPChecksum)
# define RTNetUDPChecksum RT_MANGLER(RTNetUDPChecksum)
# define RTNetStrToMacAddr RT_MANGLER(RTNetStrToMacAddr)
*/
RTDECL(int) RTNetStrToIPv4Addr(const char *pcszAddr, PRTNETADDRIPV4 pAddr);
+/**
+ * Verifies that RTNETADDRIPV4 is a valid contiguous netmask and
+ * computes its prefix length.
+ *
+ * @returns VINF_SUCCESS on success, VERR_INVALID_PARAMETER on
+ * failure.
+ *
+ * @param pMask The netmask to verify and convert.
+ * @param piPrefix Where to store the prefix length. (Optional)
+ */
+RTDECL(int) RTNetMaskToPrefixIPv4(PCRTNETADDRIPV4 pMask, int *piPrefix);
+
+/**
+ * Computes netmask corresponding to the prefix length.
+ *
+ * @returns VINF_SUCCESS on success, VERR_INVALID_PARAMETER on
+ * failure.
+ *
+ * @param iPrefix The prefix to convert.
+ * @param pMask Where to store the netmask.
+ */
+RTDECL(int) RTNetPrefixToMaskIPv4(int iPrefix, PRTNETADDRIPV4 pMask);
+
+
/**
* IPv6 address.
*/
unsigned u16Sel : 16;
/** 20 - Number of parameters for a call-gate.
* Ignored if interrupt-, trap- or task-gate. */
- unsigned u4ParmCount : 4;
- /** 24 - Reserved / ignored. */
- unsigned u4Reserved : 4;
+ unsigned u5ParmCount : 5;
+ /** 25 - Reserved / ignored. */
+ unsigned u3Reserved : 3;
/** 28 - Segment Type. */
unsigned u4Type : 4;
/** 2c - Descriptor Type (0 = system). */
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 9, 0)
# include <linux/sched/rt.h>
#endif
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
+# include <linux/sched/signal.h>
+# include <linux/sched/types.h>
+#endif
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 7)
# include <linux/jiffies.h>
#endif
break;
/* Go to sleep. */
- set_task_state(pSelf, fInterruptible ? TASK_INTERRUPTIBLE : TASK_UNINTERRUPTIBLE);
+ set_current_state(fInterruptible ? TASK_INTERRUPTIBLE : TASK_UNINTERRUPTIBLE);
spin_unlock_irq(&pThis->Spinlock);
lTimeout = schedule_timeout(lTimeout);
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 9, 0)
# include <linux/sched/rt.h>
#endif
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
+# include <linux/sched/signal.h>
+# include <linux/sched/types.h>
+#endif
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 7)
# include <linux/jiffies.h>
#endif
-#define VBOX_SVN_REV 112924
+#define VBOX_SVN_REV 113841
#define VBOX_VERSION_MAJOR 5
#define VBOX_VERSION_MINOR 1
-#define VBOX_VERSION_BUILD 14
-#define VBOX_VERSION_STRING_RAW "5.1.14"
-#define VBOX_VERSION_STRING "5.1.14_Ubuntu"
+#define VBOX_VERSION_BUILD 16
+#define VBOX_VERSION_STRING_RAW "5.1.16"
+#define VBOX_VERSION_STRING "5.1.16_Ubuntu"
#define VBOX_API_VERSION_STRING "5_1"
#define VBOX_PRIVATE_BUILD_DESC "Private build by root"
return 0;
}
-#if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 25)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
+static int sf_reg_fault(struct vm_fault *vmf)
+#elif LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 25)
static int sf_reg_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
static struct page *sf_reg_nopage(struct vm_area_struct *vma, unsigned long vaddr, int *type)
loff_t off;
uint32_t nread = PAGE_SIZE;
int err;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
+ struct vm_area_struct *vma = vmf->vma;
+#endif
struct file *file = vma->vm_file;
struct inode *inode = GET_F_DENTRY(file)->d_inode;
struct sf_glob_info *sf_g = GET_GLOB_INFO(inode->i_sb);
#if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 25)
.fault = sf_reg_fault
#else
- .nopage = sf_reg_nopage
+ .nopage = sf_reg_nopage
#endif
};
-#define VBOX_SVN_REV 112924
+#define VBOX_SVN_REV 113841
has inode at all) from these new attributes we derive [kstat] via
[generic_fillattr] */
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
+# if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
+int sf_getattr(const struct path *path, struct kstat *kstat, u32 request_mask, unsigned int flags)
+# else
int sf_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *kstat)
+# endif
{
int err;
+# if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
+ struct dentry *dentry = path->dentry;
+# endif
TRACE();
err = sf_inode_revalidate(dentry);
#define VBOX_VERSION_MAJOR 5
#define VBOX_VERSION_MINOR 1
-#define VBOX_VERSION_BUILD 14
-#define VBOX_VERSION_STRING_RAW "5.1.14"
-#define VBOX_VERSION_STRING "5.1.14_Ubuntu"
+#define VBOX_VERSION_BUILD 16
+#define VBOX_VERSION_STRING_RAW "5.1.16"
+#define VBOX_VERSION_STRING "5.1.16_Ubuntu"
#define VBOX_API_VERSION_STRING "5_1"
#define VBOX_PRIVATE_BUILD_DESC "Private build by root"
MODULE_DESCRIPTION(VBOX_PRODUCT " VFS Module for Host File System Access");
MODULE_AUTHOR(VBOX_VENDOR);
MODULE_LICENSE("GPL");
+#ifdef MODULE_ALIAS_FS
+MODULE_ALIAS_FS("vboxsf");
+#endif
#ifdef MODULE_VERSION
MODULE_VERSION(VBOX_VERSION_STRING " r" RT_XSTR(VBOX_SVN_REV));
#endif
SHFLSTRING *path, PSHFLFSOBJINFO result, int ok_to_fail);
extern int sf_inode_revalidate(struct dentry *dentry);
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
+# if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
+extern int sf_getattr(const struct path *path, struct kstat *kstat,
+ u32 request_mask, unsigned int query_flags);
+# else
extern int sf_getattr(struct vfsmount *mnt, struct dentry *dentry,
struct kstat *kstat);
+#endif
extern int sf_setattr(struct dentry *dentry, struct iattr *iattr);
#endif
extern int sf_path_from_dentry(const char *caller, struct sf_glob_info *sf_g,
-#define VBOX_SVN_REV 112924
+#define VBOX_SVN_REV 113841
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 18, 0)
# include <drm/drm_gem.h>
#endif
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
+# include <drm/drm_encoder.h>
+#endif
/* #include "vboxvideo.h" */
#undef CURSOR_DATA_SIZE
int vbox_driver_load(struct drm_device *dev, unsigned long flags);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
+void vbox_driver_unload(struct drm_device *dev);
+#else
int vbox_driver_unload(struct drm_device *dev);
+#endif
void vbox_driver_lastclose(struct drm_device *dev);
struct vbox_gem_object;
struct drm_gem_object *obj;
struct vbox_bo *bo;
int src_offset, dst_offset;
- int bpp = (fbdev->afb.base.bits_per_pixel + 7)/8;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
+ int bpp = fbdev->afb.base.format->cpp[0];
+#else
+ int bpp = (fbdev->afb.base.bits_per_pixel + 7) / 8;
+#endif
int ret = -EBUSY;
bool unmap = false;
bool store_for_later = false;
info->apertures->ranges[0].base = pci_resource_start(dev->pdev, 0);
info->apertures->ranges[0].size = pci_resource_len(dev->pdev, 0);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
+ drm_fb_helper_fill_fix(info, fb->pitches[0], fb->format->depth);
+#else
drm_fb_helper_fill_fix(info, fb->pitches[0], fb->depth);
+#endif
drm_fb_helper_fill_var(info, &fbdev->helper, sizes->fb_width, sizes->fb_height);
info->screen_base = sysram;
#else
drm_fb_helper_prepare(dev, &fbdev->helper, &vbox_fb_helper_funcs);
#endif
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
+ ret = drm_fb_helper_init(dev, &fbdev->helper, vbox->num_crtcs);
+#else
ret = drm_fb_helper_init(dev, &fbdev->helper, vbox->num_crtcs, vbox->num_crtcs);
+#endif
if (ret)
goto free;
LogFunc(("vboxvideo: %d: dev=%p, vbox_fb=%p, obj=%p\n", __LINE__, dev,
vbox_fb, obj));
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
+ drm_helper_mode_fill_fb_struct(dev, &vbox_fb->base, mode_cmd);
+#else
drm_helper_mode_fill_fb_struct(&vbox_fb->base, mode_cmd);
+#endif
vbox_fb->obj = obj;
ret = drm_framebuffer_init(dev, &vbox_fb->base, &vbox_fb_funcs);
if (ret) {
return ret;
}
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
+void vbox_driver_unload(struct drm_device *dev)
+#else
int vbox_driver_unload(struct drm_device *dev)
+#endif
{
struct vbox_private *vbox = dev->dev_private;
kfree(vbox);
dev->dev_private = NULL;
LogFunc(("vboxvideo: %d\n", __LINE__));
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0)
return 0;
+#endif
}
/** @note this is described in the DRM framework documentation. AST does not
width = mode->hdisplay ? mode->hdisplay : 640;
height = mode->vdisplay ? mode->vdisplay : 480;
crtc_id = vbox_crtc->crtc_id;
- bpp = crtc->enabled ? CRTC_FB(crtc)->bits_per_pixel : 32;
-#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 3, 0)
- pitch = crtc->enabled ? CRTC_FB(crtc)->pitch : width * bpp / 8;
-#else
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
+ bpp = crtc->enabled ? CRTC_FB(crtc)->format->cpp[0] * 8 : 32;
pitch = crtc->enabled ? CRTC_FB(crtc)->pitches[0] : width * bpp / 8;
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(3, 3, 0)
+ bpp = crtc->enabled ? CRTC_FB(crtc)->bits_per_pixel : 32;
+ pitch = crtc->enabled ? CRTC_FB(crtc)->pitches[0] : width * bpp / 8;
+#else
+ bpp = crtc->enabled ? CRTC_FB(crtc)->bits_per_pixel : 32;
+ pitch = crtc->enabled ? CRTC_FB(crtc)->pitch : width * bpp / 8;
#endif
/* This is the old way of setting graphics modes. It assumed one screen
* and a frame-buffer at the start of video RAM. On older versions of
&& vbox_crtc->fb_offset / pitch < 0xffff - crtc->y
&& vbox_crtc->fb_offset % (bpp / 8) == 0)
VBoxVideoSetModeRegisters(width, height, pitch * 8 / bpp,
- CRTC_FB(crtc)->bits_per_pixel, 0,
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
+ CRTC_FB(crtc)->format->cpp[0] * 8,
+#else
+ CRTC_FB(crtc)->bits_per_pixel,
+#endif
+ 0,
vbox_crtc->fb_offset % pitch / bpp * 8 + crtc->x,
vbox_crtc->fb_offset / pitch + crtc->y);
flags = VBVA_SCREEN_F_ACTIVE;
.verify_access = vbox_bo_verify_access,
.io_mem_reserve = &vbox_ttm_io_mem_reserve,
.io_mem_free = &vbox_ttm_io_mem_free,
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 7, 0)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 7, 0) && LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0)
.lru_tail = &ttm_bo_default_lru_tail,
.swap_lru_tail = &ttm_bo_default_swap_lru_tail,
#endif
#define VBOX_VERSION_MAJOR 5
#define VBOX_VERSION_MINOR 1
-#define VBOX_VERSION_BUILD 14
-#define VBOX_VERSION_STRING_RAW "5.1.14"
-#define VBOX_VERSION_STRING "5.1.14_Ubuntu"
+#define VBOX_VERSION_BUILD 16
+#define VBOX_VERSION_STRING_RAW "5.1.16"
+#define VBOX_VERSION_STRING "5.1.16_Ubuntu"
#define VBOX_API_VERSION_STRING "5_1"
#define VBOX_PRIVATE_BUILD_DESC "Private build by root"