Пример #1
0
/* Command 0x8000000c */
static void _request_rdata(SifRpcOtherDataPkt_t *rdata, void *data)
{
	SifRpcRendPkt_t *rend;

	rend = (SifRpcRendPkt_t *)_rpc_get_fpacket(data);
	rend->pkt_addr = rdata->pkt_addr;
	rend->client = (SifRpcClientData_t *)rdata->receive;
	rend->cid = 0x8000000c;

	iSifSendCmd(0x80000008, rend, 64, rdata->src, rdata->dest, rdata->size);
}
Пример #2
0
void cmd8000000C_RDATA(RPC_PACKET_RDATA *packet, struct tag_rpc_common *common){
	RPC_PACKET_END *epacket;

	epacket = (RPC_PACKET_END *)rpc_get_fpacket(common);

	epacket->packet.paddr = packet->packet.paddr;
	epacket->command = 0x8000000C;
	epacket->client  = packet->client;

	iSifSendCmd(0x80000008, epacket, 0x40, packet->src, packet->dst, packet->size);
}
Пример #3
0
void cmd80000009_BIND(RPC_PACKET_BIND *packet, struct tag_rpc_common *common){
	RPC_PACKET_END *epacket;
	struct sifcmd_RPC_SERVER_DATA *s;

	epacket = (RPC_PACKET_END *)rpc_get_fpacket(common);

	epacket->packet.paddr=packet->packet.paddr;
	epacket->command=0x80000009;
	epacket->client=packet->client;
	
	s = search_svdata(packet->fno, common);
	if (s == NULL){
		epacket->server=0;
		epacket->buff  =0;
		epacket->cbuff =0;
	}else{
		epacket->server=s;
		epacket->buff  =s->buff;
		epacket->cbuff =s->cbuff;
	}
	iSifSendCmd(0x80000008, epacket, 0x40, 0, 0, 0);
}
Пример #4
0
/* Command 0x80000009 */
static void _request_bind(SifRpcBindPkt_t *bind, void *data)
{
	SifRpcRendPkt_t *rend;
	SifRpcServerData_t *server;

	rend = _rpc_get_fpacket(data);
	rend->pkt_addr = bind->pkt_addr;
	rend->client = bind->client;
	rend->cid = 0x80000009;

	server = search_svdata(bind->sid, data);
	if (!server) {
		rend->server = NULL;
		rend->buff   = NULL;
		rend->cbuff  = NULL;
	} else {
		rend->server = server;
		rend->buff   = server->buff;
		rend->cbuff  = server->cbuff;
	}

	iSifSendCmd(0x80000008, rend, 64, NULL, NULL, 0);
}