xref: /trunk/main/sal/osl/unx/sockimpl.h (revision 74ab850d)
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 #else
40 #define CLOSESOCKET_DOESNT_WAKE_UP_ACCEPT 0
41 #endif
42 
43 struct oslSocketImpl {
44     int					m_Socket;
45     int                 m_nLastError;
46 	oslCloseCallback	m_CloseCallback;
47 	void*				m_CallbackArg;
48 	oslInterlockedCount m_nRefCount;
49 #if CLOSESOCKET_DOESNT_WAKE_UP_ACCEPT
50     sal_Bool            m_bIsAccepting;
51     sal_Bool            m_bIsInShutdown;
52 #endif
53 };
54 
55 struct oslSocketAddrImpl
56 {
57 	sal_Int32 m_nRefCount;
58 	struct sockaddr m_sockaddr;
59 };
60 
61 struct oslPipeImpl {
62 	int	 m_Socket;
63 	sal_Char m_Name[PATH_MAX + 1];
64 	oslInterlockedCount m_nRefCount;
65 	sal_Bool m_bClosed;
66 #if defined(LINUX)
67     sal_Bool m_bIsAccepting;
68     sal_Bool m_bIsInShutdown;
69 #endif
70 };
71 
72 oslSocket __osl_createSocketImpl(int Socket);
73 void __osl_destroySocketImpl(oslSocket pImpl);
74 
75 #ifdef __cplusplus
76 }
77 #endif
78 
79 #endif
80 
81