ptpd_dep.h
来自「最新版IAR FOR ARM(EWARM)5.11中的代码例子」· C头文件 代码 · 共 139 行
H
139 行
/* ptpd_dep.h */
#ifndef PTPD_DEP_H
#define PTPD_DEP_H
#include <string.h>
/*
* Remove the following #if 0 and its matching #endif to enable PTPd debug
* output on UART0. This is disabled by default even in debug builds due to
* the volume of information transmitted.
*/
#if 0
#ifdef DEBUG
#include "../../../../utils/uartstdio.h"
#define PTPD_DBG
/*
* Define the following to enable verbose debug.
*/
#undef PTPD_DBGV
#endif
#endif
#ifndef INT_MAX
#define INT_MAX 2147483647
#endif
#ifndef size_t
#define size_t long
#endif
#ifndef ssize_t
#define ssize_t long
#endif
/* system messages */
#ifndef PTPD_DBG
#define ERROR(...)
#define PERROR(...)
#define NOTIFY(...)
#else
#define ERROR(x, ...) UARTprintf("(ptpd error) " x, ##__VA_ARGS__)
#define PERROR(x, ...) UARTprintf("(ptpd error) " x ": %m\n", ##__VA_ARGS__)
#define NOTIFY(x, ...) UARTprintf("(ptpd notice) " x, ##__VA_ARGS__)
#endif
/* debug messages */
#ifdef PTPD_DBGV
#define PTPD_DBG
#define DBGV(x, ...) UARTprintf("(ptpd debug) " x, ##__VA_ARGS__)
#else
#define DBGV(...)
#endif
#ifdef PTPD_DBG
#define DBG(x, ...) UARTprintf("(ptpd debug) " x, ##__VA_ARGS__)
#else
#define DBG(...)
#endif
/* endian corrections */
#if defined(PTPD_MSBF)
#define shift8(x,y) ( (x) << ((3-y)<<3) )
#define shift16(x,y) ( (x) << ((1-y)<<4) )
#define flip16(x) (x)
#define flip32(x) (x)
#elif defined(PTPD_LSBF)
#define shift8(x,y) ( (x) << ((y)<<3) )
#define shift16(x,y) ( (x) << ((y)<<4) )
#define flip16(x) ((((x) >> 8) & 0x00ff) | (((x) << 8) & 0xff00))
#define flip32(x) ((((x) >> 24) & 0x000000ff) | \
(((x) >> 8 ) & 0x0000ff00) | \
(((x) << 8 ) & 0x00ff0000) | \
(((x) << 24) & 0xff000000))
#endif
/* bit array manipulation */
#define getFlag(x,y) !!( *(UInteger8*)((x)+((y)<8?1:0)) & (1<<((y)<8?(y):(y)-8)) )
#define setFlag(x,y) ( *(UInteger8*)((x)+((y)<8?1:0)) |= 1<<((y)<8?(y):(y)-8) )
#define clearFlag(x,y) ( *(UInteger8*)((x)+((y)<8?1:0)) &= ~(1<<((y)<8?(y):(y)-8)) )
#define labs(x) (((x) >= 0) ? (x) : -(x))
/* msg.c */
Boolean msgPeek(char*,size_t);
void msgUnpackHeader(char*,MsgHeader*);
void msgUnpackSync(char*,MsgSync*);
void msgUnpackDelayReq(char*,MsgDelayReq*);
void msgUnpackFollowUp(char*,MsgFollowUp*);
void msgUnpackDelayResp(char*,MsgDelayResp*);
void msgUnpackManagement(char*,MsgManagement*);
UInteger8 msgUnloadManagement(char*,MsgManagement*,PtpClock*,RunTimeOpts*);
void msgUnpackManagementPayload(char *buf, MsgManagement *manage);
void msgPackHeader(char*,PtpClock*);
void msgPackSync(char*,Boolean,TimeRepresentation*,PtpClock*);
void msgPackDelayReq(char*,Boolean,TimeRepresentation*,PtpClock*);
void msgPackFollowUp(char*,UInteger16,TimeRepresentation*,PtpClock*);
void msgPackDelayResp(char*,MsgHeader*,TimeRepresentation*,PtpClock*);
UInteger16 msgPackManagement(char*,MsgManagement*,PtpClock*);
UInteger16 msgPackManagementResponse(char*,MsgHeader*,MsgManagement*,PtpClock*);
/* net.c */
Boolean netInit(NetPath*,RunTimeOpts*,PtpClock*);
Boolean netShutdown(NetPath*);
int netSelect(TimeInternal*,NetPath*);
size_t netRecvEvent(Octet*,TimeInternal*,NetPath*);
size_t netRecvGeneral(Octet*,NetPath*);
size_t netSendEvent(Octet*,UInteger16,NetPath*);
size_t netSendGeneral(Octet*,UInteger16,NetPath*);
/* servo.c */
void initClock(RunTimeOpts*,PtpClock*);
void updateDelay(TimeInternal*,TimeInternal*,
one_way_delay_filter*,RunTimeOpts*,PtpClock*);
void updateOffset(TimeInternal*,TimeInternal*,
offset_from_master_filter*,RunTimeOpts*,PtpClock*);
void updateClock(RunTimeOpts*,PtpClock*);
/* sys.c */
void displayStats(RunTimeOpts*,PtpClock*);
Boolean nanoSleep(TimeInternal*);
void getTime(TimeInternal*);
void setTime(TimeInternal*);
UInteger16 getRand(UInteger32*);
Boolean adjFreq(Integer32);
/* timer.c */
void initTimer(void);
void timerTick(int);
void timerUpdate(IntervalTimer*);
void timerStop(UInteger16,IntervalTimer*);
void timerStart(UInteger16,UInteger16,IntervalTimer*);
Boolean timerExpired(UInteger16,IntervalTimer*);
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?