Sponsored Content
Top Forums UNIX for Dummies Questions & Answers Build Error: error: dereferencing pointer to incomplete type Post 302307794 by katwala on Thursday 16th of April 2009 10:52:25 AM
Old 04-16-2009
Network Build Error: error: dereferencing pointer to incomplete type

I'm getting the following Error:

prepare_pcap.c: In function `prepare_pkts':
prepare_pcap.c:127: error: dereferencing pointer to incomplete type
prepare_pcap.c:138: error: dereferencing pointer to incomplete type

====================================

This is the part of the relevant Code:

-----PREPARE_PCAP.H-----------

#if defined(__HPUX) || defined(__DARWIN) || defined(__CYGWIN) || defined(__FreeBSD__)
struct iphdr
{
#ifdef _HPUX_LI
unsigned int ihl:4;
unsigned int version:4;
#else
unsigned int version:4;
unsigned int ihl:4;
#endif
u_int8_t tos;
u_int16_t tot_len;
u_int16_t id;
u_int16_t frag_off;
u_int8_t ttl;
u_int8_t protocol;
u_int16_t check;
u_int32_t saddr;
u_int32_t daddr;
/*The options start here. */
};

------PREPARE_PCAP.C---------

int prepare_pkts(char *file, pcap_pkts *pkts) {
pcap_t *pcap;
struct pcap_pkthdr *pkthdr = NULL;
.....
struct iphdr *iphdr;

.....
iphdr = (struct iphdr *)((char *)ethhdr + sizeof(*ethhdr)); <<<LINE 127
if (iphdr && iphdr->version == 6) {
//ipv6
pktlen = (u_long) pkthdr->len - sizeof(*ethhdr) - sizeof(*ip6hdr);


----------------------------
This is where the error occurs. Can anyone please give me suggestion?

Thank you in Advance.
 

10 More Discussions You Might Find Interesting

1. Programming

Accesing structure member:Error:dereferencing pointer to incomplete type

$ gcc -Wall -Werror struct.c struct.c: In function `main': struct.c:18: error: dereferencing pointer to incomplete type $ cat struct.c #include <stdio.h> #include <stdlib.h> #include <string.h> /*Declaration of structure*/ struct human { char *first; char gender; int age; } man,... (3 Replies)
Discussion started by: amit4g
3 Replies

2. Programming

array type has incomplete element type

Dear colleagues, One of my friend have a problem with c code. While compiling a c program it displays a message like "array type has incomplete element type". Any body can provide a solution for it. Jaganadh.G (1 Reply)
Discussion started by: jaganadh
1 Replies

3. Programming

error: field has incomplete type

