ps2sdk  1.1
A collection of Open Source libraries used for developing applications on Sony's PlayStation 2® (PS2).
rpc_server.h File Reference
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

int NetManInitRPCServer (void)
 
void NetManDeinitRPCServer (void)
 
int NetManRPCAllocRxBuffers (void)
 

Function Documentation

◆ NetManDeinitRPCServer()

void NetManDeinitRPCServer ( void  )

Definition at line 236 of file rpc_server.c.

237 {
238  if(IsInitialized)
239  {
243 
245  {
249  }
250 
251  if(NETMAN_Rx_threadID>=0)
252  {
255  NETMAN_Rx_threadID = -1;
256  }
257 
258  IsInitialized=0;
259  }
260 }
@ DMAC_SIF0
Definition: kernel.h:121
s32 RemoveDmacHandler(s32 channel, s32 handler_id)
s32 TerminateThread(s32 thread_id)
s32 DeleteThread(s32 thread_id)
static int SifHandlerID
Definition: rpc_server.c:14
static int NETMAN_Rx_threadID
Definition: rpc_server.c:14
static int NETMAN_RpcSvr_threadID
Definition: rpc_server.c:14
static unsigned char IsInitialized
Definition: rpc_server.c:17
static struct t_SifRpcServerData cb_srv
Definition: rpc_server.c:151
static struct t_SifRpcDataQueue cb_queue
Definition: rpc_server.c:150
SifRpcServerData_t * SifRemoveRpc(SifRpcServerData_t *sd, SifRpcDataQueue_t *queue)
SifRpcDataQueue_t * SifRemoveRpcQueue(SifRpcDataQueue_t *qd)

References cb_queue, cb_srv, DeleteThread(), DMAC_SIF0, IsInitialized, NETMAN_RpcSvr_threadID, NETMAN_Rx_threadID, RemoveDmacHandler(), SifHandlerID, SifRemoveRpc(), SifRemoveRpcQueue(), and TerminateThread().

Referenced by NetManDeinit().

◆ NetManInitRPCServer()

int NetManInitRPCServer ( void  )

Definition at line 209 of file rpc_server.c.

210 {
211  int result;
212  ee_thread_t ThreadData;
213 
214  if(!IsInitialized)
215  {
216  ThreadData.func=&NETMAN_RPC_Thread;
217  ThreadData.stack=NETMAN_RpcSvr_ThreadStack;
218  ThreadData.stack_size=sizeof(NETMAN_RpcSvr_ThreadStack);
219  ThreadData.gp_reg=&_gp;
220  ThreadData.initial_priority=0x57; /* The RPC server thread should be given a higher priority than the protocol stack, so that it can issue commants to the EE and return. */
221  ThreadData.attr=ThreadData.option=0;
222 
223  if((NETMAN_RpcSvr_threadID=CreateThread(&ThreadData))>=0)
224  {
226  IsInitialized=1;
227  result=0;
228  }
230  }
231  else result=0;
232 
233  return result;
234 }
s32 CreateThread(ee_thread_t *thread)
s32 StartThread(s32 thread_id, void *args)
s32 result
Definition: rpc_client.c:23
static unsigned char NETMAN_RpcSvr_ThreadStack[0x1000]
Definition: rpc_server.c:15
void * _gp
static void NETMAN_RPC_Thread(void *arg)
Definition: rpc_server.c:153
void * gp_reg
Definition: kernel.h:230
u32 option
Definition: kernel.h:234
int stack_size
Definition: kernel.h:229
void * func
Definition: kernel.h:227
void * stack
Definition: kernel.h:228
u32 attr
Definition: kernel.h:233
int initial_priority
Definition: kernel.h:231
#define NULL
Definition: tamtypes.h:91

References _gp, ee_thread_t::attr, CreateThread(), ee_thread_t::func, ee_thread_t::gp_reg, ee_thread_t::initial_priority, IsInitialized, NETMAN_RPC_Thread(), NETMAN_RpcSvr_threadID, NETMAN_RpcSvr_ThreadStack, NULL, ee_thread_t::option, result, ee_thread_t::stack, ee_thread_t::stack_size, and StartThread().

Referenced by NetManInit().

◆ NetManRPCAllocRxBuffers()

int NetManRPCAllocRxBuffers ( void  )

Definition at line 65 of file rpc_server.c.

66 {
67  int i;
68  void *packet, *payload;
69 
70  for(i = 0; i < NETMAN_RPC_BLOCK_SIZE; i++)
71  {
73  {
74  ClearBufferLen(i, packet, payload);
75  } else {
76  printf("NETMAN: error - unable to allocate Rx FIFO buffers.\n");
77  return -ENOMEM;
78  }
79  }
80 
81  return 0;
82 }
#define ENOMEM
Definition: errno.h:42
packet_t packet
Definition: font.c:24
void * NetManNetProtStackAllocRxPacket(unsigned int length, void **payload)
Definition: netman.c:114
#define NETMAN_NETIF_FRAME_SIZE
Definition: netman.h:13
#define NETMAN_RPC_BLOCK_SIZE
Definition: netman_rpc.h:54
static void ClearBufferLen(int index, void *packet, void *payload)
Definition: rpc_server.c:26

References ClearBufferLen(), ENOMEM, NETMAN_NETIF_FRAME_SIZE, NETMAN_RPC_BLOCK_SIZE, NetManNetProtStackAllocRxPacket(), NULL, packet, and NetManBD::payload.

Referenced by NetManRegisterNetworkStack().