(* Copyright 2017 Anton Krotov This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . *) MODULE NetDevices; IMPORT sys := SYSTEM, K := KOSAPI; CONST //net devices types LOOPBACK* = 0; ETH* = 1; SLIP* = 2; //Link status LINK_DOWN* = 0; LINK_UNKNOWN* = 1; LINK_FD* = 2; //full duplex flag LINK_10M* = 4; LINK_100M* = 8; LINK_1G* = 12; TYPE DEVICENAME* = ARRAY 64 OF CHAR; PROCEDURE Number* (): INTEGER; RETURN K.sysfunc2(74, -1) END Number; PROCEDURE Type* (num: INTEGER): INTEGER; RETURN K.sysfunc2(74, num * 256) END Type; PROCEDURE Name* (num: INTEGER; VAR name: DEVICENAME): BOOLEAN; VAR err: BOOLEAN; BEGIN err := K.sysfunc3(74, num * 256 + 1, sys.ADR(name[0])) = -1; IF err THEN name := "" END RETURN ~err END Name; PROCEDURE Reset* (num: INTEGER): BOOLEAN; RETURN K.sysfunc2(74, num * 256 + 2) # -1 END Reset; PROCEDURE Stop* (num: INTEGER): BOOLEAN; RETURN K.sysfunc2(74, num * 256 + 3) # -1 END Stop; PROCEDURE Pointer* (num: INTEGER): INTEGER; RETURN K.sysfunc2(74, num * 256 + 4) END Pointer; PROCEDURE SentPackets* (num: INTEGER): INTEGER; RETURN K.sysfunc2(74, num * 256 + 6) END SentPackets; PROCEDURE ReceivedPackets* (num: INTEGER): INTEGER; RETURN K.sysfunc2(74, num * 256 + 7) END ReceivedPackets; PROCEDURE SentBytes* (num: INTEGER; VAR hValue: INTEGER): INTEGER; RETURN K.sysfunc22(74, num * 256 + 8, hValue) END SentBytes; PROCEDURE ReceivedBytes* (num: INTEGER; VAR hValue: INTEGER): INTEGER; RETURN K.sysfunc22(74, num * 256 + 9, hValue) END ReceivedBytes; PROCEDURE LinkStatus* (num: INTEGER): INTEGER; RETURN K.sysfunc2(74, num * 256 + 10) END LinkStatus; END NetDevices.