/* 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); }
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); }
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); }
/* 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); }