]>
git.saurik.com Git - apple/xnu.git/blob - tools/tests/libMicro/socketpair.c
   4  * The contents of this file are subject to the terms 
   5  * of the Common Development and Distribution License 
   6  * (the "License").  You may not use this file except 
   7  * in compliance with the License. 
   9  * You can obtain a copy of the license at 
  10  * src/OPENSOLARIS.LICENSE 
  11  * or http://www.opensolaris.org/os/licensing. 
  12  * See the License for the specific language governing 
  13  * permissions and limitations under the License. 
  15  * When distributing Covered Code, include this CDDL 
  16  * HEADER in each file and include the License file at 
  17  * usr/src/OPENSOLARIS.LICENSE.  If applicable, 
  18  * add the following below this CDDL HEADER, with the 
  19  * fields enclosed by brackets "[]" replaced with your 
  20  * own identifying information: Portions Copyright [yyyy] 
  21  * [name of copyright owner] 
  27  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved. 
  28  * Use is subject to license terms. 
  35 #include <sys/socket.h> 
  50         lm_tsdsize 
= sizeof (tsd_t
); 
  54         (void) sprintf(lm_usage
, 
  55             "notes: measures socketpair\n"); 
  64         (void) setfdlimit(lm_optB 
* lm_optT 
+ 10); 
  69 benchmark_initbatch(void *tsd
) 
  72         tsd_t                   
*ts 
= (tsd_t 
*)tsd
; 
  74         if (ts
->ts_once
++ == 0) { 
  75                 ts
->ts_fds 
= (int *)malloc(lm_optB 
* sizeof (int)); 
  76                 if (ts
->ts_fds 
== NULL
) { 
  79                 for (i 
= 0; i 
< lm_optB
; i
++) { 
  88 benchmark(void *tsd
, result_t 
*res
) 
  91         tsd_t                   
*ts 
= (tsd_t 
*)tsd
; 
  96         for (i 
= 0; i 
< lm_optB
; i 
+= 2) { 
  97                 if (socketpair(PF_UNIX
, SOCK_STREAM
, 0, &ts
->ts_fds
[i
]) 
 102         res
->re_count 
= i 
/ 2; 
 108 benchmark_finibatch(void *tsd
) 
 111         tsd_t                   
*ts 
= (tsd_t 
*)tsd
; 
 113         for (i 
= 0; i 
< lm_optB
; i
++) { 
 114                 (void) close(ts
->ts_fds
[i
]);