📄 nsmapp.h
字号:
//******************************************************************************
//
// NSMAPP.H
//
// Copyright (c) 2005 National Semiconductor Corporation.
// All Rights Reserved
//
// Management Apps / IOCTL Related Defines
//
//*****************************************************************************
#ifndef _NSM_APP_H_
#define _NSM_APP_H_
#define NSM_APP_INTRO 0xFFFF
#define NSM_REG_READ 0x01
#define NSM_REG_WRITE 0x02
#define NSM_PCI_READ 0x03
#define NSM_PCI_WRITE 0x04
#define NSM_XFER_CFG_SET 0x05
#define NSM_XFER_CFG_GET 0x06
#define NSM_TRANSMIT 0x07
#define NSM_TRANSMIT_STATUS 0x08
#define NSM_TRANSMIT_FLUSH 0x09
#define NSM_RECEIVE 0x0A
#define NSM_RECEIVE_FLUSH 0x0B
#define NSM_STATS 0x0C
#define NS_APP_IOCTL_CODE 0x89FF
#define NS_APP_SIGN 0x0510
#define NS_DRIVER_SIGN 0x1228
#define NS_APP_MAX_PKT_SIZE 2046
#define NS_STATUS_QUEUE_LEN 256 // Packets
// Basic command - Opcode only
typedef struct _NS_APP_CMD{
NS_UINT cmd;
NS_UINT instance;
NS_UINT reserved;
NS_UINT status;
} NS_APP_CMD;
// Register read/write
typedef struct _NS_APP_REG_CMD{
NS_UINT cmd;
NS_UINT instance;
NS_UINT reserved;
NS_UINT status;
NS_UINT offset;
NS_UINT data;
} NS_APP_REG_CMD;
// App to Driver initial handshake
typedef struct _NS_APP_INTRO_CMD{
NS_UINT cmd;
NS_UINT instance;
NS_UINT reserved;
NS_UINT status;
NS_UINT app;
NS_UINT driver;
NS_UINT numPorts;
NS_UINT driverVerMajor;
NS_UINT driverVerMinor;
} NS_APP_INTRO_CMD;
// Register read/write
typedef struct _NS_APP_XFER_CFG_CMD{
NS_UINT cmd;
NS_UINT instance;
NS_UINT reserved;
NS_UINT status;
NS_UINT txDescCnt;
NS_UINT txpQueueCnt;
NS_UINT txBufferLen;
NS_UINT rxDescCnt;
NS_UINT rxBufferLen;
NS_UINT stsQueueSize;
} NS_APP_XFER_CFG_CMD;
// Data Transfer Request
typedef struct _NS_APP_XFER_CMD{
NS_UINT cmd;
NS_UINT instance;
NS_UINT reserved;
NS_UINT status;
// Set by App
NS_UINT pktHandle; // Same need to be used while querying for status
NS_UINT pQueue; // Valid values are 1,2,3 and 4
NS_UINT packetSize;// Actual size of the packet
NS_UINT bufSize; // Size of buffer pointed by buf
NS_UINT flags; // Various OOB directives
#define NSM_APP_XFER_COPY 0x00000001 // Copy the data from driver to app
// Set by Driver
#define NS_APP_MAX_FRAG_INFO 0x4
NS_UINT numDesc; // Number of descriptors used for this xfer
NS_UINT32 cmdSts; // Of the last descriptor
NS_ADDR descPhyAddr[NS_APP_MAX_FRAG_INFO]; //Physical addr of desc
NS_ADDR bufPhyAddr[NS_APP_MAX_FRAG_INFO]; //Physical addr of buffers
NS_UINT morePkts; //Count of pkt completions to follow
// Actual data followes last
} NS_APP_XFER_CMD;
// Driver maintained (Tx/Rx related) stats
typedef struct _NS_APP_STATS_CMD {
NS_UINT cmd;
NS_UINT instance;
NS_UINT reserved;
NS_UINT status;
NS_UINT rxPackets; // total packets received
NS_UINT txPackets; // total packets transmitted
NS_UINT rxBytes; // total bytes received
NS_UINT txBytes; // total bytes transmitted
NS_UINT rxErrors; // bad packets received
NS_UINT txErrors; // packet transmit problems
NS_UINT rxDropped; // no space to note rx completion
NS_UINT txDropped; // no space to note tx completion
// detailed rx_errors:
NS_UINT rxLengthErrors;
NS_UINT rxOverErrors; // receiver ring buff overflow
NS_UINT rxCrcErrors; // recved pkt with crc error
NS_UINT rxFrameErrors; // recv'd frame alignment error
// detailed tx_errors
NS_UINT txCollErrors; // dropped due to excessive collisions
NS_UINT txAbortedErrors; // transmission was aborted
NS_UINT txCarrierErrors; // Carrier sense lost during tx
NS_UINT txFifoErrors; // FIFO underrun occured
NS_UINT txWindowErrors; // Out-of-window collision occured durring tx
} NS_APP_STATS_CMD;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -