Lines Matching refs:a_uio
455 user_ssize_t uio_resid( uio_t a_uio )
458 if (a_uio == NULL) {
461 /* if (IS_VALID_UIO_SEGFLG(a_uio->uio_segflg) == 0) { */
467 if (a_uio == NULL) {
471 if (UIO_IS_64_BIT_SPACE(a_uio)) {
473 return( (user_ssize_t)a_uio->uio_resid );
475 return( a_uio->uio_resid_64 );
478 return( (user_ssize_t)a_uio->uio_resid );
484 void uio_setresid( uio_t a_uio, user_ssize_t a_value )
487 if (a_uio == NULL) {
490 /* if (IS_VALID_UIO_SEGFLG(a_uio->uio_segflg) == 0) { */
495 if (a_uio == NULL) {
499 if (UIO_IS_64_BIT_SPACE(a_uio)) {
501 a_uio->uio_resid = (int)a_value;
503 a_uio->uio_resid_64 = a_value;
507 a_uio->uio_resid = (int)a_value;
516 user_addr_t uio_curriovbase( uio_t a_uio )
519 if (a_uio == NULL) {
524 if (a_uio == NULL || a_uio->uio_iovcnt < 1) {
528 if (UIO_IS_64_BIT_SPACE(a_uio)) {
529 return(a_uio->uio_iovs.uiovp->iov_base);
531 return((user_addr_t)((uintptr_t)a_uio->uio_iovs.kiovp->iov_base));
539 user_size_t uio_curriovlen( uio_t a_uio )
542 if (a_uio == NULL) {
547 if (a_uio == NULL || a_uio->uio_iovcnt < 1) {
551 if (UIO_IS_64_BIT_SPACE(a_uio)) {
552 return(a_uio->uio_iovs.uiovp->iov_len);
554 return((user_size_t)a_uio->uio_iovs.kiovp->iov_len);
561 __private_extern__ void uio_setcurriovlen( uio_t a_uio, user_size_t a_value )
564 if (a_uio == NULL) {
569 if (a_uio == NULL) {
573 if (UIO_IS_64_BIT_SPACE(a_uio)) {
574 a_uio->uio_iovs.uiovp->iov_len = a_value;
582 a_uio->uio_iovs.kiovp->iov_len = (size_t)a_value;
590 int uio_iovcnt( uio_t a_uio )
593 if (a_uio == NULL) {
598 if (a_uio == NULL) {
602 return( a_uio->uio_iovcnt );
608 off_t uio_offset( uio_t a_uio )
611 if (a_uio == NULL) {
616 if (a_uio == NULL) {
619 return( a_uio->uio_offset );
625 void uio_setoffset( uio_t a_uio, off_t a_offset )
628 if (a_uio == NULL) {
633 if (a_uio == NULL) {
636 a_uio->uio_offset = a_offset;
643 int uio_rw( uio_t a_uio )
646 if (a_uio == NULL) {
651 if (a_uio == NULL) {
654 return( a_uio->uio_rw );
660 void uio_setrw( uio_t a_uio, int a_value )
662 if (a_uio == NULL) {
676 a_uio->uio_rw = a_value;
685 int uio_isuserspace( uio_t a_uio )
687 if (a_uio == NULL) {
694 if (UIO_SEG_IS_USER_SPACE(a_uio->uio_segflg)) {
816 int uio_spacetype( uio_t a_uio )
818 if (a_uio == NULL) {
825 return( a_uio->uio_segflg );
835 struct user_iovec * uio_iovsaddr( uio_t a_uio )
839 if (a_uio == NULL) {
843 if (a_uio->uio_segflg == UIO_USERSPACE || a_uio->uio_segflg == UIO_SYSSPACE) {
845 my_addr = (struct user_iovec *) a_uio->uio_iovs.iovp;
848 my_addr = (struct user_iovec *) (((uint8_t *)a_uio) + sizeof(struct uio));
860 void uio_reset( uio_t a_uio,
870 if (a_uio == NULL) {
881 if (a_uio == NULL) {
885 my_size = a_uio->uio_size;
886 my_old_flags = a_uio->uio_flags;
887 my_max_iovs = a_uio->uio_max_iovs;
888 bzero(a_uio, my_size);
889 a_uio->uio_size = my_size;
890 a_uio->uio_segflg = a_spacetype;
892 a_uio->uio_iovs.uiovp = (struct user_iovec *)
893 (((uint8_t *)a_uio) + sizeof(struct uio));
896 a_uio->uio_iovs.uiovp = NULL;
898 a_uio->uio_max_iovs = my_max_iovs;
899 a_uio->uio_offset = a_offset;
900 a_uio->uio_rw = a_iodirection;
901 a_uio->uio_flags = my_old_flags;
910 void uio_free( uio_t a_uio )
913 if (a_uio == NULL) {
918 if (a_uio != NULL && (a_uio->uio_flags & UIO_FLAGS_WE_ALLOCED) != 0) {
923 kfree(a_uio, a_uio->uio_size);
935 int uio_addiov( uio_t a_uio, user_addr_t a_baseaddr, user_size_t a_length )
939 if (a_uio == NULL) {
946 if (UIO_IS_64_BIT_SPACE(a_uio)) {
947 for ( i = 0; i < a_uio->uio_max_iovs; i++ ) {
948 if (a_uio->uio_iovs.uiovp[i].iov_len == 0 && a_uio->uio_iovs.uiovp[i].iov_base == 0) {
949 a_uio->uio_iovs.uiovp[i].iov_len = a_length;
950 a_uio->uio_iovs.uiovp[i].iov_base = a_baseaddr;
951 a_uio->uio_iovcnt++;
953 a_uio->uio_resid += a_length;
955 a_uio->uio_resid_64 += a_length;
962 for ( i = 0; i < a_uio->uio_max_iovs; i++ ) {
963 if (a_uio->uio_iovs.kiovp[i].iov_len == 0 && a_uio->uio_iovs.kiovp[i].iov_base == 0) {
964 a_uio->uio_iovs.kiovp[i].iov_len = (u_int32_t)a_length;
965 a_uio->uio_iovs.kiovp[i].iov_base = (u_int32_t)((uintptr_t)a_baseaddr);
966 a_uio->uio_iovcnt++;
967 a_uio->uio_resid += a_length;
983 int uio_getiov( uio_t a_uio,
988 if (a_uio == NULL) {
994 if ( a_index < 0 || a_index >= a_uio->uio_iovcnt) {
998 if (UIO_IS_64_BIT_SPACE(a_uio)) {
1000 *a_baseaddr_p = a_uio->uio_iovs.uiovp[a_index].iov_base;
1003 *a_length_p = a_uio->uio_iovs.uiovp[a_index].iov_len;
1008 *a_baseaddr_p = a_uio->uio_iovs.kiovp[a_index].iov_base;
1011 *a_length_p = a_uio->uio_iovs.kiovp[a_index].iov_len;
1022 __private_extern__ void uio_calculateresid( uio_t a_uio )
1026 if (a_uio == NULL) {
1033 a_uio->uio_iovcnt = a_uio->uio_max_iovs;
1034 if (UIO_IS_64_BIT_SPACE(a_uio)) {
1036 a_uio->uio_resid = 0;
1038 a_uio->uio_resid_64 = 0;
1040 for ( i = 0; i < a_uio->uio_max_iovs; i++ ) {
1041 if (a_uio->uio_iovs.uiovp[i].iov_len != 0 && a_uio->uio_iovs.uiovp[i].iov_base != 0) {
1043 a_uio->uio_resid += a_uio->uio_iovs.uiovp[i].iov_len;
1045 a_uio->uio_resid_64 += a_uio->uio_iovs.uiovp[i].iov_len;
1051 while (a_uio->uio_iovcnt > 0 && a_uio->uio_iovs.uiovp->iov_len == 0) {
1052 a_uio->uio_iovcnt--;
1053 if (a_uio->uio_iovcnt > 0) {
1054 a_uio->uio_iovs.uiovp++;
1059 a_uio->uio_resid = 0;
1060 for ( i = 0; i < a_uio->uio_max_iovs; i++ ) {
1061 if (a_uio->uio_iovs.kiovp[i].iov_len != 0 && a_uio->uio_iovs.kiovp[i].iov_base != 0) {
1062 a_uio->uio_resid += a_uio->uio_iovs.kiovp[i].iov_len;
1067 while (a_uio->uio_iovcnt > 0 && a_uio->uio_iovs.kiovp->iov_len == 0) {
1068 a_uio->uio_iovcnt--;
1069 if (a_uio->uio_iovcnt > 0) {
1070 a_uio->uio_iovs.kiovp++;
1087 void uio_update( uio_t a_uio, user_size_t a_count )
1090 if (a_uio == NULL) {
1093 if (UIO_IS_32_BIT_SPACE(a_uio) && a_count > 0xFFFFFFFFull) {
1098 if (a_uio == NULL || a_uio->uio_iovcnt < 1) {
1102 if (UIO_IS_64_BIT_SPACE(a_uio)) {
1108 if (a_count > a_uio->uio_iovs.uiovp->iov_len) {
1109 a_uio->uio_iovs.uiovp->iov_base += a_uio->uio_iovs.uiovp->iov_len;
1110 a_uio->uio_iovs.uiovp->iov_len = 0;
1113 a_uio->uio_iovs.uiovp->iov_base += a_count;
1114 a_uio->uio_iovs.uiovp->iov_len -= a_count;
1117 if (a_uio->uio_resid < 0) {
1118 a_uio->uio_resid = 0;
1120 if (a_count > (user_size_t)a_uio->uio_resid) {
1121 a_uio->uio_offset += a_uio->uio_resid;
1122 a_uio->uio_resid = 0;
1125 a_uio->uio_offset += a_count;
1126 a_uio->uio_resid -= a_count;
1129 if (a_uio->uio_resid_64 < 0) {
1130 a_uio->uio_resid_64 = 0;
1132 if (a_count > (user_size_t)a_uio->uio_resid_64) {
1133 a_uio->uio_offset += a_uio->uio_resid_64;
1134 a_uio->uio_resid_64 = 0;
1137 a_uio->uio_offset += a_count;
1138 a_uio->uio_resid_64 -= a_count;
1145 while (a_uio->uio_iovcnt > 0 && a_uio->uio_iovs.uiovp->iov_len == 0) {
1146 a_uio->uio_iovcnt--;
1147 if (a_uio->uio_iovcnt > 0) {
1148 a_uio->uio_iovs.uiovp++;
1158 if (a_count > a_uio->uio_iovs.kiovp->iov_len) {
1159 a_uio->uio_iovs.kiovp->iov_base += a_uio->uio_iovs.kiovp->iov_len;
1160 a_uio->uio_iovs.kiovp->iov_len = 0;
1163 a_uio->uio_iovs.kiovp->iov_base += a_count;
1164 a_uio->uio_iovs.kiovp->iov_len -= a_count;
1166 if (a_uio->uio_resid < 0) {
1167 a_uio->uio_resid = 0;
1169 if (a_count > (user_size_t)a_uio->uio_resid) {
1170 a_uio->uio_offset += a_uio->uio_resid;
1171 a_uio->uio_resid = 0;
1174 a_uio->uio_offset += a_count;
1175 a_uio->uio_resid -= a_count;
1181 while (a_uio->uio_iovcnt > 0 && a_uio->uio_iovs.kiovp->iov_len == 0) {
1182 a_uio->uio_iovcnt--;
1183 if (a_uio->uio_iovcnt > 0) {
1184 a_uio->uio_iovs.kiovp++;
1196 uio_t uio_duplicate( uio_t a_uio )
1201 if (a_uio == NULL) {
1205 my_uio = (uio_t) kalloc(a_uio->uio_size);
1210 bcopy((void *)a_uio, (void *)my_uio, a_uio->uio_size);
1219 if (UIO_IS_64_BIT_SPACE(a_uio)) {