Changeset d1558f3 in rtems-libbsd
- Timestamp:
- Nov 16, 2015, 8:51:44 AM (5 years ago)
- Branches:
- 4.11
- Children:
- af60212
- Parents:
- 5aa22c6
- git-author:
- Sebastian Huber <sebastian.huber@…> (11/16/15 08:51:44)
- git-committer:
- Sebastian Huber <sebastian.huber@…> (11/16/15 08:54:29)
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
freebsd/sys/kern/uipc_syscalls.c
r5aa22c6 rd1558f3 816 816 } 817 817 818 #ifndef __rtems__819 818 int 820 819 kern_socketpair(struct thread *td, int domain, int type, int protocol, 821 820 int *rsv) 822 821 { 822 #ifndef __rtems__ 823 823 struct filedesc *fdp = td->td_proc->p_fd; 824 #endif /* __rtems__ */ 824 825 struct file *fp1, *fp2; 825 826 struct socket *so1, *so2; … … 830 831 oflag = 0; 831 832 fflag = 0; 833 #ifndef __rtems__ 832 834 if ((type & SOCK_CLOEXEC) != 0) { 833 835 type &= ~SOCK_CLOEXEC; 834 836 oflag |= O_CLOEXEC; 835 837 } 838 #endif /* __rtems__ */ 836 839 if ((type & SOCK_NONBLOCK) != 0) { 837 840 type &= ~SOCK_NONBLOCK; … … 899 902 } 900 903 904 #ifdef __rtems__ 905 static 906 #endif /* __rtems__ */ 901 907 int 902 908 sys_socketpair(struct thread *td, struct socketpair_args *uap) 903 909 { 910 #ifndef __rtems__ 904 911 int error, sv[2]; 912 #else /* __rtems__ */ 913 int error; 914 int *sv = uap->rsv; 915 #endif /* __rtems__ */ 905 916 906 917 error = kern_socketpair(td, uap->domain, uap->type, … … 908 919 if (error) 909 920 return (error); 921 #ifndef __rtems__ 910 922 error = copyout(sv, uap->rsv, 2 * sizeof(int)); 911 923 if (error) { … … 913 925 (void)kern_close(td, sv[1]); 914 926 } 915 return (error); 927 #endif /* __rtems__ */ 928 return (error); 929 } 930 #ifdef __rtems__ 931 int 932 socketpair(int domain, int type, int protocol, int *socket_vector) 933 { 934 struct thread *td = rtems_bsd_get_curthread_or_null(); 935 struct socketpair_args ua = { 936 .domain = domain, 937 .type = type, 938 .protocol = protocol, 939 .rsv = socket_vector 940 }; 941 int error; 942 943 if (td != NULL) { 944 error = sys_socketpair(td, &ua); 945 } else { 946 error = ENOMEM; 947 } 948 949 return rtems_bsd_error_to_status_and_errno(error); 916 950 } 917 951 #endif /* __rtems__ */ -
freebsd/sys/sys/sysproto.h
r5aa22c6 rd1558f3 482 482 char how_l_[PADL_(int)]; int how; char how_r_[PADR_(int)]; 483 483 }; 484 #ifndef __rtems__485 484 struct socketpair_args { 486 485 char domain_l_[PADL_(int)]; int domain; char domain_r_[PADR_(int)]; … … 489 488 char rsv_l_[PADL_(int *)]; int * rsv; char rsv_r_[PADR_(int *)]; 490 489 }; 490 #ifndef __rtems__ 491 491 struct mkdir_args { 492 492 char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)]; -
rtemsbsd/include/machine/rtems-bsd-syscall-api.h
r5aa22c6 rd1558f3 99 99 int socket(int, int, int); 100 100 101 int socketpair(int, int, int, int *); 102 101 103 int sysctl(const int *, u_int, void *, size_t *, const void *, size_t); 102 104 -
testsuite/syscalls01/test_main.c
r5aa22c6 rd1558f3 1360 1360 assert(rtems_resource_snapshot_check(&snapshot)); 1361 1361 } 1362 static void 1363 no_mem_socket_pair(int fd) 1364 { 1365 int sd[2]; 1366 int rv; 1367 1368 errno = 0; 1369 rv = socketpair(PF_UNIX, SOCK_DGRAM, 0, &sd[0]); 1370 assert(rv == -1); 1371 assert(errno == ENOMEM); 1372 } 1373 1374 static void 1375 test_socket_pair(void) 1376 { 1377 rtems_resource_snapshot snapshot; 1378 int sd[2]; 1379 int rv; 1380 char in[] = { 'x' }; 1381 char out[] = { 'o' }; 1382 ssize_t n; 1383 1384 puts("test socket pair"); 1385 1386 rtems_resource_snapshot_take(&snapshot); 1387 1388 rv = socketpair(PF_UNIX, SOCK_DGRAM, 0, &sd[0]); 1389 assert(rv == 0); 1390 1391 n = write(sd[0], &out[0], sizeof(out)); 1392 assert(n == (ssize_t)sizeof(out)); 1393 1394 n = read(sd[1], &in[0], sizeof(in)); 1395 assert(n == (ssize_t)sizeof(in)); 1396 1397 assert(memcmp(&in[0], &out[0], sizeof(in)) == 0); 1398 1399 rv = close(sd[0]); 1400 assert(rv == 0); 1401 1402 rv = close(sd[1]); 1403 assert(rv == 0); 1404 1405 do_no_mem_test(no_mem_socket_pair, -1); 1406 1407 assert(rtems_resource_snapshot_check(&snapshot)); 1408 } 1362 1409 1363 1410 static void … … 1755 1802 test_socket_select(); 1756 1803 test_socket_poll(); 1804 test_socket_pair(); 1757 1805 1758 1806 test_kqueue_unsupported_ops();
Note: See TracChangeset
for help on using the changeset viewer.