Ejemplo n.º 1
0
/*
 * MPSAFE
 */
int
sys_olseek(struct olseek_args *uap)
{
    int error;

    error = kern_lseek(uap->fd, uap->offset, uap->whence,
                       &uap->sysmsg_offset);

    return (error);
}
Ejemplo n.º 2
0
int
linux_lseek(struct thread *td, struct linux_lseek_args *args)
{

#ifdef DEBUG
	if (ldebug(lseek))
		printf(ARGS(lseek, "%d, %ld, %d"),
		    args->fdes, (long)args->off, args->whence);
#endif
	return (kern_lseek(td, args->fdes, args->off, args->whence));
}
Ejemplo n.º 3
0
int
cloudabi_sys_fd_seek(struct thread *td, struct cloudabi_sys_fd_seek_args *uap)
{
	int whence;

	switch (uap->whence) {
	case CLOUDABI_WHENCE_CUR:
		whence = SEEK_CUR;
		break;
	case CLOUDABI_WHENCE_END:
		whence = SEEK_END;
		break;
	case CLOUDABI_WHENCE_SET:
		whence = SEEK_SET;
		break;
	default:
		return (EINVAL);
	}

	return (kern_lseek(td, uap->fd, uap->offset, whence));
}
Ejemplo n.º 4
0
int
linux_llseek(struct thread *td, struct linux_llseek_args *args)
{
	int error;
	off_t off;

#ifdef DEBUG
	if (ldebug(llseek))
		printf(ARGS(llseek, "%d, %d:%d, %d"),
		    args->fd, args->ohigh, args->olow, args->whence);
#endif
	off = (args->olow) | (((off_t) args->ohigh) << 32);

	error = kern_lseek(td, args->fd, off, args->whence);
	if (error != 0)
		return (error);

	error = copyout(td->td_retval, args->res, sizeof(off_t));
	if (error != 0)
		return (error);

	td->td_retval[0] = 0;
	return (0);
}