xref: /trunk/main/sal/osl/unx/sockimpl.h (revision 033c5080)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 #ifndef _OSL_SOCKETIMPL_H_
25 #define _OSL_SOCKETIMPL_H_
26 
27 #include <osl/pipe.h>
28 #include <osl/socket.h>
29 #include <osl/interlck.h>
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34 
35 typedef void* (*oslCloseCallback) (void*);
36 
37 #if defined(LINUX) || defined(FREEBSD) || defined(NETBSD)
38 #define CLOSESOCKET_DOESNT_WAKE_UP_ACCEPT 1
39 #endif
40 
41 struct oslSocketImpl {
42     int					m_Socket;
43     int                 m_nLastError;
44 	oslCloseCallback	m_CloseCallback;
45 	void*				m_CallbackArg;
46 	oslInterlockedCount m_nRefCount;
47 #if CLOSESOCKET_DOESNT_WAKE_UP_ACCEPT
48     sal_Bool            m_bIsAccepting;
49     sal_Bool            m_bIsInShutdown;
50 #endif
51 };
52 
53 struct oslSocketAddrImpl
54 {
55 	sal_Int32 m_nRefCount;
56 	struct sockaddr m_sockaddr;
57 };
58 
59 struct oslPipeImpl {
60 	int	 m_Socket;
61 	sal_Char m_Name[PATH_MAX + 1];
62 	oslInterlockedCount m_nRefCount;
63 	sal_Bool m_bClosed;
64 #if defined(LINUX)
65     sal_Bool m_bIsAccepting;
66     sal_Bool m_bIsInShutdown;
67 #endif
68 };
69 
70 oslSocket __osl_createSocketImpl(int Socket);
71 void __osl_destroySocketImpl(oslSocket pImpl);
72 
73 #ifdef __cplusplus
74 }
75 #endif
76 
77 #endif
78 
79