Subversion Repositories Kolibri OS

Rev

Rev 7693 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

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