1 /*
2  * Copyright (C) 2022 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef SPUNGE_STACK_H
17 #define SPUNGE_STACK_H
18 
19 #include "spunge_core.h"
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
25 void SpungeDoRecvCycle(struct SockOsSocket *osSock, struct SpungeInstance *inst);
26 void SpungeDoPackCycle(struct SpungePcb *pcb, struct SpungeInstance *inst);
27 void SpungeSendConnectMsg(void *argConn);
28 void SpungeDoSendCycle(struct SpungePcb *pcb, struct SpungeInstance *inst, FILLP_LLONG detaTime);
29 void SpungeCheckDisconn(void *argConn);
30 
31 struct SockOsSocket *SpungeAllocSystemSocket(FILLP_INT domain, FILLP_INT type, FILLP_INT protocol);
32 FillpQueue *SpungeAllocUnsendBox(struct SpungeInstance *inst);
33 void SpungeFreeUnsendBox(struct FillpPcb *pcb);
34 
35 void SpungeShutdownSock(void *argSock, FILLP_INT how);
36 void SpungeConnClosed(struct FtNetconn *conn);
37 void SpungeConnConnectSuccess(void *argSock);
38 void SpungeConnConnectFail(void *argSock);
39 FILLP_BOOL SpungeConnCheckUnsendBoxEmpty(struct FtNetconn *conn);
40 void SpungEpollClose(struct FtSocket *sock);
41 
42 #ifdef __cplusplus
43 }
44 #endif
45 #endif /* SPUNGE_STACK_H */
46