UIOMOVE
error = UIOMOVE(ipl, dlen, UIO_READ, uio);
err = UIOMOVE(&sh, sizeof(sh), UIO_WRITE, uio);
err = UIOMOVE(&data, sh.sm_len, UIO_WRITE, uio);
err = UIOMOVE(sl, sizeof(*sl), UIO_READ, uio);
err = UIOMOVE(su, sizeof(*su), UIO_READ, uio);