⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbcmd.c

📁 基于东南大学开发的SEP3203的ARM7中的所有驱动
💻 C
📖 第 1 页 / 共 5 页
字号:

            print_queue((T_NODE*)&g_sFlgcb[i-1]);
        }
        tmpbuf.size ++;                     /* ++ is null */
        return (int*)&tmpbuf;
    }

    tmpbuf.size = 0;           /* init size */
    for(i = stano; i <= endno; i++){

        if(chk_prtbuf(256) < 0) break;

        cnt = sprintf(tmpbuf.buf+tmpbuf.size,"*** FLGID = %d\n", i);
        tmpbuf.size += cnt;

        pFlgcb = (T_FLGCB*)&g_sFlgcb[i-1];

        cnt = sprintf(tmpbuf.buf+tmpbuf.size,"flgcb adr.  :%08x\n", pFlgcb);
        tmpbuf.size += cnt;

        cnt = sprintf(tmpbuf.buf+tmpbuf.size,"wait queue  :");
        tmpbuf.size += cnt;

        print_queue((T_NODE*)&g_sFlgcb[i-1]);

        cnt = sprintf(tmpbuf.buf+tmpbuf.size,"flag pattern:%04x\n",
                  pFlgcb->uhFlgPtn);
        tmpbuf.size += cnt;

        cnt = sprintf(tmpbuf.buf+tmpbuf.size,"wait pattern:%04x\n",
                  pFlgcb->uhWaiPtn);
        tmpbuf.size += cnt;

        waimod = (int)pFlgcb->bWaiMode;           /* get flgChar */
        switch(waimod){
        case TWF_ANDW:           strcpy(flgchar, "ANDW"); break;
        case TWF_ANDW | TWF_CLR: strcpy(flgchar, "ANDW | CLR"); break;
        case TWF_ORW:            strcpy(flgchar, "ORW"); break;
        case TWF_ORW | TWF_CLR:  strcpy(flgchar, "ORW | CLR"); break;
        }

        cnt = sprintf(tmpbuf.buf+tmpbuf.size,"wait mode   :%s\n", flgchar);
        tmpbuf.size += cnt;

        cnt = sprintf(tmpbuf.buf+tmpbuf.size,"\n");
        tmpbuf.size += cnt;
    }
    tmpbuf.size ++;                     /* ++ is null */
    return (int*)&tmpbuf;
}

//***********************************************************************
//  3.7 Control Block Data (call mbf)
//  This function is called from db33.This iprint_mbf command prints 
//  ROS33 message buffer control block data.
//***********************************************************************
int *iprint_mbf(int arg1, int arg2, int arg3)
{
    T_MSGBUFCB* pMsgbufcb;
    int i;
    char msgmark[2];
    char msgchar[13];

    rtncode = chk_param(arg1, arg2, MSGBUF_NUM);

    if(rtncode < 0){
        cnt = sprintf(tmpbuf.buf,"NONE\n");
        tmpbuf.size = cnt+1;      /* +1 is null */
        return (int*)&tmpbuf;
    }

    if(rtncode == 0){
        cnt = sprintf(tmpbuf.buf,"ID  MSG     QUEUE\n");
        tmpbuf.size = cnt;

        for(i = stano; i <= endno; i++){

            if(chk_prtbuf(80) < 0) break;

            pMsgbufcb = (T_MSGBUFCB*)&g_sMsgbufcb[i-1];

            if(pMsgbufcb->maxmsz == 0){           /* not vcre_mbf */
                cnt = sprintf(tmpbuf.buf+tmpbuf.size,"%-3d (NONE)\n", i);
                tmpbuf.size += cnt;

            }else{
                if(pMsgbufcb->ubEmpty == 1){      /* set message mark(-,*) */
                    strcpy(msgmark, "-");
                }else{
                    strcpy(msgmark, "*");
                }

                cnt = sprintf(tmpbuf.buf+tmpbuf.size,"%-3d  %s  rcv ", i, msgmark);
                tmpbuf.size += cnt;

                print_queue((T_NODE*)&g_sMsgbufcb[i-1]);

                cnt = sprintf(tmpbuf.buf+tmpbuf.size,"        snd ");
                tmpbuf.size += cnt;

                print_queue((T_NODE*)&(g_sMsgbufcb[i-1].pNxtSndTsk));

            }
        }
        tmpbuf.size ++;                     /* ++ is null */
        return (int*)&tmpbuf;
    }

    tmpbuf.size = 0;           /* init size */
    for(i = stano; i <= endno; i++){

        if(chk_prtbuf(384) < 0) break;

        cnt = sprintf(tmpbuf.buf+tmpbuf.size,"*** MBFID = %d\n", i);
        tmpbuf.size += cnt;
        pMsgbufcb = (T_MSGBUFCB*)&g_sMsgbufcb[i-1];

        if(pMsgbufcb->maxmsz == 0){               /* not vcre_mbf */
            cnt = sprintf(tmpbuf.buf+tmpbuf.size,"(NONE)\n");
            tmpbuf.size += cnt;

        }else{
            cnt = sprintf(tmpbuf.buf+tmpbuf.size,"msgbufcb adr:%08x\n", pMsgbufcb);
            tmpbuf.size += cnt;

            cnt = sprintf(tmpbuf.buf+tmpbuf.size,"wait rcv que:");
            tmpbuf.size += cnt;

            print_queue((T_NODE*)&g_sMsgbufcb[i-1]);

            cnt = sprintf(tmpbuf.buf+tmpbuf.size,"wait snd que:");
            tmpbuf.size += cnt;

            print_queue((T_NODE*)&(g_sMsgbufcb[i-1].pNxtSndTsk));

            cnt = sprintf(tmpbuf.buf+tmpbuf.size,"start adr.  :%08x\n",
                      pMsgbufcb->bufst);
            tmpbuf.size += cnt;

            cnt = sprintf(tmpbuf.buf+tmpbuf.size,"end adr.    :%08x\n",
                      pMsgbufcb->bufend);
            tmpbuf.size += cnt;

            cnt = sprintf(tmpbuf.buf+tmpbuf.size,"head point  :%08x\n",
                      pMsgbufcb->head);
            tmpbuf.size += cnt;

            cnt = sprintf(tmpbuf.buf+tmpbuf.size,"tail point  :%08x\n",
                      pMsgbufcb->tail);
            tmpbuf.size += cnt;

            cnt = sprintf(tmpbuf.buf+tmpbuf.size,"max msgsize :%08x\n",
                      pMsgbufcb->maxmsz);
            tmpbuf.size += cnt;

            if(pMsgbufcb->ubEmpty == 1){          /* set message char */
                strcpy(msgchar, "NONE MESSAGE");
            }else{
                strcpy(msgchar, "MESSAGE");
            }

            cnt = sprintf(tmpbuf.buf+tmpbuf.size,"empty flag  :%s\n", msgchar);
            tmpbuf.size += cnt;

            cnt = sprintf(tmpbuf.buf+tmpbuf.size,"\n");
            tmpbuf.size += cnt;
        }   
    }
    tmpbuf.size ++;                     /* ++ is null */
    return (int*)&tmpbuf;
}

