diff options
Diffstat (limited to 'packages/libc/src/nifh.inc')
-rw-r--r-- | packages/libc/src/nifh.inc | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/packages/libc/src/nifh.inc b/packages/libc/src/nifh.inc new file mode 100644 index 0000000000..15ef1588bd --- /dev/null +++ b/packages/libc/src/nifh.inc @@ -0,0 +1,107 @@ + +const + IF_NAMESIZE = 16; + +type + Pif_nameindex = ^_if_nameindex; + _if_nameindex = record + if_index : dword; + if_name : Pchar; + end; + P_if_nameindex = ^_if_nameindex; + + Const + IFF_UP = $1; + IFF_BROADCAST = $2; + IFF_DEBUG = $4; + IFF_LOOPBACK = $8; + IFF_POINTOPOINT = $10; + IFF_NOTRAILERS = $20; + IFF_RUNNING = $40; + IFF_NOARP = $80; + IFF_PROMISC = $100; + IFF_ALLMULTI = $200; + IFF_MASTER = $400; + IFF_SLAVE = $800; + IFF_MULTICAST = $1000; + IFF_PORTSEL = $2000; + IFF_AUTOMEDIA = $4000; + +type + Pifaddr = ^ifaddr; + ifaddr = record + ifa_addr : sockaddr; + ifa_ifu : record + case longint of + 0 : ( ifu_broadaddr : sockaddr ); + 1 : ( ifu_dstaddr : sockaddr ); + end; + ifa_ifp : Pointer; // Piface; + ifa_next : Pifaddr; + end; + + Pifmap = ^ifmap; + ifmap = record + mem_start : dword; + mem_end : dword; + base_addr : word; + irq : byte; + dma : byte; + port : byte; + end; + + +const + IFHWADDRLEN = 6; + IFNAMSIZ = IF_NAMESIZE; + +type + Pifreq = ^ifreq; + ifreq = record + ifr_ifrn : record + case longint of + 0 : ( ifrn_name : array[0..(IFNAMSIZ)-1] of char ); + end; + ifr_ifru : record + case longint of + 0 : ( ifru_addr : sockaddr ); + 1 : ( ifru_dstaddr : sockaddr ); + 2 : ( ifru_broadaddr : sockaddr ); + 3 : ( ifru_netmask : sockaddr ); + 4 : ( ifru_hwaddr : sockaddr ); + 5 : ( ifru_flags : smallint ); + 6 : ( ifru_ivalue : longint ); + 7 : ( ifru_mtu : longint ); + 8 : ( ifru_map : ifmap ); + 9 : ( ifru_slave : array[0..(IFNAMSIZ)-1] of char ); + 10 : ( ifru_newname : array[0..(IFNAMSIZ)-1] of char ); + 11 : ( ifru_data : __caddr_t ); + end; + end; + + Pifconf = ^ifconf; + ifconf = record + ifc_len : longint; + ifc_ifcu : record + case longint of + 0 : ( ifcu_buf : __caddr_t ); + 1 : ( ifcu_req : Pifreq ); + end; + end; + + +function if_nametoindex(__ifname:Pchar):dword;cdecl;external clib name 'if_nametoindex'; +function if_indextoname(__ifindex:dword; __ifname:Pchar):Pchar;cdecl;external clib name 'if_indextoname'; +function if_nameindex:Pif_nameindex;cdecl;external clib name 'if_nameindex'; +procedure if_freenameindex(__ptr:Pif_nameindex);cdecl;external clib name 'if_freenameindex'; + +{ --------------------------------------------------------------------- + Borland compatibility types + ---------------------------------------------------------------------} + +Type + TIfNameIndex = _if_nameindex; + PIfNameIndex = ^TIfNameIndex; + + TIfAddr = ifaddr; + TIFreq = ifreq; |