Subversion Repositories Kolibri OS

Rev

Rev 7696 | Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. (*
  2.     Copyright 2017 Anton Krotov
  3.  
  4.     This program is free software: you can redistribute it and/or modify
  5.     it under the terms of the GNU Lesser General Public License as published by
  6.     the Free Software Foundation, either version 3 of the License, or
  7.     (at your option) any later version.
  8.  
  9.     This program is distributed in the hope that it will be useful,
  10.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12.     GNU Lesser General Public License for more details.
  13.  
  14.     You should have received a copy of the GNU Lesser General Public License
  15.     along with this program.  If not, see <http://www.gnu.org/licenses/>.
  16. *)
  17.  
  18. MODULE NetDevices;
  19.  
  20. IMPORT sys := SYSTEM, K := KOSAPI;
  21.  
  22.  
  23. CONST
  24.  
  25.   //net devices types
  26.  
  27.   LOOPBACK*        = 0;
  28.   ETH*             = 1;
  29.   SLIP*            = 2;
  30.  
  31.   //Link status
  32.  
  33.   LINK_DOWN*       = 0;
  34.   LINK_UNKNOWN*    = 1;
  35.   LINK_FD*         = 2; //full duplex flag
  36.   LINK_10M*        = 4;
  37.   LINK_100M*       = 8;
  38.   LINK_1G*         = 12;
  39.  
  40.  
  41. TYPE
  42.  
  43.   DEVICENAME* = ARRAY 64 OF CHAR;
  44.  
  45.  
  46. PROCEDURE Number* (): INTEGER;
  47.   RETURN K.sysfunc2(74, -1)
  48. END Number;
  49.  
  50.  
  51. PROCEDURE Type* (num: INTEGER): INTEGER;
  52.   RETURN K.sysfunc2(74, num * 256)
  53. END Type;
  54.  
  55.  
  56. PROCEDURE Name* (num: INTEGER; VAR name: DEVICENAME): BOOLEAN;
  57. VAR err: BOOLEAN;
  58. BEGIN
  59.   err := K.sysfunc3(74, num * 256 + 1, sys.ADR(name[0])) = -1;
  60.   IF err THEN
  61.     name := ""
  62.   END
  63.   RETURN ~err
  64. END Name;
  65.  
  66.  
  67. PROCEDURE Reset* (num: INTEGER): BOOLEAN;
  68.   RETURN K.sysfunc2(74, num * 256 + 2) # -1
  69. END Reset;
  70.  
  71.  
  72. PROCEDURE Stop* (num: INTEGER): BOOLEAN;
  73.   RETURN K.sysfunc2(74, num * 256 + 3) # -1
  74. END Stop;
  75.  
  76.  
  77. PROCEDURE Pointer* (num: INTEGER): INTEGER;
  78.   RETURN K.sysfunc2(74, num * 256 + 4)
  79. END Pointer;
  80.  
  81.  
  82. PROCEDURE SentPackets* (num: INTEGER): INTEGER;
  83.   RETURN K.sysfunc2(74, num * 256 + 6)
  84. END SentPackets;
  85.  
  86.  
  87. PROCEDURE ReceivedPackets* (num: INTEGER): INTEGER;
  88.   RETURN K.sysfunc2(74, num * 256 + 7)
  89. END ReceivedPackets;
  90.  
  91.  
  92. PROCEDURE SentBytes* (num: INTEGER; VAR hValue: INTEGER): INTEGER;
  93.   RETURN K.sysfunc22(74, num * 256 + 8, hValue)
  94. END SentBytes;
  95.  
  96.  
  97. PROCEDURE ReceivedBytes* (num: INTEGER; VAR hValue: INTEGER): INTEGER;
  98.   RETURN K.sysfunc22(74, num * 256 + 9, hValue)
  99. END ReceivedBytes;
  100.  
  101.  
  102. PROCEDURE LinkStatus* (num: INTEGER): INTEGER;
  103.   RETURN K.sysfunc2(74, num * 256 + 10)
  104. END LinkStatus;
  105.  
  106.  
  107. END NetDevices.