forked from Bananymous/banan-os
				
			
		
			
				
	
	
		
			57 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
| #ifndef _NET_IF_H
 | |
| #define _NET_IF_H 1
 | |
| 
 | |
| // https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/net_if.h.html
 | |
| 
 | |
| #include <sys/cdefs.h>
 | |
| 
 | |
| #include <sys/socket.h>
 | |
| 
 | |
| #define IF_NAMESIZE 16
 | |
| 
 | |
| __BEGIN_DECLS
 | |
| 
 | |
| struct if_nameindex
 | |
| {
 | |
| 	unsigned if_index;	/* Numeric index of the interface. */
 | |
| 	char* if_name;		/* Null-terminated name of the interface. */
 | |
| };
 | |
| 
 | |
| struct ifreq
 | |
| {
 | |
| 	union {
 | |
| 		char ifrn_name[IF_NAMESIZE];
 | |
| 	} ifr_ifrn;
 | |
| 
 | |
| 	union {
 | |
| 		struct sockaddr ifru_addr;
 | |
| 		struct sockaddr ifru_netmask;
 | |
| 		struct sockaddr ifru_gwaddr;
 | |
| 		struct sockaddr ifru_hwaddr;
 | |
| 		unsigned char __min_storage[sizeof(struct sockaddr) + 6];
 | |
| 	} ifr_ifru;
 | |
| };
 | |
| #define ifr_name    ifr_ifrn.ifrn_name
 | |
| #define ifr_addr    ifr_ifru.ifru_addr
 | |
| #define ifr_netmask ifr_ifru.ifru_addrnetmask
 | |
| #define ifr_gwaddr  ifr_ifru.ifru_addrgwaddr
 | |
| #define ifr_hwaddr  ifr_ifru.ifru_addrhwaddr
 | |
| 
 | |
| #define SIOCGIFADDR		1	/* Get interface address */
 | |
| #define SIOCSIFADDR		2	/* Set interface address */
 | |
| #define SIOCGIFNETMASK	3	/* Get network mask */
 | |
| #define SIOCSIFNETMASK	4	/* Set network mask */
 | |
| #define SIOCGIFGWADDR	5	/* Get gateway address */
 | |
| #define SIOCSIFGWADDR	6	/* Set gateway address */
 | |
| #define SIOCGIFHWADDR	7	/* Get hardware address */
 | |
| #define SIOCGIFNAME		8	/* Get interface name */
 | |
| 
 | |
| void					if_freenameindex(struct if_nameindex* ptr);
 | |
| char*					if_indextoname(unsigned ifindex, char* ifname);
 | |
| struct if_nameindex*	if_nameindex(void);
 | |
| unsigned				if_nametoindex(const char* ifname);
 | |
| 
 | |
| __END_DECLS
 | |
| 
 | |
| #endif
 |