4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License, Version 1.0 only
6 * (the "License"). You may not use this file except in compliance
7 * with the License.
8 *
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
13 *
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
19 *
20 * CDDL HEADER END
21 */
22 /*
23 * Copyright 2014 Garrett D'Amore <garrett@damore.org>
24 *
25 * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
26 * Use is subject to license terms.
27 */
28
29 #ifndef _LGRP_USER_H
30 #define _LGRP_USER_H
31
32 /*
33 * latency group definitions for user
34 */
35
36 #ifdef __cplusplus
37 extern "C" {
38 #endif
39
40
41 #include <sys/inttypes.h>
42 #include <sys/lgrp.h>
43 #include <sys/procset.h>
225 int ss_nlgrps_max; /* maximum number of lgroups */
226 int ss_root; /* root lgroup */
227 int ss_ncpus; /* total number of CPUs */
228 int ss_view; /* view of lgroup hierarchy */
229 int ss_pset; /* caller's pset ID */
230 uint_t ss_gen; /* snapshot generation ID */
231 size32_t ss_size; /* total size of snapshot */
232 uint32_t ss_magic; /* snapshot magic number */
233 caddr32_t ss_info; /* lgroup info array */
234 caddr32_t ss_cpuids; /* lgroup CPU ID array */
235 caddr32_t ss_lgrpset; /* bit mask of available lgroups */
236 caddr32_t ss_parents; /* lgroup parent bit masks */
237 caddr32_t ss_children; /* lgroup children bit masks */
238 caddr32_t ss_rsets; /* lgroup resource set bit masks */
239 caddr32_t ss_latencies; /* latencies between lgroups */
240 } lgrp_snapshot_header32_t;
241
242 #endif /* _SYSCALL32 */
243
244
245 #if (!defined(_KERNEL) && !defined(_KMEMUSER))
246
247 lgrp_affinity_t lgrp_affinity_get(idtype_t idtype, id_t id, lgrp_id_t lgrp);
248
249 int lgrp_affinity_set(idtype_t idtype, id_t id, lgrp_id_t lgrp,
250 lgrp_affinity_t aff);
251
252 int lgrp_children(lgrp_cookie_t cookie, lgrp_id_t lgrp,
253 lgrp_id_t *children, uint_t count);
254
255 int lgrp_cookie_stale(lgrp_cookie_t cookie);
256
257 int lgrp_cpus(lgrp_cookie_t cookie, lgrp_id_t lgrp,
258 processorid_t *cpuids, uint_t count, lgrp_content_t content);
259
260 int lgrp_fini(lgrp_cookie_t cookie);
261
262 int lgrp_latency(lgrp_id_t from, lgrp_id_t to);
263
264 int lgrp_latency_cookie(lgrp_cookie_t cookie, lgrp_id_t from,
265 lgrp_id_t to, lgrp_lat_between_t between);
268
269 lgrp_cookie_t lgrp_init(lgrp_view_t view);
270
271 lgrp_mem_size_t lgrp_mem_size(lgrp_cookie_t cookie, lgrp_id_t lgrp,
272 lgrp_mem_size_flag_t type, lgrp_content_t content);
273
274 int lgrp_nlgrps(lgrp_cookie_t cookie);
275
276 int lgrp_parents(lgrp_cookie_t cookie, lgrp_id_t lgrp,
277 lgrp_id_t *parents, uint_t count);
278
279 int lgrp_resources(lgrp_cookie_t cookie, lgrp_id_t lgrp,
280 lgrp_id_t *lgrps, uint_t count, lgrp_rsrc_t type);
281
282 lgrp_id_t lgrp_root(lgrp_cookie_t cookie);
283
284 int lgrp_version(int version);
285
286 lgrp_view_t lgrp_view(lgrp_cookie_t cookie);
287
288 #endif /* !_KERNEL && !_KMEMUSER */
289
290 #ifdef __cplusplus
291 }
292 #endif
293
294 #endif /* _LGRP_USER_H */
|
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License, Version 1.0 only
6 * (the "License"). You may not use this file except in compliance
7 * with the License.
8 *
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
13 *
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
19 *
20 * CDDL HEADER END
21 */
22 /*
23 * Copyright 2014 Garrett D'Amore <garrett@damore.org>
24 * Copyright 2017 RackTop Systems.
25 *
26 * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
27 * Use is subject to license terms.
28 */
29
30 #ifndef _LGRP_USER_H
31 #define _LGRP_USER_H
32
33 /*
34 * latency group definitions for user
35 */
36
37 #ifdef __cplusplus
38 extern "C" {
39 #endif
40
41
42 #include <sys/inttypes.h>
43 #include <sys/lgrp.h>
44 #include <sys/procset.h>
226 int ss_nlgrps_max; /* maximum number of lgroups */
227 int ss_root; /* root lgroup */
228 int ss_ncpus; /* total number of CPUs */
229 int ss_view; /* view of lgroup hierarchy */
230 int ss_pset; /* caller's pset ID */
231 uint_t ss_gen; /* snapshot generation ID */
232 size32_t ss_size; /* total size of snapshot */
233 uint32_t ss_magic; /* snapshot magic number */
234 caddr32_t ss_info; /* lgroup info array */
235 caddr32_t ss_cpuids; /* lgroup CPU ID array */
236 caddr32_t ss_lgrpset; /* bit mask of available lgroups */
237 caddr32_t ss_parents; /* lgroup parent bit masks */
238 caddr32_t ss_children; /* lgroup children bit masks */
239 caddr32_t ss_rsets; /* lgroup resource set bit masks */
240 caddr32_t ss_latencies; /* latencies between lgroups */
241 } lgrp_snapshot_header32_t;
242
243 #endif /* _SYSCALL32 */
244
245
246 #if !defined(_KERNEL) && !defined(_FAKE_KERNEL) && !defined(_KMEMUSER)
247
248 lgrp_affinity_t lgrp_affinity_get(idtype_t idtype, id_t id, lgrp_id_t lgrp);
249
250 int lgrp_affinity_set(idtype_t idtype, id_t id, lgrp_id_t lgrp,
251 lgrp_affinity_t aff);
252
253 int lgrp_children(lgrp_cookie_t cookie, lgrp_id_t lgrp,
254 lgrp_id_t *children, uint_t count);
255
256 int lgrp_cookie_stale(lgrp_cookie_t cookie);
257
258 int lgrp_cpus(lgrp_cookie_t cookie, lgrp_id_t lgrp,
259 processorid_t *cpuids, uint_t count, lgrp_content_t content);
260
261 int lgrp_fini(lgrp_cookie_t cookie);
262
263 int lgrp_latency(lgrp_id_t from, lgrp_id_t to);
264
265 int lgrp_latency_cookie(lgrp_cookie_t cookie, lgrp_id_t from,
266 lgrp_id_t to, lgrp_lat_between_t between);
269
270 lgrp_cookie_t lgrp_init(lgrp_view_t view);
271
272 lgrp_mem_size_t lgrp_mem_size(lgrp_cookie_t cookie, lgrp_id_t lgrp,
273 lgrp_mem_size_flag_t type, lgrp_content_t content);
274
275 int lgrp_nlgrps(lgrp_cookie_t cookie);
276
277 int lgrp_parents(lgrp_cookie_t cookie, lgrp_id_t lgrp,
278 lgrp_id_t *parents, uint_t count);
279
280 int lgrp_resources(lgrp_cookie_t cookie, lgrp_id_t lgrp,
281 lgrp_id_t *lgrps, uint_t count, lgrp_rsrc_t type);
282
283 lgrp_id_t lgrp_root(lgrp_cookie_t cookie);
284
285 int lgrp_version(int version);
286
287 lgrp_view_t lgrp_view(lgrp_cookie_t cookie);
288
289 #endif /* !_KERNEL && !_FAKE_KERNEL && !_KMEMUSER */
290
291 #ifdef __cplusplus
292 }
293 #endif
294
295 #endif /* _LGRP_USER_H */
|