1/*
2 * Copyright (c) 2010 Apple Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 *
10 * 1.  Redistributions of source code must retain the above copyright
11 *     notice, this list of conditions and the following disclaimer.
12 * 2.  Redistributions in binary form must reproduce the above copyright
13 *     notice, this list of conditions and the following disclaimer in the
14 *     documentation and/or other materials provided with the distribution.
15 * 3.  Neither the name of Apple Inc. ("Apple") nor the names of its
16 *     contributors may be used to endorse or promote products derived from
17 *     this software without specific prior written permission.
18 *
19 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
20 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
23 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
26 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 *
30 * Portions of this software have been released under the following terms:
31 *
32 * (c) Copyright 1989-1993 OPEN SOFTWARE FOUNDATION, INC.
33 * (c) Copyright 1989-1993 HEWLETT-PACKARD COMPANY
34 * (c) Copyright 1989-1993 DIGITAL EQUIPMENT CORPORATION
35 *
36 * To anyone who acknowledges that this file is provided "AS IS"
37 * without any express or implied warranty:
38 * permission to use, copy, modify, and distribute this file for any
39 * purpose is hereby granted without fee, provided that the above
40 * copyright notices and this notice appears in all source code copies,
41 * and that none of the names of Open Software Foundation, Inc., Hewlett-
42 * Packard Company or Digital Equipment Corporation be used
43 * in advertising or publicity pertaining to distribution of the software
44 * without specific, written prior permission.  Neither Open Software
45 * Foundation, Inc., Hewlett-Packard Company nor Digital
46 * Equipment Corporation makes any representations about the suitability
47 * of this software for any purpose.
48 *
49 * Copyright (c) 2007, Novell, Inc. All rights reserved.
50 * Redistribution and use in source and binary forms, with or without
51 * modification, are permitted provided that the following conditions
52 * are met:
53 *
54 * 1.  Redistributions of source code must retain the above copyright
55 *     notice, this list of conditions and the following disclaimer.
56 * 2.  Redistributions in binary form must reproduce the above copyright
57 *     notice, this list of conditions and the following disclaimer in the
58 *     documentation and/or other materials provided with the distribution.
59 * 3.  Neither the name of Novell Inc. nor the names of its contributors
60 *     may be used to endorse or promote products derived from this
61 *     this software without specific prior written permission.
62 *
63 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
64 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
65 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
66 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY
67 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
68 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
69 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
70 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
71 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
72 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
73 *
74 * @APPLE_LICENSE_HEADER_END@
75 */
76
77/*
78**
79**  NAME:
80**
81**      twr.idl
82**
83**  FACILITY:
84**
85**      twr
86**
87**  ABSTRACT:
88**
89**      twr Interface Definition
90**
91**      NOTE WELL: This file contains various things marked "*** NON-API ***".
92**      The existence, signature, and semantics of anything so marked
93**      is subject to change without notice and should thus not be depended
94**      on by application writers.
95**
96**
97*/
98
99[local] interface twr
100{
101import  "dce/lbase.idl";
102
103/*************************************************************************/
104/*************************  Common definitions  **************************/
105/*************************************************************************/
106
107/* none */
108
109/*************************************************************************/
110/****************************  Status Codes  *****************************/
111/*************************************************************************/
112
113const long      twr_s_ok               = error_status_ok;
114
115/* T W R _ I P _ L O W E R _ F L R S _ F R O M _ S A
116 *
117 *                   *** NON-API ***
118 *
119 * Create the canonical representation of an Internet protocol tower from an
120 * Internet sockaddr
121 */
122void twr_ip_lower_flrs_from_sa
123    (
124        [in]    unsigned32        transport_layer_protocol,
125        [in]    sockaddr_p_t      sa,
126        [out]   twr_p_t           *tower,
127        [out]   unsigned32        *status
128    );
129
130/*
131 * T W R _ D N E T _ L O W E R _ F L R S _ F R O M _ S A
132 *
133 *                   *** NON-API ***
134 *
135 * Create the canonical representation of a DECnet protocol tower from a
136 * DECnet sockaddr
137 */
138void twr_dnet_lower_flrs_from_sa
139    (
140        [in]    sockaddr_p_t      sa,
141        [out]   twr_p_t           *tower,
142        [out]   unsigned32        *status
143    );
144
145/*
146 * T W R _ O S I _ L O W E R _ F L R S _ F R O M _ S A
147 *
148 *                   *** NON-API ***
149 *
150 * Create the canonical representation of an OSI protocol tower from an
151 * OSI sockaddr
152 */
153void twr_osi_lower_flrs_from_sa
154    (
155        [in]    sockaddr_p_t      sa,
156        [out]   twr_p_t           *tower,
157        [out]   unsigned32        *status
158    );
159
160/*
161 * T W R _ D D S _ L O W E R _ F L R S _ F R O M _ S A
162 *
163 *                   *** NON-API ***
164 *
165 * Create the canonical representation of an DDS protocol tower from an
166 * DDS sockaddr
167 */
168void twr_dds_lower_flrs_from_sa
169    (
170        [in]    unsigned32        transport_layer_protocol,
171        [in]    sockaddr_p_t      sa,
172        [out]   twr_p_t           *tower,
173        [out]   unsigned32        *status
174    );
175
176/*
177 * T W R _ U X D _ L O W E R _ F L R S _ F R O M _ S A
178 *
179 *                   *** NON-API ***
180 *
181 * Create the canonical representation of a Unix Domain Socket
182 * protocol tower from a LRPC sockaddr
183 */
184void twr_uxd_lower_flrs_from_sa
185    (
186        [in]    sockaddr_p_t      sa,
187        [out]   twr_p_t           *tower,
188        [out]   unsigned32        *status
189    );
190
191/*
192 * T W R _ N P _ L O W E R _ F L R S _ F R O M _ S A
193 *
194 *                   *** NON-API ***
195 *
196 * Create the canonical representation of a Named Pipe
197 * protocol tower from a LRPC sockaddr
198 */
199void twr_np_lower_flrs_from_sa
200    (
201        [in]    sockaddr_p_t      sa,
202        [out]   twr_p_t           *tower,
203        [out]   unsigned32        *status
204    );
205
206/*
207 * T W R _ I P _ L O W E R _ F L R S _ T O _ S A
208 *
209 *                   *** NON-API ***
210 *
211 * Create an Internet sockaddr from the canonical representation of
212 * an Internet protocol tower.
213 */
214void twr_ip_lower_flrs_to_sa
215    (
216        [in]    byte_p_t         tower_octet_string,
217        [out]   sockaddr_p_t     *sa,
218        [out]   unsigned32       *sa_len,
219        [out]   unsigned32       *status
220    );
221/*
222 * T W R _ D N E T _ L O W E R _ F L R S _ T O _ S A
223 *
224 *                   *** NON-API ***
225 *
226 * Create a DECnet sockaddr from the canonical representation of
227 * a DECnet protocol tower.
228 */
229void twr_dnet_lower_flrs_to_sa
230    (
231        [in]    byte_p_t         tower_octet_string,
232        [out]   sockaddr_p_t     *sa,
233        [out]   unsigned32       *sa_len,
234        [out]   unsigned32       *status
235    );
236
237/*
238 * T W R _ O S I _ L O W E R _ F L R S _ T O _ S A
239 *
240 *                   *** NON-API ***
241 *
242 * Create an OSI sockaddr from the canonical representation of
243 * an OSI protocol tower.
244 */
245void twr_osi_lower_flrs_to_sa
246    (
247        [in]    byte_p_t         tower_octet_string,
248        [out]   sockaddr_p_t     *sa,
249        [out]   unsigned32       *sa_len,
250        [out]   unsigned32       *status
251    );
252
253/*
254 * T W R _ D D S _ L O W E R _ F L R S _ T O _ S A
255 *
256 *                   *** NON-API ***
257 *
258 * Create an DDS sockaddr from the canonical representation of
259 * an DDS protocol tower.
260 */
261void twr_dds_lower_flrs_to_sa
262    (
263        [in]    byte_p_t         tower_octet_string,
264        [out]   sockaddr_p_t     *sa,
265        [out]   unsigned32       *sa_len,
266        [out]   unsigned32       *status
267    );
268/*
269 * T W R _ U X D _ L O W E R _ F L R S _ T O _ S A
270 *
271 *                   *** NON-API ***
272 *
273 * Create an UXD sockaddr (sockaddr_un) from the canonical representation of
274 * an LRPC protocol tower.
275 */
276void twr_uxd_lower_flrs_to_sa
277    (
278        [in]    byte_p_t         tower_octet_string,
279        [out]   sockaddr_p_t     *sa,
280        [out]   unsigned32       *sa_len,
281        [out]   unsigned32       *status
282    );
283
284/*
285 * T W R _ N P _ L O W E R _ F L R S _ T O _ S A
286 *
287 *                   *** NON-API ***
288 *
289 * Create an NP sockaddr (sockaddr_un) from the canonical representation of
290 * an LRPC protocol tower.
291 */
292void twr_np_lower_flrs_to_sa
293    (
294        [in]    byte_p_t         tower_octet_string,
295        [out]   sockaddr_p_t     *sa,
296        [out]   unsigned32       *sa_len,
297        [out]   unsigned32       *status
298    );
299
300}
301