mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-22 22:07:20 +07:00
b1a951fe46
Several locations in the stack need to handle ipv4/ipv6 (with scope) and port strings conversion to sockaddr. Add a helper that takes either AF_INET, AF_INET6 or AF_UNSPEC (for wildcard) to centralize this handling. Suggested-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Christoph Hellwig <hch@lst.de> Acked-by: David S. Miller <davem@davemloft.net> Signed-off-by: Sagi Grimberg <sagi@grimberg.me> Signed-off-by: Jens Axboe <axboe@fb.com>
64 lines
2.8 KiB
C
64 lines
2.8 KiB
C
/*
|
|
* Swansea University Computer Society NET3
|
|
*
|
|
* This work is derived from NET2Debugged, which is in turn derived
|
|
* from NET2D which was written by:
|
|
* Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
|
|
*
|
|
* This work was derived from Ross Biro's inspirational work
|
|
* for the LINUX operating system. His version numbers were:
|
|
*
|
|
* $Id: Space.c,v 0.8.4.5 1992/12/12 19:25:04 bir7 Exp $
|
|
* $Id: arp.c,v 0.8.4.6 1993/01/28 22:30:00 bir7 Exp $
|
|
* $Id: arp.h,v 0.8.4.6 1993/01/28 22:30:00 bir7 Exp $
|
|
* $Id: dev.c,v 0.8.4.13 1993/01/23 18:00:11 bir7 Exp $
|
|
* $Id: dev.h,v 0.8.4.7 1993/01/23 18:00:11 bir7 Exp $
|
|
* $Id: eth.c,v 0.8.4.4 1993/01/22 23:21:38 bir7 Exp $
|
|
* $Id: eth.h,v 0.8.4.1 1992/11/10 00:17:18 bir7 Exp $
|
|
* $Id: icmp.c,v 0.8.4.9 1993/01/23 18:00:11 bir7 Exp $
|
|
* $Id: icmp.h,v 0.8.4.2 1992/11/15 14:55:30 bir7 Exp $
|
|
* $Id: ip.c,v 0.8.4.8 1992/12/12 19:25:04 bir7 Exp $
|
|
* $Id: ip.h,v 0.8.4.2 1993/01/23 18:00:11 bir7 Exp $
|
|
* $Id: loopback.c,v 0.8.4.8 1993/01/23 18:00:11 bir7 Exp $
|
|
* $Id: packet.c,v 0.8.4.7 1993/01/26 22:04:00 bir7 Exp $
|
|
* $Id: protocols.c,v 0.8.4.3 1992/11/15 14:55:30 bir7 Exp $
|
|
* $Id: raw.c,v 0.8.4.12 1993/01/26 22:04:00 bir7 Exp $
|
|
* $Id: sock.c,v 0.8.4.6 1993/01/28 22:30:00 bir7 Exp $
|
|
* $Id: sock.h,v 0.8.4.7 1993/01/26 22:04:00 bir7 Exp $
|
|
* $Id: tcp.c,v 0.8.4.16 1993/01/26 22:04:00 bir7 Exp $
|
|
* $Id: tcp.h,v 0.8.4.7 1993/01/22 22:58:08 bir7 Exp $
|
|
* $Id: timer.c,v 0.8.4.8 1993/01/23 18:00:11 bir7 Exp $
|
|
* $Id: timer.h,v 0.8.4.2 1993/01/23 18:00:11 bir7 Exp $
|
|
* $Id: udp.c,v 0.8.4.12 1993/01/26 22:04:00 bir7 Exp $
|
|
* $Id: udp.h,v 0.8.4.1 1992/11/10 00:17:18 bir7 Exp $
|
|
* $Id: we.c,v 0.8.4.10 1993/01/23 18:00:11 bir7 Exp $
|
|
* $Id: wereg.h,v 0.8.4.1 1992/11/10 00:17:18 bir7 Exp $
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version
|
|
* 2 of the License, or (at your option) any later version.
|
|
*/
|
|
#ifndef _LINUX_INET_H
|
|
#define _LINUX_INET_H
|
|
|
|
#include <linux/types.h>
|
|
#include <net/net_namespace.h>
|
|
#include <linux/socket.h>
|
|
|
|
/*
|
|
* These mimic similar macros defined in user-space for inet_ntop(3).
|
|
* See /usr/include/netinet/in.h .
|
|
*/
|
|
#define INET_ADDRSTRLEN (16)
|
|
#define INET6_ADDRSTRLEN (48)
|
|
|
|
extern __be32 in_aton(const char *str);
|
|
extern int in4_pton(const char *src, int srclen, u8 *dst, int delim, const char **end);
|
|
extern int in6_pton(const char *src, int srclen, u8 *dst, int delim, const char **end);
|
|
|
|
extern int inet_pton_with_scope(struct net *net, unsigned short af,
|
|
const char *src, const char *port, struct sockaddr_storage *addr);
|
|
|
|
#endif /* _LINUX_INET_H */
|