Lines Matching defs:a_uio

335 user_ssize_t uio_resid( uio_t a_uio )
338 if (a_uio == NULL) {
341 /* if (IS_VALID_UIO_SEGFLG(a_uio->uio_segflg) == 0) { */
347 if (a_uio == NULL) {
351 return( a_uio->uio_resid_64 );
357 void uio_setresid( uio_t a_uio, user_ssize_t a_value )
360 if (a_uio == NULL) {
363 /* if (IS_VALID_UIO_SEGFLG(a_uio->uio_segflg) == 0) { */
368 if (a_uio == NULL) {
372 a_uio->uio_resid_64 = a_value;
380 user_addr_t uio_curriovbase( uio_t a_uio )
383 if (a_uio == NULL) {
388 if (a_uio == NULL || a_uio->uio_iovcnt < 1) {
392 if (UIO_IS_USER_SPACE(a_uio)) {
393 return(a_uio->uio_iovs.uiovp->iov_base);
395 return((user_addr_t)a_uio->uio_iovs.kiovp->iov_base);
403 user_size_t uio_curriovlen( uio_t a_uio )
406 if (a_uio == NULL) {
411 if (a_uio == NULL || a_uio->uio_iovcnt < 1) {
415 if (UIO_IS_USER_SPACE(a_uio)) {
416 return(a_uio->uio_iovs.uiovp->iov_len);
418 return((user_size_t)a_uio->uio_iovs.kiovp->iov_len);
425 __private_extern__ void uio_setcurriovlen( uio_t a_uio, user_size_t a_value )
428 if (a_uio == NULL) {
433 if (a_uio == NULL) {
437 if (UIO_IS_USER_SPACE(a_uio)) {
438 a_uio->uio_iovs.uiovp->iov_len = a_value;
446 a_uio->uio_iovs.kiovp->iov_len = (size_t)a_value;
454 int uio_iovcnt( uio_t a_uio )
457 if (a_uio == NULL) {
462 if (a_uio == NULL) {
466 return( a_uio->uio_iovcnt );
472 off_t uio_offset( uio_t a_uio )
475 if (a_uio == NULL) {
480 if (a_uio == NULL) {
483 return( a_uio->uio_offset );
489 void uio_setoffset( uio_t a_uio, off_t a_offset )
492 if (a_uio == NULL) {
497 if (a_uio == NULL) {
500 a_uio->uio_offset = a_offset;
507 int uio_rw( uio_t a_uio )
510 if (a_uio == NULL) {
515 if (a_uio == NULL) {
518 return( a_uio->uio_rw );
524 void uio_setrw( uio_t a_uio, int a_value )
526 if (a_uio == NULL) {
540 a_uio->uio_rw = a_value;
549 int uio_isuserspace( uio_t a_uio )
551 if (a_uio == NULL) {
558 if (UIO_SEG_IS_USER_SPACE(a_uio->uio_segflg)) {
686 __private_extern__ int uio_spacetype( uio_t a_uio )
688 if (a_uio == NULL) {
695 return( a_uio->uio_segflg );
705 __private_extern__ struct user_iovec * uio_iovsaddr( uio_t a_uio )
709 if (a_uio == NULL) {
713 if (UIO_SEG_IS_USER_SPACE(a_uio->uio_segflg)) {
715 my_addr = (struct user_iovec *) a_uio->uio_iovs.uiovp;
733 void uio_reset( uio_t a_uio,
743 if (a_uio == NULL) {
754 if (a_uio == NULL) {
758 my_size = a_uio->uio_size;
759 my_old_flags = a_uio->uio_flags;
760 my_max_iovs = a_uio->uio_max_iovs;
761 bzero(a_uio, my_size);
762 a_uio->uio_size = my_size;
773 a_uio->uio_segflg = UIO_USERSPACE32;
776 a_uio->uio_segflg = UIO_SYSSPACE;
779 a_uio->uio_segflg = UIO_PHYS_USERSPACE32;
782 a_uio->uio_segflg = a_spacetype;
787 a_uio->uio_iovs.uiovp = (struct user_iovec *)
788 (((uint8_t *)a_uio) + sizeof(struct uio));
791 a_uio->uio_iovs.uiovp = NULL;
794 a_uio->uio_max_iovs = my_max_iovs;
795 a_uio->uio_offset = a_offset;
796 a_uio->uio_rw = a_iodirection;
797 a_uio->uio_flags = my_old_flags;
806 void uio_free( uio_t a_uio )
809 if (a_uio == NULL) {
814 if (a_uio != NULL && (a_uio->uio_flags & UIO_FLAGS_WE_ALLOCED) != 0) {
819 kfree(a_uio, a_uio->uio_size);
831 int uio_addiov( uio_t a_uio, user_addr_t a_baseaddr, user_size_t a_length )
835 if (a_uio == NULL) {
842 if (UIO_IS_USER_SPACE(a_uio)) {
843 for ( i = 0; i < a_uio->uio_max_iovs; i++ ) {
844 if (a_uio->uio_iovs.uiovp[i].iov_len == 0 && a_uio->uio_iovs.uiovp[i].iov_base == 0) {
845 a_uio->uio_iovs.uiovp[i].iov_len = a_length;
846 a_uio->uio_iovs.uiovp[i].iov_base = a_baseaddr;
847 a_uio->uio_iovcnt++;
848 a_uio->uio_resid_64 += a_length;
854 for ( i = 0; i < a_uio->uio_max_iovs; i++ ) {
855 if (a_uio->uio_iovs.kiovp[i].iov_len == 0 && a_uio->uio_iovs.kiovp[i].iov_base == 0) {
856 a_uio->uio_iovs.kiovp[i].iov_len = (u_int64_t)a_length;
857 a_uio->uio_iovs.kiovp[i].iov_base = (u_int64_t)a_baseaddr;
858 a_uio->uio_iovcnt++;
859 a_uio->uio_resid_64 += a_length;
875 int uio_getiov( uio_t a_uio,
880 if (a_uio == NULL) {
886 if ( a_index < 0 || a_index >= a_uio->uio_iovcnt) {
890 if (UIO_IS_USER_SPACE(a_uio)) {
892 *a_baseaddr_p = a_uio->uio_iovs.uiovp[a_index].iov_base;
895 *a_length_p = a_uio->uio_iovs.uiovp[a_index].iov_len;
900 *a_baseaddr_p = a_uio->uio_iovs.kiovp[a_index].iov_base;
903 *a_length_p = a_uio->uio_iovs.kiovp[a_index].iov_len;
914 __private_extern__ void uio_calculateresid( uio_t a_uio )
918 if (a_uio == NULL) {
925 a_uio->uio_iovcnt = a_uio->uio_max_iovs;
926 if (UIO_IS_USER_SPACE(a_uio)) {
927 a_uio->uio_resid_64 = 0;
928 for ( i = 0; i < a_uio->uio_max_iovs; i++ ) {
929 if (a_uio->uio_iovs.uiovp[i].iov_len != 0 && a_uio->uio_iovs.uiovp[i].iov_base != 0) {
930 a_uio->uio_resid_64 += a_uio->uio_iovs.uiovp[i].iov_len;
935 while (a_uio->uio_iovcnt > 0 && a_uio->uio_iovs.uiovp->iov_len == 0) {
936 a_uio->uio_iovcnt--;
937 if (a_uio->uio_iovcnt > 0) {
938 a_uio->uio_iovs.uiovp++;
943 a_uio->uio_resid_64 = 0;
944 for ( i = 0; i < a_uio->uio_max_iovs; i++ ) {
945 if (a_uio->uio_iovs.kiovp[i].iov_len != 0 && a_uio->uio_iovs.kiovp[i].iov_base != 0) {
946 a_uio->uio_resid_64 += a_uio->uio_iovs.kiovp[i].iov_len;
951 while (a_uio->uio_iovcnt > 0 && a_uio->uio_iovs.kiovp->iov_len == 0) {
952 a_uio->uio_iovcnt--;
953 if (a_uio->uio_iovcnt > 0) {
954 a_uio->uio_iovs.kiovp++;
971 void uio_update( uio_t a_uio, user_size_t a_count )
974 if (a_uio == NULL) {
977 if (UIO_IS_32_BIT_SPACE(a_uio) && a_count > 0xFFFFFFFFull) {
982 if (a_uio == NULL || a_uio->uio_iovcnt < 1) {
986 if (UIO_IS_USER_SPACE(a_uio)) {
992 if (a_count > a_uio->uio_iovs.uiovp->iov_len) {
993 a_uio->uio_iovs.uiovp->iov_base += a_uio->uio_iovs.uiovp->iov_len;
994 a_uio->uio_iovs.uiovp->iov_len = 0;
997 a_uio->uio_iovs.uiovp->iov_base += a_count;
998 a_uio->uio_iovs.uiovp->iov_len -= a_count;
1000 if (a_uio->uio_resid_64 < 0) {
1001 a_uio->uio_resid_64 = 0;
1003 if (a_count > (user_size_t)a_uio->uio_resid_64) {
1004 a_uio->uio_offset += a_uio->uio_resid_64;
1005 a_uio->uio_resid_64 = 0;
1008 a_uio->uio_offset += a_count;
1009 a_uio->uio_resid_64 -= a_count;
1015 while (a_uio->uio_iovcnt > 0 && a_uio->uio_iovs.uiovp->iov_len == 0) {
1016 a_uio->uio_iovcnt--;
1017 if (a_uio->uio_iovcnt > 0) {
1018 a_uio->uio_iovs.uiovp++;
1028 if (a_count > a_uio->uio_iovs.kiovp->iov_len) {
1029 a_uio->uio_iovs.kiovp->iov_base += a_uio->uio_iovs.kiovp->iov_len;
1030 a_uio->uio_iovs.kiovp->iov_len = 0;
1033 a_uio->uio_iovs.kiovp->iov_base += a_count;
1034 a_uio->uio_iovs.kiovp->iov_len -= a_count;
1036 if (a_uio->uio_resid_64 < 0) {
1037 a_uio->uio_resid_64 = 0;
1039 if (a_count > (user_size_t)a_uio->uio_resid_64) {
1040 a_uio->uio_offset += a_uio->uio_resid_64;
1041 a_uio->uio_resid_64 = 0;
1044 a_uio->uio_offset += a_count;
1045 a_uio->uio_resid_64 -= a_count;
1051 while (a_uio->uio_iovcnt > 0 && a_uio->uio_iovs.kiovp->iov_len == 0) {
1052 a_uio->uio_iovcnt--;
1053 if (a_uio->uio_iovcnt > 0) {
1054 a_uio->uio_iovs.kiovp++;
1067 __private_extern__ void uio_pushback( uio_t a_uio, user_size_t a_count )
1070 if (a_uio == NULL) {
1073 if (UIO_IS_32_BIT_SPACE(a_uio) && a_count > 0xFFFFFFFFull) {
1078 if (a_uio == NULL || a_count == 0) {
1082 if (a_uio->uio_iovcnt < 1) {
1086 if (UIO_IS_USER_SPACE(a_uio)) {
1087 a_uio->uio_iovs.uiovp->iov_base -= a_count;
1088 a_uio->uio_iovs.uiovp->iov_len += a_count;
1091 a_uio->uio_iovs.kiovp->iov_base -= a_count;
1092 a_uio->uio_iovs.kiovp->iov_len += a_count;
1095 a_uio->uio_offset -= a_count;
1096 a_uio->uio_resid_64 += a_count;
1106 uio_t uio_duplicate( uio_t a_uio )
1111 if (a_uio == NULL) {
1115 my_uio = (uio_t) kalloc(a_uio->uio_size);
1120 bcopy((void *)a_uio, (void *)my_uio, a_uio->uio_size);
1129 if (UIO_IS_USER_SPACE(a_uio)) {