/*
 * Copyright (c) 2018-2021 The strace developers.
 * All rights reserved.
 *
 * SPDX-License-Identifier: LGPL-2.1-or-later
 */

#include "defs.h"

#include DEF_MPERS_TYPE(struct_sigset_addr_size)

typedef struct {
	sigset_t *sigmask;
	size_t sigsetsize;
} struct_sigset_addr_size;

#include MPERS_DEFS

MPERS_PRINTER_DECL(void, print_kernel_sigset, struct tcb *tcp,
		   const kernel_ulong_t addr)
{
	struct_sigset_addr_size sas;

	if (!umove_or_printaddr(tcp, addr, &sas)) {
		tprint_struct_begin();
		tprints_field_name("sigmask");
		print_sigset_addr_len(tcp, (uintptr_t) sas.sigmask,
				      sas.sigsetsize);
		tprint_struct_next();
		PRINT_FIELD_U(sas, sigsetsize);
		tprint_struct_end();
	}
}