OSDN Git Service

*** empty log message ***
authorkoinec <>
Sun, 25 Oct 2009 13:06:38 +0000 (13:06 +0000)
committerkoinec <>
Sun, 25 Oct 2009 13:06:38 +0000 (13:06 +0000)
deamon/drd64_marshald_cmd_attach_request.c
deamon/drd64_server_recvstatus.c
deamon/drd64_server_recvstatus.h

index 99397fc..35f32cb 100644 (file)
@@ -36,6 +36,13 @@ Comment:
 
 #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,
@@ -330,6 +337,10 @@ int
        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(
@@ -341,8 +352,56 @@ int
        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");
index 0b9611d..56e6b22 100644 (file)
@@ -224,6 +224,51 @@ Drd64_Server_RecvStatus *
 
 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 )
 {
index 3ab588d..d135e94 100644 (file)
@@ -47,6 +47,7 @@ Comment:
 #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 {
@@ -58,6 +59,7 @@ 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
@@ -94,6 +96,23 @@ EXTERN_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 );