Subversion Repositories Kolibri OS

Rev

Rev 7107 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
7693 akron1 1
(*
7107 akron1 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 .
16
*)
17
 
18
MODULE NetDevices;
19
 
20
IMPORT sys := SYSTEM, K := KOSAPI;
21
 
22
 
23
CONST
24
 
25
  //net devices types
26
 
7693 akron1 27
  LOOPBACK*        = 0;
28
  ETH*             = 1;
29
  SLIP*            = 2;
7107 akron1 30
 
31
  //Link status
32
 
7693 akron1 33
  LINK_DOWN*       = 0;
7107 akron1 34
  LINK_UNKNOWN*    = 1;
7693 akron1 35
  LINK_FD*         = 2; //full duplex flag
36
  LINK_10M*        = 4;
37
  LINK_100M*       = 8;
38
  LINK_1G*         = 12;
7107 akron1 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.