/** * struct coredump_req - message kernel sends to userspace * @size: size of struct coredump_req * @size_ack: known size of struct coredump_ack on this kernel * @mask: supported features * * When a coredump happens the kernel will connect to the coredump * socket and send a coredump request to the coredump server. The @size * member is set to the size of struct coredump_req and provides a hint * to userspace how much data can be read. Userspace may use MSG_PEEK to * peek the size of struct coredump_req and then choose to consume it in * one go. Userspace may also simply read a COREDUMP_ACK_SIZE_VER0 * request. If the size the kernel sends is larger userspace simply * discards any remaining data. * * The coredump_req->mask member is set to the currently know features. * Userspace may only set coredump_ack->mask to the bits raised by the * kernel in coredump_req->mask. * * The coredump_req->size_ack member is set by the kernel to the size of * struct coredump_ack the kernel knows. Userspace may only send up to * coredump_req->size_ack bytes to the kernel and must set * coredump_ack->size accordingly.
*/ struct coredump_req {
__u32 size;
__u32 size_ack;
__u64 mask;
};
enum {
COREDUMP_REQ_SIZE_VER0 = 16U, /* size of first published struct */
};
/** * struct coredump_ack - message userspace sends to kernel * @size: size of the struct * @spare: unused * @mask: features kernel is supposed to use * * The @size member must be set to the size of struct coredump_ack. It * may never exceed what the kernel returned in coredump_req->size_ack * but it may of course be smaller (>= COREDUMP_ACK_SIZE_VER0 and <= * coredump_req->size_ack). * * The @mask member must be set to the features the coredump server * wants the kernel to use. Only bits the kernel returned in * coredump_req->mask may be set.
*/ struct coredump_ack {
__u32 size;
__u32 spare;
__u64 mask;
};
enum {
COREDUMP_ACK_SIZE_VER0 = 16U, /* size of first published struct */
};
/** * enum coredump_mark - Markers for the coredump socket * * The kernel will place a single byte on the coredump socket. The * markers notify userspace whether the coredump ack succeeded or * failed. * * @COREDUMP_MARK_MINSIZE: the provided coredump_ack size was too small * @COREDUMP_MARK_MAXSIZE: the provided coredump_ack size was too big * @COREDUMP_MARK_UNSUPPORTED: the provided coredump_ack mask was invalid * @COREDUMP_MARK_CONFLICTING: the provided coredump_ack mask has conflicting options * @COREDUMP_MARK_REQACK: the coredump request and ack was successful * @__COREDUMP_MARK_MAX: the maximum coredump mark value
*/ enum coredump_mark {
COREDUMP_MARK_REQACK = 0U,
COREDUMP_MARK_MINSIZE = 1U,
COREDUMP_MARK_MAXSIZE = 2U,
COREDUMP_MARK_UNSUPPORTED = 3U,
COREDUMP_MARK_CONFLICTING = 4U,
__COREDUMP_MARK_MAX = (1U << 31),
};
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.