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

📄 pgqos.c

📁 VIA VT6524 8口网管交换机源码
💻 C
字号:
/*
 * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.
 * All rights reserved.
 *
 * This software is copyrighted by and is the sole property of
 * VIA Networking Technologies, Inc. This software may only be used
 * in accordance with the corresponding license agreement. Any unauthorized
 * use, duplication, transmission, distribution, or disclosure of this
 * software is expressly forbidden.
 *
 * This software is provided by VIA Networking Technologies, Inc. "as is"
 * and any express or implied warranties, including, but not limited to, the
 * implied warranties of merchantability and fitness for a particular purpose
 * are disclaimed. In no event shall VIA Networking Technologies, Inc.
 * be liable for any direct, indirect, incidental, special, exemplary, or
 * consequential damages.
 *
 *
 * File:    qosdef.c
 *
 * Purpose: QoS module UI definitions
 *
 * Author:  Jenda Jao
 *
 * Date:    Jan 08, 2002
 *
 * Functions:
 *
 * Revision History:
 *
 */


#include "ttyio.h"
#include "engine.h"
#include "eng_act.h"
#include "allpages.h"
#include "pigencfg.h"
#include "cfgstr.h"
#include "pgqos.h"
#include "gen_act.h"
#include "pimsg.h"

#include "str.h"
#include "eng_io.h"
#include "piqos.h"
#include "piportmp.h"

#define g_byQosMode     (g_pSQosPageCfg->byQosMode)


DIRECT_MEMTYPE_CODE SFixLabel aSFixLabelQos[] = {
    {{ 2,32}, g_strQosCfg, 0},
    {{ 3,32}, "=", 17},
    {{ 5,20}, "QoS Mode :", 0},
    {{24, 2}, g_strHelpMsg, 0},
    {{ 7,20}, "Static Port Ingress Priority :", 0},
    {{ 8,20}, "-", 42},
#ifndef __ASIC_VT6524
    {{19,20}, "802.1p Priority [7-0] :", 0},
#else
    {{18,20}, "802.1p Priority [7-0] :", 0},
#endif
};

// assign item
DIRECT_MEMTYPE_CODE SItemListbox aSIListboxQos[] = {
    {&g_byQosMode,  0, 7, 0, g_aszQosMode, 5},
#ifndef __ASIC_VT6524
    {g_pSQosPageCfg->abyStaticPrior, 0, 7, 8, g_aszStaticPortPriorCfg, 3},
#else
    {g_pSQosPageCfg, 6, 7, sizeof(SPort_QosCfg)*8, g_aszStaticPortPriorCfg, 3},
#endif
    {&g_pSQosPageCfg->by8021pMap, 7, 7, 0, g_aszLoHiCfg, 2},
    {&g_pSQosPageCfg->by8021pMap, 6, 6, 0, g_aszLoHiCfg, 2},
    {&g_pSQosPageCfg->by8021pMap, 5, 5, 0, g_aszLoHiCfg, 2},
    {&g_pSQosPageCfg->by8021pMap, 4, 4, 0, g_aszLoHiCfg, 2},
    {&g_pSQosPageCfg->by8021pMap, 3, 3, 0, g_aszLoHiCfg, 2},
    {&g_pSQosPageCfg->by8021pMap, 2, 2, 0, g_aszLoHiCfg, 2},
    {&g_pSQosPageCfg->by8021pMap, 1, 1, 0, g_aszLoHiCfg, 2},
    {&g_pSQosPageCfg->by8021pMap, 0, 0, 0, g_aszLoHiCfg, 2},
};

// all items
DIRECT_MEMTYPE_CODE SVarLabel aSVarLabelQos[] = {
    {{9,20}, &g_SIListboxLogPortName, "", ITEM_LISTBOX, REPEAT_TYPE_RECT_SINGLE, LINK_TYPE_NONE, ROW_NUM_IN_3_FIELD, 15}
};