Hello there, Here is how it goes - I have written a small test driver as an exercise to "Linux Device Drivers" and as a preparation for writing a real, functional driver. For the sake of seeing how far I got it working (I already implemented the open(0, read(), write() and ioctl() calls) I... (4 Replies)
Discussion started by: boyanov
4 Replies

4. Solaris

make[2]: warning: Clock skew detected. Your build may be incomplete.

dear all when i compile any file under solaris it gives the below warning how can i disable it -bash-3.00$ make GNLPFT177 make: Warning: File `GNLPFT177.rc' has modification time 36 s in the future make GNLPFT177.c make: Entering directory `/devapp/jordev/batch/source' make: Warning: File... (3 Replies)
Discussion started by: murad.jaber
3 Replies

5. Programming

error: field `fatx_i' has incomplete type

I'm trying to compile a 2.4.26 kernel but I have to apply two patches to it. The patches are: linux-2.4.26-xbox.patch openMosix-2.4.26-1 This is the reason that it doesn't compile. There is only one error but I'm not familiar with C or C++(Unfortunately only Java and some lower-level... (2 Replies)
Discussion started by: lateralus01
2 Replies

6. Programming

Dereferencing pointer to incomplete type

// Hello all, I am having this error "Dereferencing pointer to incomplete type " on these 2 lines: xpoint = my_point->x; ypoint = my_point->y; I am having no clue y this is happening. Any help would be greately appreciated!!!! #include<stdio.h> #include<string.h>... (2 Replies)
Discussion started by: mind@work
2 Replies

7. Programming

Dereferencing pointer to a shared memory struct

I have what should be a relatively simple program (fadec.c) that maps a struct from an included header file (fadec.h) to a shared memory region, but I’m struggling accessing members in the struct from the pointer returned by shmat. Ultimately, I want to access members in the shared memory structure... (2 Replies)
Discussion started by: arette
2 Replies

8. UNIX for Advanced & Expert Users

find -exec with 2 commands doesn't work (error incomplete staement)

Hi Gurues, I need to modify an existing script that uses find to search a folder, and then move its contents to a folder. What I need to do is run gzip on each file after it's moved. So, I ran this little test: Put a ls.tar file on my $HOME, mkdir tmp, and then: virtuo@tnpmprd01: find .... (3 Replies)
Discussion started by: llagos
3 Replies

9. Programming

Compilation Error: dereferencing pointer to incomplete type

I am getting a dereferencing pointer to incomplete type error when i compile the following code on lines highlighted in red. Can anyone help me in identifying what is wrong in the code? #include<stdio.h> #include<stdlib.h> typedef struct{ int info; struct node* link ; } node; void... (3 Replies)
Discussion started by: sreeharshasn
3 Replies

10. Programming

Warning: pointer type mismatch

Hi all, I'm new programming in C, so I had the next message in my code: Dual.c:88:20: warning: pointer type mismatch in conditional expression : &clientSa.sin6.sin6.sin6_addr, Any help would be great #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include... (1 Reply)
Discussion started by: godna
1 Replies
MDCHAIN(9)						   BSD Kernel Developer's Manual						MDCHAIN(9)

NAME
mdchain, md_initm, md_done, md_append_record, md_next_record, md_get_uint8, md_get_uint16, md_get_uint16be, md_get_uint16le, md_get_uint32, md_get_uint32be, md_get_uint32le, md_get_int64, md_get_int64be, md_get_int64le, md_get_mem, md_get_mbuf, md_get_uio -- set of functions to dissect an mbuf chain to various data types SYNOPSIS
options LIBMCHAIN kldload libmchain #include <sys/param.h> #include <sys/uio.h> #include <sys/mchain.h> void md_initm(struct mdchain *mdp, struct mbuf *m); void md_done(struct mdchain *mdp); void md_append_record(struct mdchain *mdp, struct mbuf *top); int md_next_record(struct mdchain *mdp); int md_get_uint8(struct mdchain *mdp, u_int8_t *x); int md_get_uint16(struct mdchain *mdp, u_int16_t *x); int md_get_uint16be(struct mdchain *mdp, u_int16_t *x); int md_get_uint16le(struct mdchain *mdp, u_int16_t *x); int md_get_uint32(struct mdchain *mdp, u_int32_t *x); int md_get_uint32be(struct mdchain *mdp, u_int32_t *x); int md_get_uint32le(struct mdchain *mdp, u_int32_t *x); int md_get_int64(struct mdchain *mdp, int64_t *x); int md_get_int64be(struct mdchain *mdp, int64_t *x); int md_get_int64le(struct mdchain *mdp, int64_t *x); int md_get_mem(struct mdchain *mdp, caddr_t target, int size, int type); int md_get_mbuf(struct mdchain *mdp, int size, struct mbuf **m); int md_get_uio(struct mdchain *mdp, struct uio *uiop, int size); DESCRIPTION
These functions are used to decompose mbuf chains to various data types. The mdchain structure is used as a working context and should be initialized through a call of the mb_initm() function. It has the following fields: md_top (struct mbuf *) A pointer to the top of the parsed mbuf chain. md_cur (struct mbuf *) A pointer to the currently parsed mbuf. md_pas (int) Offset in the current mbuf. The md_done() function disposes of an mbuf chain pointed to by the mdp->md_top field and sets the field to NULL. The md_append_record() appends a new mbuf chain using m_nextpkt field to form a single linked list of mbuf chains. If the mdp->md_top field is NULL, then this function behaves exactly as the md_initm() function. The md_next_record() function extracts the next mbuf chain and disposes the current one, if any. For a new mbuf chain it calls the md_initm() function. If there is no data left the function returns ENOENT. All md_get_*() functions perform an actual copy of the data from an mbuf chain. Functions which have le or be suffixes will perform conver- sion to the little- or big-endian data formats. md_get_mem() function copies size bytes of data specified by the source argument from an mbuf chain. The type argument specifies the method used to perform a copy, and can be one of the following: MB_MSYSTEM Use the bcopy() function. MB_MUSER Use the copyin(9) function. MB_MINLINE Use an ``inline'' loop which does not call any function. If target is NULL, an actual copy is not performed and the function just skips the given number of bytes. RETURN VALUES
All int functions return zero if successful, otherwise an error code is returned. Note: after failure of any function, an mbuf chain is left in the broken state and only the md_done() function can safely be called to destroy it. EXAMPLES
struct mdchain *mdp; struct mbuf *m; u_int16_t length; u_int8_t byte; receive(so, &m); md_initm(mdp, m); if (md_get_uint8(mdp, &byte) != 0 || md_get_uint16le(mdp, &length) != 0) error = EBADRPC; mb_done(mdp); SEE ALSO
mbchain(9), mbuf(9) AUTHORS
This manual page was written by Boris Popov <bp@FreeBSD.org>. BSD
February 28, 2001 BSD
All times are GMT -4. The time now is 07:57 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy