Exemple #1
0
int compat_put_timeval(const struct timeval *tv, void __user *utv)
{
	if (COMPAT_USE_64BIT_TIME)
		return copy_to_user(utv, tv, sizeof *tv) ? -EFAULT : 0;
	else
		return put_compat_timeval(tv, utv);
}
long compat_put_hwcam_buf_status_data(hwcam_buf_status_t *kp, hwcam_buf_status_t32 __user *up)
{
	long ret = 0;

	ret  = put_user(kp->id, &up->id);
	ret |= put_user(kp->buf_status, &up->buf_status);
	ret |= put_compat_timeval(&kp->tv, &up->tv);

	return ret;
}
long compat_put_hwisp_stream_buf_info(hwisp_stream_buf_info_t *kp, hwisp_stream_buf_info_t32 __user *up)
{
	long ret = 0;
	ret  = put_user(kp->user_buffer_handle, &up->user_buffer_handle);
	ret |= put_user(kp->y_addr_phy, &up->y_addr_phy);
	ret |= put_user(kp->u_addr_phy, &up->u_addr_phy);
	ret |= put_user(kp->v_addr_phy, &up->v_addr_phy);
	ret |= put_user(kp->y_addr_iommu, &up->y_addr_iommu);
	ret |= put_user(kp->u_addr_iommu, &up->u_addr_iommu);
	ret |= put_user(kp->v_addr_iommu, &up->v_addr_iommu);
	ret |= put_user(kp->ion_fd, &up->ion_fd);
	ret |= put_user(kp->ion_vc_hdl, &up->ion_vc_hdl);
	ret |= put_user(kp->ion_vaddr, &up->ion_vaddr);
	ret |= put_compat_timeval(&kp->timestamp, &up->timestamp);
	ret |= copy_in_user(&up->port, &kp->port, sizeof(ovisp23_port_info_t));
	return ret;
}
Exemple #4
0
asmlinkage int
sys32_gettimeofday(struct compat_timeval __user *tv, struct timezone __user *tz)
{
    extern void do_gettimeofday(struct timeval *tv);

    if (tv) {
	    struct timeval ktv;
	    do_gettimeofday(&ktv);
	    if (put_compat_timeval(tv, &ktv))
		    return -EFAULT;
    }
    if (tz) {
	    extern struct timezone sys_tz;
	    if (copy_to_user(tz, &sys_tz, sizeof(sys_tz)))
		    return -EFAULT;
    }
    return 0;
}
long compat_put_hwcam_buf_status_data(hwcam_buf_status_t __user *pdata, hwcam_buf_status_t32 __user *pdata32)
{
	long ret = 0;
    compat_int_t id;
    compat_int_t status;
    struct timeval tv;

	if (!access_ok(VERIFY_WRITE, pdata32, sizeof(hwcam_buf_status_t32)))
	    return -EFAULT;
 
    ret  = get_user(id, &pdata->id);
	ret |= put_user(id, &pdata32->id);
    ret |= get_user(status, &pdata->buf_status);
	ret |= put_user(status, &pdata32->buf_status);
    /* ret |= get_compat_timeval(&tv, &pdata->tv); */
    ret |= copy_from_user(&tv, &pdata->tv, sizeof(tv));
	ret |= put_compat_timeval(&tv, &pdata32->tv);

	return ret;
}