gcc/libphobos/libdruntime/core/sys/linux/ifaddrs.d
Iain Buclaw bbfbaa792b d: Merge upstream dmd, druntime f8bae04558, phobos ba2ade9dec
D front-end changes:

    - Import dmd v2.108.1-beta-1.

D runtime changes:

    - Import druntime v2.108.1-beta-1.

Phobos changes:

    - Import phobos v2.108.1-beta-1.

gcc/d/ChangeLog:

	* dmd/MERGE: Merge upstream dmd f8bae04558.
	* dmd/VERSION: Bump version to v2.108.0-beta.1.
	* d-builtins.cc (build_frontend_type): Update for new front-end
	interface.
	* d-codegen.cc (build_assert_call): Likewise.
	* d-convert.cc (d_array_convert): Likewise.
	* decl.cc (get_vtable_decl): Likewise.
	* expr.cc (ExprVisitor::visit (EqualExp *)): Likewise.
	(ExprVisitor::visit (VarExp *)): Likewise.
	(ExprVisitor::visit (ArrayLiteralExp *)): Likewise.
	(ExprVisitor::visit (AssocArrayLiteralExp)): Likewise.
	* intrinsics.cc (build_shuffle_mask_type): Likewise.
	(maybe_warn_intrinsic_mismatch): Likewise.
	* runtime.cc (get_libcall_type): Likewise.
	* typeinfo.cc (TypeInfoVisitor::layout_string): Likewise.
	(TypeInfoVisitor::visit(TypeInfoTupleDeclaration *)): Likewise.

libphobos/ChangeLog:

	* libdruntime/MERGE: Merge upstream druntime 02d6d07a69.
	* src/MERGE: Merge upstream phobos a2ade9dec.
2024-03-03 23:42:56 +01:00

61 lines
1.7 KiB
D

/*******************************************************************************
D binding for the interface addresses querying
Defines functions getifaddrs/freeifaddrs and the structure
they operate on.
getifaddrs(3) get interface addresses
freeifaddrs(3) deallocates the structure returned from getifaddrs
Copyright: Copyright (c) 2016 Sociomantic Labs. All rights reserved.
License: $(HTTP www.boost.org/LICENSE_1_0.txt, Boost License 1.0).
Authors: Nemanja Boric
*******************************************************************************/
module core.sys.linux.ifaddrs;
import core.sys.posix.sys.socket;
version (linux):
extern (C):
nothrow:
@nogc:
struct ifaddrs
{
/// Next item in the list
ifaddrs* ifa_next;
/// Name of the interface
char* ifa_name;
/// Flags from SIOCGIFFLAGS
uint ifa_flags;
/// Address of interface
sockaddr* ifa_addr;
/// Netmask of interface
sockaddr* ifa_netmask;
union
{
/// Broadcast address of the interface
sockaddr* ifa_broadaddr;
/// Point-to-point destination addresss
sockaddr* ifa_dstaddr;
}
deprecated("druntime declared this incorrectly before. The correct name is ifa_broadaddr.")
alias ifu_broadaddr = ifa_broadaddr;
deprecated("druntime declared this incorrectly before. The correct name is ifa_dstaddr.")
alias if_dstaddr = ifa_dstaddr;
/// Address specific data
void* ifa_data;
}
/// Returns: linked list of ifaddrs structures describing interfaces
int getifaddrs(ifaddrs** );
/// Frees the linked list returned by getifaddrs
void freeifaddrs(ifaddrs* );