2014-04-10 4 views
1
int netif_rx(struct sk_buff *skb) 
{ 
if(skb -> stamp.tv_sec ==0) 
do_gettimeofday(&skb->stamp); 
} 

위 api는 발신자로부터 데이터를 수신하는 수신자 측 api입니다. 데이터를 수신하여 버퍼에 저장할 때 t시간을 계산하고 싶습니다. 위의 api는 2990 행의 커널 소스 코드에서 사용할 수 있습니다. /linux/net/core/dev.c
하지만 struct sk_buff에 stamp라는 멤버가 없으므로 오류가 발생합니다.리눅스 커널의 타임 스탬프를 얻는 방법은 무엇입니까?

http://lxr.free-electrons.com/source/include/linux/skbuff.h 누가 도와 주시겠습니까? 리눅스 커널의 타임 스탬프를받는 방법.

나중에 내가 내 코드를 변경 :

int netif_rx(struct sk_buff *skb) 
    { 
    if(skb -> tstamp.off_sec ==0) 
    do_gettimeofday(&skb->tstamp); 
    } 

로 지금은 점점 오전 오류 : ktime_t는 "tv_sec가"라는 이름의 일원이이 없습니다. struct timeval하지만 인수는 unio ktime_t 유형입니다.

답변

-2

stamp 대신 tstamp을 사용해보십시오.

+0

구조 경로는 다음과 같습니다. skb-> tstamp.tv.sec –

0

sk_buff->tstampktime_t 유형의 변수입니다. do_gettimeofday은 변수에 시간을 struct timeval으로 설정합니다. 여기에 다른 유형이 있으므로 전환이 필요합니다. 간단한 것은 다음과 같습니다 :

관련 문제