rem: status_t status;
add: ssize_t sz;
context: status_t receive(ifnet_t *iface, net_data **data){	ethernet_interface *ei = (ethernet_interface *) iface;	net_data *nd;	void *frame;	size_t len;	status_t status;		len = iface->if_mtu;	frame = malloc(len);	if (!frame)		return B_NO_MEMORY;	nd = g_stack->new_data();	if (!nd) {		free(frame);		return B_NO_MEMORY;	};			status = read(ei->fd, frame, len);	if (status >= B_OK) {		g_stack->append_data(nd, frame, status, free);		*data = nd;		return status;	};		free(frame);	g_stack->delete_data(nd, false);	return status;}