DIRECT_MEMTYPE_CODE SItem aSItemQos[] = {
    {{ 5,31},    aSIListboxQos,    g_strChgModeMsg, ITEM_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_LISTBOX},
    {{ 9,28},    aSIListboxQos+1,  g_strQosCfgMsg, ITEM_LISTBOX, REPEAT_TYPE_RECT_SINGLE,   LINK_TYPE_NONE, ROW_NUM_IN_3_FIELD, 15},

#ifndef __ASIC_VT6524
    {{20,20},    aSIListboxQos+2,  "", ITEM_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_NONE},
    {{20,20+5},  aSIListboxQos+3,  "", ITEM_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_NONE},
    {{20,20+10}, aSIListboxQos+4,  "", ITEM_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_NONE},
    {{20,20+15}, aSIListboxQos+5,  "", ITEM_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_NONE},
    {{20,20+20}, aSIListboxQos+6,  "", ITEM_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_NONE},
    {{20,20+25}, aSIListboxQos+7,  "", ITEM_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_NONE},
    {{20,20+30}, aSIListboxQos+8,  "", ITEM_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_NONE},
    {{20,20+35}, aSIListboxQos+9,  g_strQosCfgMsg, ITEM_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_NONE},
#else
    {{19,20},    aSIListboxQos+2,  "", ITEM_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_NONE},
    {{19,20+5},  aSIListboxQos+3,  "", ITEM_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_NONE},
    {{19,20+10}, aSIListboxQos+4,  "", ITEM_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_NONE},
    {{19,20+15}, aSIListboxQos+5,  "", ITEM_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_NONE},
    {{19,20+20}, aSIListboxQos+6,  "", ITEM_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_NONE},
    {{19,20+25}, aSIListboxQos+7,  "", ITEM_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_NONE},
    {{19,20+30}, aSIListboxQos+8,  "", ITEM_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_NONE},
    {{19,20+35}, aSIListboxQos+9,  g_strQosCfgMsg, ITEM_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_NONE},
#endif
};


// action
DIRECT_MEMTYPE_CODE SActItem aSActionQos[] = {
    {{22, 12}, g_strActionQuit, PAACT_bQuit},
    {{22, 22}, g_strActionEdit, PAQOS_bEditQosCfg},
    {{22, 32}, g_strActionSave, PAQOS_bSaveQosCfg},
};


// assign page
DIRECT_MEMTYPE_CODE SPage g_SPageQosEbl = {
    aSFixLabelQos, 7,
    aSVarLabelQos, 1,
    aSItemQos, 10,
    aSActionQos, 3,
    PAQOS_bLoadQosCfg
};
// assign page
DIRECT_MEMTYPE_CODE SPage g_SPageQosDis = {
    aSFixLabelQos, 4,
    NULL, 0,
    aSItemQos, 1,
    aSActionQos, 3,
    PAQOS_bLoadQosCfg
};

//////////////////////////////////////////////////////////////////////////

// the array size should be equal to the array size of g_aszQosMode
static BYTE DIRECT_MEMTYPE_CODE s_abyQosPageID[] = {PAGE_QOS_DISABLE, PAGE_QOS_ENABLE, PAGE_QOS_ENABLE, PAGE_QOS_ENABLE, PAGE_QOS_ENABLE};

BOOL PAQOS_bChangeQosPage(void) DIRECT_FUNTYPE_REENT
{
    if (g_byCurPageID != s_abyQosPageID[g_byQosMode])
    {
        g_byCurPageID = s_abyQosPageID[g_byQosMode];
        return RELOAD_PAGE;
    }
    return DONT_RELOAD_PAGE;
}

BOOL PAQOS_bLoadQosCfg(void) DIRECT_FUNTYPE_REENT
{
    PIQOS_vInitPage(g_pSQosPageCfg);
    g_byTotalLineNum = g_byLogIdNum;
    PAQOS_bChangeQosPage();
    return DONT_RELOAD_PAGE;
}

BOOL PAQOS_bEditQosCfg(void) DIRECT_FUNTYPE_REENT
{
    if (PAACT_bEdit())
        return RELOAD_PAGE;

    if (PAQOS_bChangeQosPage())
        ENGvPrintPage();        // in this page, changing page may not reload config, just re-print page only

    return DONT_RELOAD_PAGE;
}

BOOL PAQOS_bSaveQosCfg(void) DIRECT_FUNTYPE_REENT
{
    PIMSG_vPutSavingMsg();
    PIQOS_vSavePage(g_pSQosPageCfg);
    PIMSG_vPutMsgThenPause(OP_OK);
    g_bDataDirty = 0;
    return DONT_RELOAD_PAGE;
}

⌨️ 快捷键说明

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