On Wed, 24 Apr 2019, Rainer Stratmann wrote:
struct sockaddr_ll {
unsigned short sll_family;
unsigned short sll_protocol;
int sll_ifindex;
unsigned short sll_hatype;
unsigned char sll_pkttype;
unsigned char sll_halen;
unsigned char sll_addr[8];
};
type
sockaddr_ll = record
sll_family : word;
sll_protocol : word;
sll_ifindex : integer;
sll_hatype : word;
sll_pkttype : byte;
sll_halen : byte;
sll_addr: array[ 0 .. 7 ] of byte;
end;
Is this correct?
if you add
{$PPACKRECORDS C}
And make integer a longint (that is always 4 bytes, regardless of the mode
you're compiling in), then it should be OK.
You can always compare with
#include <stdio.h>
#include <yourcheader.h>
int main () {
printf("%d\n",sizeof(struct sockaddr_l));
}
and in pascal
writeln(sizeof(sockaddr_ll));
Michael.
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal