root/arch/um/include/shared/net_user.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /*
   3  * Copyright (C) 2002 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com)
   4  */
   5 
   6 #ifndef __UM_NET_USER_H__
   7 #define __UM_NET_USER_H__
   8 
   9 #define ETH_ADDR_LEN (6)
  10 #define ETH_HEADER_ETHERTAP (16)
  11 #define ETH_HEADER_OTHER (26) /* 14 for ethernet + VLAN + MPLS for crazy people */
  12 #define ETH_MAX_PACKET (1500)
  13 
  14 #define UML_NET_VERSION (4)
  15 
  16 struct net_user_info {
  17         int (*init)(void *, void *);
  18         int (*open)(void *);
  19         void (*close)(int, void *);
  20         void (*remove)(void *);
  21         void (*add_address)(unsigned char *, unsigned char *, void *);
  22         void (*delete_address)(unsigned char *, unsigned char *, void *);
  23         int max_packet;
  24         int mtu;
  25 };
  26 
  27 extern void ether_user_init(void *data, void *dev);
  28 extern void iter_addresses(void *d, void (*cb)(unsigned char *,
  29                                                unsigned char *, void *),
  30                            void *arg);
  31 
  32 extern void *get_output_buffer(int *len_out);
  33 extern void free_output_buffer(void *buffer);
  34 
  35 extern int tap_open_common(void *dev, char *gate_addr);
  36 extern void tap_check_ips(char *gate_addr, unsigned char *eth_addr);
  37 
  38 extern void read_output(int fd, char *output_out, int len);
  39 
  40 extern int net_read(int fd, void *buf, int len);
  41 extern int net_recvfrom(int fd, void *buf, int len);
  42 extern int net_write(int fd, void *buf, int len);
  43 extern int net_send(int fd, void *buf, int len);
  44 extern int net_sendto(int fd, void *buf, int len, void *to, int sock_len);
  45 
  46 extern void open_addr(unsigned char *addr, unsigned char *netmask, void *arg);
  47 extern void close_addr(unsigned char *addr, unsigned char *netmask, void *arg);
  48 
  49 extern char *split_if_spec(char *str, ...);
  50 
  51 extern int dev_netmask(void *d, void *m);
  52 
  53 #endif

/* [<][>][^][v][top][bottom][index][help] */