annotate src/g23m-fad/tcpip/rnet/rnet_rt/rnet_rt_api_getproto.c @ 174:90eb61ecd093

src/g23m-fad: initial import from TCS3.2/LoCosto
author Mychaela Falconia <falcon@freecalypso.org>
date Wed, 12 Oct 2016 05:40:46 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
174
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /**
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 * @file rnet_rt_api_getproto.c
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 *
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 * RNET_RT API
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 *
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 * @author Regis Feneon
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 * @version 0.1
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 */
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 /*
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 * $Id: rnet_rt_api_getproto.c,v 1.3 2002/10/30 15:23:34 rf Exp $
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 * $Name: ti_20021030 $
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 *
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 * History:
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 *
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 * Date Author Modification
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 * --------------------------------------------------
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 * 3/29/2002 Regis Feneon Create
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 *
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 * (C) Copyright 2002 by TI, All Rights Reserved
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 *
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 */
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 #include "rnet_cfg.h"
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 #ifdef RNET_CFG_REAL_TRANSPORT
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 #include "rnet_rt_i.h"
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 #include "rnet_rt_env.h"
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 /*
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 * Retrieves the protocol associated to a connection descriptor.
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 * The protocol is retrieved with the SO_TYPE socket option.
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 *
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 * @param desc Connection identifier.
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 * @return A value of the T_RNET_IPPROTO enumeration.
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 */
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 T_RNET_IPPROTO rnet_rt_get_proto (T_RNET_DESC *desc)
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39 {
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40 int err, len, type;
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42 len = sizeof( type);
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44 /* get type of socket */
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45 rvf_lock_mutex( &rnet_rt_env_ctrl_blk_p->mutex);
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46 err = ngSAIOGetOption( (NGsock *) desc, NG_IOCTL_SOCKET, NG_SO_TYPE,
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47 &type, &len);
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48 rvf_unlock_mutex( &rnet_rt_env_ctrl_blk_p->mutex);
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50 if( err == NG_EOK) {
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 switch( type) {
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52 case NG_SOCK_STREAM:
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53 return( RNET_IPPROTO_TCP);
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54 case NG_SOCK_DGRAM:
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55 return( RNET_IPPROTO_UDP);
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 default:
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57 break;
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58 }
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59 }
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
60
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
61 /* should not happen... */
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
62 return( RNET_IPPROTO_UNDEFINED);
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
63 }
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
64
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
65 #endif /* ifdef RNET_CFG_REAL_TRANSPORT */
90eb61ecd093 src/g23m-fad: initial import from TCS3.2/LoCosto
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
66