亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? wncandevio.h

?? cpc-1631的BSP包for VxWorks操作系統(tǒng)
?? H
字號(hào):
/* wncanDevIO.h - WIND NET CAN Device I/O Interface header file. */

/* Copyright 2002-2003 Wind River Systems, Inc. */
#include "copyright_wrs.h"

/*
modification history
--------------------
01e,20sep04,lsg   Gave enum to setFuncSwitch an identifier
01d,17jul04,lsg   Modified _wncan_ctlrconfig to access multiple ctrlSetConfig
                  functions for FlexCAN
01c,08apr04,lsg   Added FlexCAN related info to WNCAN_CTLRCONFIG
01b,21apr04,bjn   Added WNCAN_REG, WNCAN_REG_SET and WNCAN_REG_GET
01a,19Dec02,emcw  created
*/

/*
DESCRIPTION

This file contains the type and function definitions of the Device I/O Interface feature
of WIND NET CAN. 

NOTE

RESTRICTIONS

INCLUDE FILES

  CAN/wnCAN.h
*/

#ifndef __INCwncanDevIOh
#define __INCwncanDevIOh

#ifdef __cplusplus
extern "C" {
#endif


/* ==== Include files ==== */

#include <vxWorks.h>
#include <iosLib.h>
#include <rngLib.h>
#include <semLib.h>
#include <selectLib.h>
#include <string.h>
#include <CAN/wnCAN.h>


/* ==== Constants ==== */

#define WNCAN_LG_BUF_SIZE           200
#define WNCAN_MAX_DATA_LEN            8    /* max #bytes in CAN message data */
#define WNCAN_DEFAULT_RINGBUF_SIZE    4    /* default #CAN msgs in internal buffers */


/* ==== WNCAN DevIO interface ioctl() commands ==== */

/* Base command code */

#define DEVIO_CANCMD_BASE        100

/* Device commands */

#define WNCAN_HALT               (DEVIO_CANCMD_BASE + 1)
#define WNCAN_SLEEP              (DEVIO_CANCMD_BASE + 2)
#define WNCAN_WAKE               (DEVIO_CANCMD_BASE + 3)
#define WNCAN_TX_ABORT           (DEVIO_CANCMD_BASE + 4)
#define WNCAN_RXCHAN_GET         (DEVIO_CANCMD_BASE + 5)
#define WNCAN_TXCHAN_GET         (DEVIO_CANCMD_BASE + 6)
#define WNCAN_RTRREQCHAN_GET     (DEVIO_CANCMD_BASE + 7)
#define WNCAN_RTRRESPCHAN_GET    (DEVIO_CANCMD_BASE + 8)
#define WNCAN_BUSINFO_GET        (DEVIO_CANCMD_BASE + 9)
#define WNCAN_CONFIG_SET         (DEVIO_CANCMD_BASE + 10)
#define WNCAN_CONFIG_GET         (DEVIO_CANCMD_BASE + 11)

/* Channel commands */

#define WNCAN_CHNCONFIG_SET      (DEVIO_CANCMD_BASE + 12)
#define WNCAN_CHNCONFIG_GET      (DEVIO_CANCMD_BASE + 13)
#define WNCAN_CHN_ENABLE         (DEVIO_CANCMD_BASE + 14)
#define WNCAN_CHN_TX             (DEVIO_CANCMD_BASE + 15)
#define WNCAN_CHNMSGLOST_GET     (DEVIO_CANCMD_BASE + 16)
#define WNCAN_CHNMSGLOST_CLEAR   (DEVIO_CANCMD_BASE + 17)

/* Controller-specific commands */

#define WNCAN_CTLRCONFIG_SET     (DEVIO_CANCMD_BASE + 18)
#define WNCAN_CTLRCONFIG_GET     (DEVIO_CANCMD_BASE + 19)
/* Additinal Device commands */

#define WNCAN_REG_SET            (DEVIO_CANCMD_BASE + 20)
#define WNCAN_REG_GET            (DEVIO_CANCMD_BASE + 21)

/* ==== CAN configuration access options ==== */

/* 
   CAN device options 
   Used in flags field of WNCAN_CONFIG struct
*/

#define WNCAN_CFG_NONE         0      /* selects no elements */
#define WNCAN_CFG_INFO         0x1    /* selects information elements only */
#define WNCAN_CFG_GBLFILTER    0x2    /* selects global filter only */
#define WNCAN_CFG_BITTIMING    0x4    /* selects bit timing only */
#define WNCAN_CFG_ALL          0x7    /* selects all elements */

/* 
   CAN channel options 
   Used in flags field of WNCAN_CHNCONFIG struct
*/

#define WNCAN_CHNCFG_NONE         0x000    /* selects no elements */
#define WNCAN_CHNCFG_CHANNEL      0x100    /* selects channel information only */
#define WNCAN_CHNCFG_LCLFILTER    0x200    /* selects local filter only */
#define WNCAN_CHNCFG_RTR          0x400    /* selects RTR bit only */
#define WNCAN_CHNCFG_MODE         0x800    /* selects channel mode only */
#define WNCAN_CHNCFG_ALL          0xF00    /* selects all elements */


/* ==== Structures used for setting/getting CAN configuration ==== */

/* CAN bus information */

typedef struct _wncan_businfo
{
    WNCAN_BusStatus busStatus;  /* bus status */
    WNCAN_BusError  busError;   /* bus error */
}  WNCAN_BUSINFO;


/* CAN device configuration options */

typedef struct _wncan_config
{
    UINT  flags;  /* access options */

    /* read-only items */
    struct 
    {
        WNCAN_VersionInfo    version;     /* WNC version */
        WNCAN_ControllerType ctrlType;    /* CAN controller type */
        XtalFreq             xtalfreq;    /* crystal frequency */
        UCHAR                numChannels; /* total # of channels */
        UINT                 baudRate;    /* computed baudrate bits/sec */
        UINT                 samplePoint; /* percentage of bit time at 
                                             which the bit is sampled.*/
    } info;

    /* read/write items */
    struct 
    {
        ULONG mask;      /* filter mask */
        BOOL  extended;  /* extended flag */
    } filter;

    struct 
    {
        UCHAR tseg1;      /* time quanta for segment 1 */
        UCHAR tseg2;      /* time quanta for segment 2 */
        UCHAR brp;        /* baud rate prescaler */
        UCHAR sjw;        /* syncro jump width */
        BOOL  oversample; /* normal or over-sampling option */
    } bittiming;

}  WNCAN_CONFIG;


/* CAN device register get/set configuration */

typedef struct _wncan_reg
{
    UINT offset;   /* Register offset from base to access */
    UCHAR * pData; /* Pointer to data buffer for read/write */
    UINT length;   /* Length of data in bytes to read/write */
}  WNCAN_REG;


/* CAN channel configuration options */

typedef struct _wncan_chnconfig
{
    UINT  flags;  /* access options */

    /* local filter mask */
    struct 
    {
        ULONG mask;      /* filter mask */
        BOOL  extended;  /* extended flag */
    } filter;

    struct 
    {
        ULONG id;                        /* CAN ID */
        BOOL  extId;                     /* is ID extended or not? */
        UCHAR len;                       /* length */
        UCHAR data[WNCAN_MAX_DATA_LEN];  /* message data */
    } channel;

    BOOL              rtr;   /* RTR bit setting */
    WNCAN_ChannelMode mode;  /* channel mode */

}  WNCAN_CHNCONFIG;


/* CAN controller-specific configuration options */

typedef struct _wncan_ctlrconfig
{
    WNCAN_ControllerType  ctlrType;

    union
    {
        struct
        {
            UCHAR propseg;  /* propagation segment */
        } toucanData;

    struct
        {
        struct intLevelInfo_t{
            UCHAR intSrcNum; /*flexcan interrupt source number, always an input for WNCAN_CTLRCONFIG_SET
                                           and WNCAN_CTLRCONFIG_GET */
            UCHAR intLevel;  /*flexcan interrupt level, for WNCAN_CTLRCONFIG_SET: input, 
                                           for WNCAN_CTLRCONFIG_GET: output */
            UCHAR intPrioLevel;/* priority within interrupt level, for WNCAN_CTLRCONFIG_SET: input, 
                                           for WNCAN_CTLRCONFIG_GET: output */
        } intLevelInfo;  

        UCHAR propseg; 

        enum setFuncSwitch_t{
            WNCAN_FLEXCAN_DEVIO_SET_INTLEVEL=0,
            WNCAN_FLEXCAN_DEVIO_SET_PROPSEG
        }setFuncSwitch;

    } flexcanData;

        /* Other controller-specific structs can be defined here */
        ULONG  dummy;  /* placeholder for future defs */

    } ctlrData;

}  WNCAN_CTLRCONFIG;

/* CAN message */

typedef struct _wncan_chnmsg
{
    ULONG id;                        /* CAN ID */
    BOOL  extId;                     /* is ID extended or not? */
    BOOL  rtr;                       /* remote frame transmit request */
    UCHAR len;                       /* message length */
    UCHAR data[WNCAN_MAX_DATA_LEN];  /* message data */
}  WNCAN_CHNMSG;



/* ==== Internal Device I/O Structures (maybe move to private header file?) ==== */

typedef enum
{
    FD_WNCAN_NONE,
    FD_WNCAN_DEVICE,
    FD_WNCAN_CHANNEL
} WNCAN_FD_TYPE;


typedef STATUS (*CTRLRCONFIGFNTYPE)(void*, void*);

typedef struct  /* DevIO driver information */
{
    DEV_HDR           devHdr;         /* standard I/O System device header */
    WNCAN_BoardType   boardType;      /* CAN board type */
    int               boardIdx;       /* CAN board index */
    int               ctlrIdx;        /* CAN controller index */
    int               numOpenChans;   /* number of open CAN channels */
    BOOL              isDeviceOpen;   /* whether CAN device has been init'ed;
                                         set after CAN_Init() called  */
    SEM_ID            mutex;          /* mutex semaphore for memory access */
    WNCAN_DEVICE     *wncDevice;      /* WNCAN device data structure */

    CTRLRCONFIGFNTYPE ctrlSetConfig;  /* controller-specific functions */
    CTRLRCONFIGFNTYPE ctrlGetConfig;  

} WNCAN_DEVIO_DRVINFO;


typedef struct _devio_fdinfo           /* DevIO file descriptor table info */
{
    WNCAN_DEVIO_DRVINFO* wnDevIODrv;  /* pointer to WNCAN_DEVIO_DRVINFO struct */
    WNCAN_FD_TYPE        devType;     /* indicates which type of data stored here,
                                          device or channel */
    SEL_WAKEUP_LIST      selWakeupList; /* wakeup select list */

    union
    {
        /* CAN device info */
        struct {
            struct _devio_fdinfo **chnInfo; /* allocated channel infos */
        } device;

        /* CAN channel info */
        struct {
            BOOL           enabled;    /* channel up and running flag */
            int            flag;       /* channel access flag */
            ULONG          channel;    /* channel identifier */
            WNCAN_IntType  intType;    /* interrupt status type, WNCAN_INT_TX
                                          or WNCAN_INT_RX */
            RING_ID        inputBuf;   /* input data buffer */
            RING_ID        outputBuf;  /* output data buffer */
        } channel;
    } fdtype;

} WNCAN_DEVIO_FDINFO;


/* ==== Function Prototypes ==== */

#if defined(__STDC__)
extern STATUS wncDevIODevCreate(char*,int,int,int,WNCAN_DEVIO_DRVINFO**);
extern int wncDevIOCreate(WNCAN_DEVIO_DRVINFO*, char*, int);
extern int wncDevIODelete(WNCAN_DEVIO_DRVINFO*, char*);
extern int wncDevIOOpen(WNCAN_DEVIO_DRVINFO*, char*, int, int);
extern STATUS wncDevIOClose(WNCAN_DEVIO_FDINFO*);
extern int wncDevIOReadBuf(WNCAN_DEVIO_FDINFO*, char*, size_t);
extern int wncDevIOWriteBuf(WNCAN_DEVIO_FDINFO*, char*, size_t);
STATUS wncDevIOIoctl(WNCAN_DEVIO_FDINFO*, int, int);
#else
extern STATUS wncDevIODevCreate();
extern int wncDevIOCreate();
extern int wncDevIODelete();
extern int wncDevIOOpen();
extern STATUS wncDevIOClose();
extern int wncDevIOReadBuf();
extern int wncDevIOWriteBuf();
STATUS wncDevIOIoctl();
#endif

#ifdef __cplusplus
}
#endif

