110 lines
2.7 KiB
C
110 lines
2.7 KiB
C
/* smVxLib.h - VxWorks specific backplane driver header file */
|
|
|
|
/* Copyright 1984-2002, 2010 Wind River Systems, Inc. */
|
|
/*
|
|
modification history
|
|
--------------------
|
|
01i,29apr10,pad Moved extern C statement after include statements.
|
|
01h,21mar02,vvv added doc for copyFromMbufs (SPR #20787)
|
|
01g,11jun00,ham removed reference to etherLib.
|
|
01f,23jul93,jmm changed #include "socket.h" to "sys/socket.h" (spr 2033)
|
|
01e,22sep92,rrr added support for c++
|
|
01d,26may92,rrr the tree shuffle
|
|
01c,02may92,elh added mask to smVxInit
|
|
01b,10apr92,elh added startAddr for sequential addressing.
|
|
01a,17nov90,elh written.
|
|
*/
|
|
|
|
#ifndef __INCsmVxLibh
|
|
#define __INCsmVxLibh
|
|
|
|
/* includes */
|
|
|
|
#include "vxWorks.h"
|
|
#include "smLib.h"
|
|
#include "net/mbuf.h"
|
|
#include "net/if.h"
|
|
#include "netinet/if_ether.h"
|
|
#include "drv/netif/if_sm.h"
|
|
#include "errno.h"
|
|
#include "sys/ioctl.h"
|
|
#include "net/unixLib.h"
|
|
#include "net/if_subr.h"
|
|
#include "inetLib.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* defines */
|
|
|
|
#define SM_LOAN FALSE
|
|
#define SM_NUM_LOAN 10
|
|
#define SM_MEM_SIZE 0x10000
|
|
#define SM_INPUT_PKTS 200
|
|
#define NSM 1
|
|
|
|
/*
|
|
* vxWorks convention is to malloc the driver softc structure, whereas
|
|
* UNIX wants this to be a static structure. We provide macros to map
|
|
* these differences.
|
|
*/
|
|
|
|
IMPORT SM_SOFTC * sm_softc[];
|
|
#define UNIT_TO_SOFTC(unit) (sm_softc [unit])
|
|
/* is a struct in sunOS */
|
|
#define etherAddrPtr(eaddr) (eaddr)
|
|
|
|
/* different parameters from sunOs */
|
|
|
|
/* copyFromMbufs may cause unaligned memory accesses. It should not be used. */
|
|
|
|
#define copyFromMbufs(pData, pMbuf, len) \
|
|
copy_from_mbufs ((pData), (pMbuf), (len))
|
|
|
|
#define copyToMbufs(pData, len, off, pIf) \
|
|
copy_to_mbufs ((pData), (len), (off), (pIf))
|
|
|
|
#if 0
|
|
#define do_protocol(eh, pMbuf, acp, len) \
|
|
do_protocol_with_type ((eh)->ether_type, (pMbuf), (acp), (len))
|
|
#endif
|
|
|
|
#define deviceValid(unit) ((sm_softc [unit] != NULL) ? TRUE : FALSE)
|
|
|
|
/* Function declarations */
|
|
|
|
#if defined(__STDC__) || defined(__cplusplus)
|
|
|
|
extern STATUS smVxInit (SM_ANCHOR * pAnchor, char * pMem, int memSize,
|
|
BOOL tasOK,
|
|
#ifndef USE_OFFSET
|
|
int busToLocalOffset,
|
|
#endif
|
|
int cpuMax, int maxPktBytes, u_long startAddr, u_long mask);
|
|
|
|
extern STATUS smVxAttach (int unit, SM_ANCHOR * pAnchor,
|
|
#ifndef USE_OFFSET
|
|
int busToLocalOffset,
|
|
#endif
|
|
int maxInputPkts, int intType, int intArg1, int intArg2,
|
|
int intArg3);
|
|
|
|
extern STATUS smVxInetGet (char * smName, struct in_addr * pSmInet, int cpuNum);
|
|
struct mbuf * smLoanBuild (SM_SOFTC * xs, SM_PKT * pPkt, u_char * pData,
|
|
int len);
|
|
#else
|
|
|
|
extern STATUS smVxInit ();
|
|
extern STATUS smVxAttach ();
|
|
extern STATUS smVxInetGet ();
|
|
struct mbuf * smLoanBuild ();
|
|
|
|
#endif /* __STDC__ */
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* __INCsmVxLibh */
|