#include"drd64_marshald.h"
+
+#define DRD64_CMDSTATUS_ATTACHREQ_NORMAL 0x00
+#define DRD64_CMDSTATUS_ATTACHREQ_WAITCONNECT 0x01
+#define DRD64_CMDSTATUS_ATTACHREQ_WAITTRANS 0x02
+#define DRD64_CMDSTATUS_ATTACHREQ_WAITEXEC 0x03
+
+
int
Drd64_Marshald_Cmd_AttachRequest_toINet_Result(
int i_fds,
return 0x00;
}
+//#define DRD64_CMDSTATUS_ATTACHREQ_NORMAL 0x00
+//#define DRD64_CMDSTATUS_ATTACHREQ_WAITCONNECT 0x01
+//#define DRD64_CMDSTATUS_ATTACHREQ_WAITTRANS 0x02
+//#define DRD64_CMDSTATUS_ATTACHREQ_WAITEXEC 0x03
int
Drd64_Marshald_Cmd_AttachRequest(
int i_wlen;
int i_err;
int i_result;
+ int i_cmd_status;
+ int i_inet_flag;
+ Byte b_packet_status;
Drd64_Marshald_ConnectInfo *p_cinfo;
+ i_result = DRD64_MARSHALD_DISPATCH_RESULT_COMPLETE;
+
+ b_packet_status = Drd64_Server_RecvStatus_GetPacketStatus( i_fds );
+ if( DRD64_SERVER_RECVSTATUS_STATUS_ERROR == b_packet_status )
+ { return i_result; }
+
+ i_cmd_status = Drd64_Server_RecvStatus_GetCmdStatus( i_fds );
+ if( -1 == i_cmd_status )
+ { return i_result; }
+
+ i_inet_flag = Drd64_Server_INetAddr_CmpInAddr(
+ &(p_attachreq->t_prog_addr),
+ &(p_marshald->t_marshald_addr) );
+
+ if( DRD64_SERVER_RECVSTATUS_STATUS_READ == b_packet_status ) {
+ /* Scenery 1 : Local Debug Started (from Local or Inet)---*/
+ if( 0x00 == i_inet_flag ) {
+
+ }
+ /* Scenery 2 : Inet Debug Started (for Trans Inet Marshald ) ---*/
+ else {
+
+ }
+ }
+ else if( DRD64_SERVER_RECVSTATUS_STATUS_RESUME == b_packet_status ) {
+ /* Scenery 3 : Trans Attach Req. for Inet Marshald ---*/
+ if( DRD64_CMDSTATUS_ATTACHREQ_WAITCONNECT == i_cmd_status ) {
+ assert( 0x00 != i_inet_flag );
+
+ }
+ /* Scenery 4 : Recv. BootInfo Cmd from Debugd ---*/
+ else if( DRD64_CMDSTATUS_ATTACHREQ_WAITEXEC == i_cmd_status ) {
+
+ }
+ /* Scenery 5 : Recv. Answer Trans. Attach req. from Inet Marshald -*/
+ else if( DRD64_CMDSTATUS_ATTACHREQ_WAITTRANS == i_cmd_status ) {
+
+ }
+
+ }
+ else {
+ /* XXX : Error Proc. */
+ }
+
+
i_result = 0x02; /* XXX */
puts("Attach start");
EXTERN_SERVER_RECVSTATUS
int
+ Drd64_Server_RecvStatus_GetPacketStatus(
+ int i_fds )
+{
+ Drd64_Server_RecvStatus *p_recv;
+ p_recv = *(gpp_recvstat + i_fds);
+
+ if( NULL == p_recv ) { return -1; }
+
+ return p_recv->b_recv_status;
+}
+
+
+EXTERN_SERVER_RECVSTATUS
+int
+ Drd64_Server_RecvStatus_GetCmdStatus(
+ int i_fds )
+{
+ Drd64_Server_RecvStatus *p_recv;
+ p_recv = *(gpp_recvstat + i_fds);
+
+ if( NULL == p_recv ) { return -1; }
+
+ return p_recv->i_command_status;
+}
+
+
+EXTERN_SERVER_RECVSTATUS
+int
+ Drd64_Server_RecvStatus_SetCmdStatus(
+ int i_fds,
+ int i_command_status )
+{
+ Drd64_Server_RecvStatus *p_recv;
+ p_recv = *(gpp_recvstat + i_fds);
+
+ if( NULL == p_recv ) { return -1; }
+
+ p_recv->i_command_status = i_command_status;
+
+ return p_recv->i_command_status;
+}
+
+
+EXTERN_SERVER_RECVSTATUS
+int
Drd64_Server_RecvStatus_GetRecvStatMax(
void )
{
#define DRD64_SERVER_RECVSTATUS_STATUS_READ 0x00
#define DRD64_SERVER_RECVSTATUS_STATUS_STOP 0x01
#define DRD64_SERVER_RECVSTATUS_STATUS_RESUME 0x02
+#define DRD64_SERVER_RECVSTATUS_STATUS_ERROR 0xff
typedef struct {
int i_child_fds_id;
Byte b_recv_status;
+ int i_command_status; /* Cmd Proc. Use Area - for Cmd Status */
} Drd64_Server_RecvStatus;
#ifdef DRD64_SRC_SERVER_RECVSTATUS
EXTERN_SERVER_RECVSTATUS
int
+ Drd64_Server_RecvStatus_GetPacketStatus(
+ int i_fds );
+
+EXTERN_SERVER_RECVSTATUS
+ int
+ Drd64_Server_RecvStatus_GetCmdStatus(
+ int i_fds );
+
+EXTERN_SERVER_RECVSTATUS
+ int
+ Drd64_Server_RecvStatus_SetCmdStatus(
+ int i_fds,
+ int i_packet_status );
+
+
+EXTERN_SERVER_RECVSTATUS
+ int
Drd64_Server_RecvStatus_GetRecvStatMax(
void );