//***********************************************************************
//  3.8 Control Block Data (call mpl)
//  This function is called from db33.This iprint_mbf command prints 
//  ROS33 variable memory pool control block data.
//***********************************************************************
int *iprint_mpl(int arg1, int arg2, int arg3)

{
    T_MPLCB* pMplcb;
    int i;

    rtncode = chk_param(arg1, arg2, MPLBLK_NUM);

    if(rtncode < 0){
        cnt = sprintf(tmpbuf.buf,"NONE\n");
        tmpbuf.size = cnt+1;      /* +1 is null */
        return (int*)&tmpbuf;
    }

    if(rtncode == 0){
        cnt = sprintf(tmpbuf.buf,"ID  ROW QUEUE\n");
        tmpbuf.size = cnt;

        for(i = stano; i <= endno; i++){

            if(chk_prtbuf(80) < 0) break;

            pMplcb = (T_MPLCB*)&g_sMplcb[i-1];

            if(pMplcb->StartAlloc == 0){          /* not vcre_mpl */
                cnt = sprintf(tmpbuf.buf+tmpbuf.size,"%-3d (NONE)\n", i);
                tmpbuf.size += cnt;
            }else{
                cnt = sprintf(tmpbuf.buf+tmpbuf.size,"%-3d %-3u ",
                          i, pMplcb->ulRow);
                tmpbuf.size += cnt;

                print_queue((T_NODE*)&g_sMplcb[i-1]);

            }
        }
        tmpbuf.size ++;                     /* ++ is null */
        return (int*)&tmpbuf;
    }

    tmpbuf.size = 0;           /* init size */
    for(i = stano; i <= endno; i++){

        if(chk_prtbuf(512) < 0) break;

        cnt = sprintf(tmpbuf.buf+tmpbuf.size,"*** MPLID = %d\n", i);
        tmpbuf.size += cnt;

        pMplcb = (T_MPLCB*)&g_sMplcb[i-1];

        if(pMplcb->StartAlloc == 0){              /* not vcre_mpl */
            cnt = sprintf(tmpbuf.buf+tmpbuf.size,"(NONE)\n");
            tmpbuf.size += cnt;
        }else{
            cnt = sprintf(tmpbuf.buf+tmpbuf.size,"mplcb adr.  :%08x\n", pMplcb);
            tmpbuf.size += cnt;

            cnt = sprintf(tmpbuf.buf+tmpbuf.size,"wait queue  :");
            tmpbuf.size += cnt;

            print_queue((T_NODE*)&g_sMplcb[i-1]);

            cnt = sprintf(tmpbuf.buf+tmpbuf.size,"start adr.  :%08x\n",
                      pMplcb->StartAlloc);
            tmpbuf.size += cnt;

            cnt = sprintf(tmpbuf.buf+tmpbuf.size,"end adr.    :%08x\n",
                      pMplcb->EndAlloc);
            tmpbuf.size += cnt;

            cnt = sprintf(tmpbuf.buf+tmpbuf.size,"next point  :%08x\n",
                      pMplcb->NxtAlcp);
            tmpbuf.size += cnt;

            cnt = sprintf(tmpbuf.buf+tmpbuf.size,"next table  :%08x\n",
                      pMplcb->TblPtr);
            tmpbuf.size += cnt;

            cnt = sprintf(tmpbuf.buf+tmpbuf.size,"row counter :%u\n",
                      pMplcb->ulRow);
            tmpbuf.size += cnt;

            if(pMplcb->ulRow > 0){
                                                  /* print memory block */
                print_memblk(pMplcb);

            }
        }
        cnt = sprintf(tmpbuf.buf+tmpbuf.size,"\n");
        tmpbuf.size += cnt;
    }
    tmpbuf.size ++;                     /* ++ is null */
    return (int*)&tmpbuf;
}

