1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
/*
* Copyright © 2009-2019 Inria. All rights reserved.
* Copyright © 2009-2012 Université Bordeaux
* Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
* See COPYING in top-level directory.
*/
#ifndef UTILS_HWLOC_PS_H
#define UTILS_HWLOC_PS_H
#include "private/autogen/config.h"
#include "hwloc.h"
#define HWLOC_PS_TIDNAME_MAX 16 /* specified in pthread_setname_np.3 */
struct hwloc_ps_process {
long pid;
char string[1024];
char name[64];
hwloc_bitmap_t cpuset;
#define HWLOC_PS_ALL_UIDS ((long)-1)
long uid;
int bound;
unsigned nthreads;
unsigned nboundthreads;
struct hwloc_ps_thread {
long tid;
hwloc_bitmap_t cpuset;
int bound;
char name[HWLOC_PS_TIDNAME_MAX];
} *threads;
};
#define HWLOC_PS_FLAG_THREADS (1UL<<0)
#define HWLOC_PS_FLAG_LASTCPULOCATION (1UL<<1)
#define HWLOC_PS_FLAG_SHORTNAME (1UL<<2)
#define HWLOC_PS_FLAG_UID (1UL<<3)
int hwloc_ps_read_process(hwloc_topology_t topology, hwloc_const_bitmap_t topocpuset,
struct hwloc_ps_process *proc,
unsigned long flags, const char *pidcmd);
int hwloc_ps_foreach_process(hwloc_topology_t topology, hwloc_const_bitmap_t topocpuset,
void (*callback)(hwloc_topology_t topology, struct hwloc_ps_process *proc, void *cbdata),
void *cbdata,
unsigned long flags, const char *only_name, long only_uid, const char *pidcmd);
void hwloc_ps_free_process(struct hwloc_ps_process *proc);
#endif /* UTILS_HWLOC_PS_H */
|