1/* 2 * Copyright 2008-2010, Haiku, Inc. All rights reserved. 3 * Distributed under the terms of the MIT License. 4 */ 5#ifndef _SYSTEM_INFO_H 6#define _SYSTEM_INFO_H 7 8 9#include <OS.h> 10 11 12enum { 13 // team creation or deletion; object == -1; either one also triggers on 14 // exec() 15 B_WATCH_SYSTEM_TEAM_CREATION = 0x01, 16 B_WATCH_SYSTEM_TEAM_DELETION = 0x02, 17 18 // thread creation or deletion or property (name, priority) changes; 19 // object == team ID or -1 for all teams 20 B_WATCH_SYSTEM_THREAD_CREATION = 0x04, 21 B_WATCH_SYSTEM_THREAD_DELETION = 0x08, 22 B_WATCH_SYSTEM_THREAD_PROPERTIES = 0x10, 23 24 B_WATCH_SYSTEM_ALL 25 = B_WATCH_SYSTEM_TEAM_CREATION 26 | B_WATCH_SYSTEM_TEAM_DELETION 27 | B_WATCH_SYSTEM_THREAD_CREATION 28 | B_WATCH_SYSTEM_THREAD_DELETION 29 | B_WATCH_SYSTEM_THREAD_PROPERTIES 30}; 31 32enum { 33 // message what for the notification messages 34 B_SYSTEM_OBJECT_UPDATE = 'SOUP', 35 36 // "opcode" values 37 B_TEAM_CREATED = 0, 38 B_TEAM_DELETED = 1, 39 B_TEAM_EXEC = 2, 40 B_THREAD_CREATED = 3, 41 B_THREAD_DELETED = 4, 42 B_THREAD_NAME_CHANGED = 5 43}; 44 45 46#ifdef __cplusplus 47extern "C" { 48#endif 49 50 51status_t __get_system_info(system_info* info); 52status_t __get_cpu_topology_info(cpu_topology_node_info* topologyInfos, 53 uint32* topologyInfoCount); 54 55status_t __start_watching_system(int32 object, uint32 flags, port_id port, 56 int32 token); 57status_t __stop_watching_system(int32 object, uint32 flags, port_id port, 58 int32 token); 59 60 61#ifdef __cplusplus 62} 63#endif 64 65 66#endif /* _SYSTEM_INFO_H */ 67