#endif /* __INCwncanDevIOh */

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲在线免费播放| 精品国产伦理网| 亚洲免费观看高清完整版在线观看熊 | 色综合久久久久| 国产精品国产自产拍在线| 成人av网站大全| 中文字幕视频一区| 91成人国产精品| 午夜精品视频一区| 精品国产一区二区在线观看| 国产在线观看一区二区| 国产精品网站在线播放| 色婷婷av一区二区| 日韩精品一区第一页| 精品999在线播放| 成人国产精品免费网站| 最新高清无码专区| 色综合久久久网| 亚洲精品日韩一| 国产精品一区二区黑丝| 欧美不卡一二三| www.亚洲在线| 日日夜夜精品免费视频| 国产视频一区二区三区在线观看| 97se亚洲国产综合自在线| 香蕉久久一区二区不卡无毒影院| 日韩久久久精品| 99久久精品一区| 日韩精品一二区| 国产欧美精品一区二区色综合朱莉| 99久久99久久综合| 美女脱光内衣内裤视频久久网站 | 91麻豆6部合集magnet| 午夜免费久久看| 国产日韩欧美制服另类| 欧美人伦禁忌dvd放荡欲情| 国产一区福利在线| 亚洲成a人片综合在线| 久久久久久久久久看片| 欧美日韩精品三区| 国产99精品国产| 日韩成人一级大片| 一区二区三区在线看| 精品国产三级a在线观看| 在线视频观看一区| 国产一区不卡在线| 日韩福利电影在线| 亚洲日本乱码在线观看| 欧美电影免费观看高清完整版在 | 国产精品久久久久桃色tv| 国产盗摄一区二区三区| 欧美中文字幕亚洲一区二区va在线 | 精品一区二区三区久久| 一区二区三区精品久久久| 国产午夜精品美女毛片视频| 欧美日韩不卡一区| 91女人视频在线观看| 国产精品1024| 久久精品国产色蜜蜜麻豆| 亚洲二区在线观看| 亚洲精品视频在线| 精品一二线国产| 婷婷综合久久一区二区三区| 亚洲视频资源在线| 国产精品久久久久一区二区三区| 精品国产网站在线观看| 日韩手机在线导航| 欧美一区二区视频在线观看2020| 在线观看日韩一区| 日本精品免费观看高清观看| 成人精品一区二区三区四区| 国产美女av一区二区三区| 六月丁香婷婷久久| 免费成人结看片| 日韩av一区二区在线影视| 爽爽淫人综合网网站| 亚洲国产欧美在线| 亚洲小说欧美激情另类| 亚洲午夜一区二区三区| 亚洲国产欧美日韩另类综合 | 国产在线精品不卡| 国产一区二三区好的| 国产精品综合av一区二区国产馆| 国内成+人亚洲+欧美+综合在线| 热久久国产精品| 久久er精品视频| 国产一区二区视频在线播放| 国内精品在线播放| 国产成人在线观看| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 99视频超级精品| av亚洲精华国产精华精| 色综合欧美在线视频区| 一本色道a无线码一区v| 欧美私模裸体表演在线观看| 欧美日韩国产一区| 亚洲香肠在线观看| 亚洲第一综合色| 免费视频一区二区| 国产夫妻精品视频| 99精品国产视频| 欧美日韩高清一区二区不卡| 欧美一区二区日韩| 国产午夜精品福利| 亚洲天堂成人在线观看| 婷婷综合久久一区二区三区| 狠狠色狠狠色综合| www.成人网.com| 欧美日韩国产高清一区二区三区| 日韩一区二区三区av| 国产精品丝袜一区| 亚洲午夜激情网站| 国产综合久久久久久鬼色| av欧美精品.com| 欧美另类高清zo欧美| 久久久久九九视频| 尤物视频一区二区| 久久99国产精品久久| 91在线观看下载| 91精品一区二区三区在线观看| 久久精品视频在线免费观看 | 日韩欧美在线网站| 中文一区二区完整视频在线观看| 亚洲国产精品精华液网站| 精品一区二区免费在线观看| 99久久久久免费精品国产 | 中文字幕不卡的av| 亚洲bt欧美bt精品| 成人动漫中文字幕| 欧美一区二区日韩| 亚洲精品五月天| 国产精品一区二区无线| 欧美视频在线播放| 中文字幕在线一区| 麻豆成人91精品二区三区| 色综合久久精品| 久久精品亚洲麻豆av一区二区 | 日韩福利视频网| 99精品偷自拍| 久久人人97超碰com| 天天av天天翘天天综合网| av不卡免费电影| 久久综合久久99| 日韩高清不卡在线| 欧美午夜精品一区二区三区| 国产精品美女久久久久av爽李琼| 男人的天堂亚洲一区| 欧美视频中文字幕| 亚洲色图在线播放| 国产91精品一区二区麻豆网站 | 51精品国自产在线| 一区二区三区四区蜜桃 | 久久久久久久综合色一本| 婷婷综合在线观看| 日本电影亚洲天堂一区| 国产精品超碰97尤物18| 国产精品亚洲一区二区三区妖精| 日韩视频一区二区三区 | 午夜欧美在线一二页| 日本韩国视频一区二区| 综合亚洲深深色噜噜狠狠网站| 国产乱子伦视频一区二区三区| 日韩免费观看2025年上映的电影| 亚洲v精品v日韩v欧美v专区| 欧美中文字幕亚洲一区二区va在线| 成人欧美一区二区三区小说| 国产91精品精华液一区二区三区| www国产精品av| 韩国精品久久久| 精品国产乱码久久久久久夜甘婷婷| 石原莉奈在线亚洲二区| 91精品在线麻豆| 免费看欧美美女黄的网站| 欧美一区午夜视频在线观看| 日本美女一区二区三区视频| 欧美一区二区观看视频| 男人的天堂亚洲一区| 精品福利一区二区三区免费视频| 久久国产精品区| 久久夜色精品一区| 国产成人精品影视| 日韩一区中文字幕| 欧美伊人精品成人久久综合97| 亚洲图片有声小说| 91精品视频网| 韩国视频一区二区| 国产精品色哟哟| 一本高清dvd不卡在线观看| 亚洲综合视频在线观看| 在线成人av网站| 精品一区二区三区在线观看| 日本一区二区久久| 色诱视频网站一区| 亚洲国产日韩综合久久精品| 日韩一区二区三区在线视频| 国产乱子伦视频一区二区三区| 中文字幕一区av| 欧美日本一道本| 国产一区二区影院| 亚洲激情综合网|