nifh.inc 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. const
  2. IF_NAMESIZE = 16;
  3. type
  4. Pif_nameindex = ^_if_nameindex;
  5. _if_nameindex = record
  6. if_index : dword;
  7. if_name : Pchar;
  8. end;
  9. P_if_nameindex = ^_if_nameindex;
  10. Const
  11. IFF_UP = $1;
  12. IFF_BROADCAST = $2;
  13. IFF_DEBUG = $4;
  14. IFF_LOOPBACK = $8;
  15. IFF_POINTOPOINT = $10;
  16. IFF_NOTRAILERS = $20;
  17. IFF_RUNNING = $40;
  18. IFF_NOARP = $80;
  19. IFF_PROMISC = $100;
  20. IFF_ALLMULTI = $200;
  21. IFF_MASTER = $400;
  22. IFF_SLAVE = $800;
  23. IFF_MULTICAST = $1000;
  24. IFF_PORTSEL = $2000;
  25. IFF_AUTOMEDIA = $4000;
  26. type
  27. Pifaddr = ^ifaddr;
  28. ifaddr = record
  29. ifa_addr : sockaddr;
  30. ifa_ifu : record
  31. case longint of
  32. 0 : ( ifu_broadaddr : sockaddr );
  33. 1 : ( ifu_dstaddr : sockaddr );
  34. end;
  35. ifa_ifp : Pointer; // Piface;
  36. ifa_next : Pifaddr;
  37. end;
  38. Pifmap = ^ifmap;
  39. ifmap = record
  40. mem_start : dword;
  41. mem_end : dword;
  42. base_addr : word;
  43. irq : byte;
  44. dma : byte;
  45. port : byte;
  46. end;
  47. const
  48. IFHWADDRLEN = 6;
  49. IFNAMSIZ = IF_NAMESIZE;
  50. type
  51. Pifreq = ^ifreq;
  52. ifreq = record
  53. ifr_ifrn : record
  54. case longint of
  55. 0 : ( ifrn_name : array[0..(IFNAMSIZ)-1] of char );
  56. end;
  57. ifr_ifru : record
  58. case longint of
  59. 0 : ( ifru_addr : sockaddr );
  60. 1 : ( ifru_dstaddr : sockaddr );
  61. 2 : ( ifru_broadaddr : sockaddr );
  62. 3 : ( ifru_netmask : sockaddr );
  63. 4 : ( ifru_hwaddr : sockaddr );
  64. 5 : ( ifru_flags : smallint );
  65. 6 : ( ifru_ivalue : longint );
  66. 7 : ( ifru_mtu : longint );
  67. 8 : ( ifru_map : ifmap );
  68. 9 : ( ifru_slave : array[0..(IFNAMSIZ)-1] of char );
  69. 10 : ( ifru_newname : array[0..(IFNAMSIZ)-1] of char );
  70. 11 : ( ifru_data : __caddr_t );
  71. end;
  72. end;
  73. Pifconf = ^ifconf;
  74. ifconf = record
  75. ifc_len : longint;
  76. ifc_ifcu : record
  77. case longint of
  78. 0 : ( ifcu_buf : __caddr_t );
  79. 1 : ( ifcu_req : Pifreq );
  80. end;
  81. end;
  82. function if_nametoindex(__ifname:Pchar):dword;cdecl;external clib name 'if_nametoindex';
  83. function if_indextoname(__ifindex:dword; __ifname:Pchar):Pchar;cdecl;external clib name 'if_indextoname';
  84. function if_nameindex:Pif_nameindex;cdecl;external clib name 'if_nameindex';
  85. procedure if_freenameindex(__ptr:Pif_nameindex);cdecl;external clib name 'if_freenameindex';
  86. { ---------------------------------------------------------------------
  87. Borland compatibility types
  88. ---------------------------------------------------------------------}
  89. Type
  90. TIfNameIndex = _if_nameindex;
  91. PIfNameIndex = ^TIfNameIndex;
  92. TIfAddr = ifaddr;
  93. TIFreq = ifreq;