summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/vm/seg.h
diff options
context:
space:
mode:
authorRobert Mustacchi <rm@joyent.com>2014-12-26 02:46:52 +0000
committerRobert Mustacchi <rm@joyent.com>2015-02-15 00:36:58 +0000
commitf31c6fa33bcc9a608ce6f9ffd671ffc2b65a30ef (patch)
tree804c1aad78118d760e083f79a0f411894272488f /usr/src/uts/common/vm/seg.h
parentd34c3434a6ead24ec3e41daebf60ff85376c9e47 (diff)
downloadillumos-joyent-f31c6fa33bcc9a608ce6f9ffd671ffc2b65a30ef.tar.gz
OS-3845 want arc4random(3C) suite
OS-3846 want getentropy(3C) OS-3847 want getrandom(2) OS-3848 want explicit_bzero(3C) OS-3843 want MC_INHERIT_ZERO OS-3844 uuid_generate can leak its cache in edge conditions Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com> Reviewed by: Joshua M. Clulow <josh@sysmgr.org>
Diffstat (limited to 'usr/src/uts/common/vm/seg.h')
-rw-r--r--usr/src/uts/common/vm/seg.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/usr/src/uts/common/vm/seg.h b/usr/src/uts/common/vm/seg.h
index 2e1e6a77de..343e308a82 100644
--- a/usr/src/uts/common/vm/seg.h
+++ b/usr/src/uts/common/vm/seg.h
@@ -21,6 +21,7 @@
/*
* Copyright 2008 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
+ * Copyright (c) 2015, Joyent, Inc.
*/
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
@@ -39,8 +40,6 @@
#ifndef _VM_SEG_H
#define _VM_SEG_H
-#pragma ident "%Z%%M% %I% %E% SMI"
-
#include <sys/vnode.h>
#include <sys/avl.h>
#include <vm/seg_enum.h>
@@ -142,6 +141,7 @@ struct seg_ops {
int (*getmemid)(struct seg *, caddr_t, memid_t *);
struct lgrp_mem_policy_info *(*getpolicy)(struct seg *, caddr_t);
int (*capable)(struct seg *, segcapability_t);
+ int (*inherit)(struct seg *, caddr_t, size_t, uint_t);
};
#ifdef _KERNEL
@@ -238,6 +238,7 @@ extern segadvstat_t segadvstat;
#define SEGOP_GETMEMID(s, a, mp) (*(s)->s_ops->getmemid)((s), (a), (mp))
#define SEGOP_GETPOLICY(s, a) (*(s)->s_ops->getpolicy)((s), (a))
#define SEGOP_CAPABLE(s, c) (*(s)->s_ops->capable)((s), (c))
+#define SEGOP_INHERIT(s, a, l, b) (*(s)->s_ops->inherit)((s), (a), (l), (b))
#define seg_page(seg, addr) \
(((uintptr_t)((addr) - (seg)->s_base)) >> PAGESHIFT)
@@ -249,6 +250,11 @@ extern segadvstat_t segadvstat;
#define IE_RETRY -2 /* internal to seg layer */
#define IE_REATTACH -3 /* internal to seg layer */
+/* Values for SEGOP_INHERIT */
+#define SEGP_INH_ZERO 0x01
+
+int seg_inherit_notsup(struct seg *, caddr_t, size_t, uint_t);
+
/* Delay/retry factors for seg_p_mem_config_pre_del */
#define SEGP_PREDEL_DELAY_FACTOR 4
/*