//***********************************************************************
//  3.9 Control Block Data (call mpf)
//  This function is called from db33.This iprint_mbf command prints 
//  ROS33 fixed memory pool control block data.
//***********************************************************************
int *iprint_mpf(int arg1, int arg2, int arg3)
{
    T_MPLCB* pMpfcb;
    int i;

    rtncode = chk_param(arg1, arg2, MPFBLK_NUM);

    if(rtncode < 0){
        cnt = sprintf(tmpbuf.buf,"NONE\n");
        tmpbuf.size = cnt+1;      /* +1 is null */
        return (int*)&tmpbuf;
    }

    if(rtncode == 0){
        cnt = sprintf(tmpbuf.buf,"ID  ROW QUEUE\n");
        tmpbuf.size = cnt;

        for(i = stano; i <= endno; i++){

            if(chk_prtbuf(80) < 0) break;

            pMpfcb = (T_MPLCB*)&g_sMpfcb[i-1];

            if(pMpfcb->StartAlloc == 0){          /* not vcre_mpf */
                cnt = sprintf(tmpbuf.buf+tmpbuf.size,"%-3d (NONE)\n", i);
                tmpbuf.size += cnt;
            }else{
                cnt = sprintf(tmpbuf.buf+tmpbuf.size,"%-3d %-3u", i,
                          pMpfcb->ulRow);
                tmpbuf.size += cnt;

                print_queue((T_NODE*)&g_sMpfcb[i-1]);

            }
        }
        tmpbuf.size ++;                     /* ++ is null */
        return (int*)&tmpbuf;
    }

    tmpbuf.size = 0;           /* init size */
    for(i = stano; i <= endno; i++){

        if(chk_prtbuf(512) < 0) break;

        cnt = sprintf(tmpbuf.buf+tmpbuf.size,"*** MPFID = %d\n", i);
        tmpbuf.size += cnt;
        pMpfcb = (T_MPLCB*)&g_sMpfcb[i-1];

        if(pMpfcb->StartAlloc == 0){              /* not vcre_mpf */
            cnt = sprintf(tmpbuf.buf+tmpbuf.size,"(NONE)\n");
            tmpbuf.size += cnt;
        }else{
            cnt = sprintf(tmpbuf.buf+tmpbuf.size,"mpfcb adr.  :%08x\n",
                      pMpfcb);
            tmpbuf.size += cnt;

            cnt = sprintf(tmpbuf.buf+tmpbuf.size,"wait queue  :");
            tmpbuf.size += cnt;

            print_queue((T_NODE*)&g_sMpfcb[i-1]);

            cnt = sprintf(tmpbuf.buf+tmpbuf.size,"start adr.  :%08x\n",
                      pMpfcb->StartAlloc);
            tmpbuf.size += cnt;

            cnt = sprintf(tmpbuf.buf+tmpbuf.size,"end adr.    :%08x\n",
                      pMpfcb->EndAlloc);
            tmpbuf.size += cnt;

            cnt = sprintf(tmpbuf.buf+tmpbuf.size,"next point  :%08x\n",
                      pMpfcb->NxtAlcp);
            tmpbuf.size += cnt;

            cnt = sprintf(tmpbuf.buf+tmpbuf.size,"next table  :%08x\n",
                      pMpfcb->TblPtr);
            tmpbuf.size += cnt;

            cnt = sprintf(tmpbuf.buf+tmpbuf.size,"row counter :%u\n",
                      pMpfcb->ulRow);
            tmpbuf.size += cnt;

            cnt = sprintf(tmpbuf.buf+tmpbuf.size,"block size  :%u\n",
                      pMpfcb->ulBlksz);
            tmpbuf.size += cnt;

            if(pMpfcb->ulRow > 0){
                                                  /* print memory block */
                print_memblk(pMpfcb);

            }
        }
        cnt = sprintf(tmpbuf.buf+tmpbuf.size,"\n");
        tmpbuf.size += cnt;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -