]> gitweb.factorcode.org Git - factor.git/blob - basis/unix/linux/ifreq/ifreq.factor
5dc1c0fde226b7fbedea63207197f8f8c14cc973
[factor.git] / basis / unix / linux / ifreq / ifreq.factor
1
2 USING: kernel alien alien.c-types
3        io.sockets
4        unix
5        unix.linux.sockios
6        unix.linux.if ;
7
8 IN: unix.linux.ifreq
9
10 : set-if-addr ( name addr -- )
11   "struct-ifreq" <c-object>
12   rot  ascii string>alien       over set-struct-ifreq-ifr-ifrn
13   swap 0 <inet4> make-sockaddr  over set-struct-ifreq-ifr-ifru
14
15   AF_INET SOCK_DGRAM 0 socket SIOCSIFADDR rot ioctl drop ;
16
17 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
18
19 : set-if-flags ( name flags -- )
20   "struct-ifreq" <c-object>
21   rot  ascii string>alien over set-struct-ifreq-ifr-ifrn
22   swap <short>           over set-struct-ifreq-ifr-ifru
23
24   AF_INET SOCK_DGRAM 0 socket SIOCSIFFLAGS rot ioctl drop ;
25
26 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
27
28 : set-if-dst-addr ( name addr -- )
29   "struct-ifreq" <c-object>
30   rot  ascii string>alien       over set-struct-ifreq-ifr-ifrn
31   swap 0 <inet4> make-sockaddr  over set-struct-ifreq-ifr-ifru
32
33   AF_INET SOCK_DGRAM 0 socket SIOCSIFDSTADDR rot ioctl drop ;
34
35 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
36
37 : set-if-brd-addr ( name addr -- )
38   "struct-ifreq" <c-object>
39   rot  ascii string>alien       over set-struct-ifreq-ifr-ifrn
40   swap 0 <inet4> make-sockaddr  over set-struct-ifreq-ifr-ifru
41
42   AF_INET SOCK_DGRAM 0 socket SIOCSIFBRDADDR rot ioctl drop ;
43
44 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
45
46 : set-if-netmask ( name addr -- )
47   "struct-ifreq" <c-object>
48   rot  ascii string>alien       over set-struct-ifreq-ifr-ifrn
49   swap 0 <inet4> make-sockaddr  over set-struct-ifreq-ifr-ifru
50
51   AF_INET SOCK_DGRAM 0 socket SIOCSIFNETMASK rot ioctl drop ;
52
53 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
54
55 : set-if-metric ( name metric -- )
56   "struct-ifreq" <c-object>
57   rot ascii string>alien over set-struct-ifreq-ifr-ifrn
58   swap <int>            over set-struct-ifreq-ifr-ifru
59
60   AF_INET SOCK_DGRAM 0 socket SIOCSIFMETRIC rot ioctl drop ;