Keep in mind that _write is a /very/ complicated syscall. Since it functions on a file handle which may be file on any type of filesystem or even a network socket, it basically forks off to places all over the kernel.
The wiki page you link to is the right place to start to understand FreeBSD syscalls. write is probably not the best syscall to use to understand them, if that's what you're trying to do.
The implementation of the write syscall (from FreeBSD 10.0-RELEASE):
/usr/src/sys/kern/sys_generic.c:358
#ifndef _SYS_SYSPROTO_H_
struct write_args {
int fd;
const void *buf;
size_t nbyte;
};
#endif
int
sys_write(td, uap)
struct thread *td;
struct write_args *uap;
{
struct uio auio;
struct iovec aiov;
int error;
if (uap->nbyte > IOSIZE_MAX)
return (EINVAL);
aiov.iov_base = (void *)(uintptr_t)uap->buf;
aiov.iov_len = uap->nbyte;
auio.uio_iov = &aiov;
auio.uio_iovcnt = 1;
auio.uio_resid = uap->nbyte;
auio.uio_segflg = UIO_USERSPACE;
error = kern_writev(td, uap->fd, &auio);
return(error);
}