#include #include #include #include /** * glibtop_close: * * Close the connection to the server. */ void glibtop_close(void) { glibtop_close_r(glibtop_global_server); } /** * SECTION:glibtop * @short_description: Server initilization * @stability: Stable * * You do not need to worry about the #glibtop * server structure if * you don't need - the library exports a #glibtop_global_server * which you can use everywhere a #glibtop * is expected. * * Most of the library and all of the sysdeps function also have an alias * (which is the function name without the _l, * _s or _r suffix) which don't * take a #glibtop * as argument but uses the #glibtop_global_server * instead. */ /** * glibtop_init: * * Server initialization. * * Returns: A #glibtop reference. */ glibtop* glibtop_init(void) { return glibtop_init_r(&glibtop_global_server, 0, 0); } /** * glibtop_get_cpu: * @buf: A location to return the CPU usage. * * Get the CPU usage. * * All CPU units are measured in jiffies which are normally * 1/100th of a second (in which case frequency equals 100), * but can also be in any other unit. To get seconds, divide them by * frequency. */ void glibtop_get_cpu(glibtop_cpu *buf) { glibtop_get_cpu_l(glibtop_global_server, buf); } /** * glibtop_get_fsusage: * @buf: A location to return the file system usage. * @mount_dir: mount dir where to get the information of usage. * * Get the file system usage for an specific @mount_dir. */ void glibtop_get_fsusage(glibtop_fsusage *buf, const char *mount_dir) { glibtop_get_fsusage_l(glibtop_global_server, buf, mount_dir); } /** * glibtop_get_uptime: * @buf: A location to return the system uptime * * When porting LibGTop to a new system, you only need to implement * #uptime and #idletime if there's a faster or better way to obtain them * as using function(glibtop_cpu) for it. Look at * sysdeps/freebsd/uptime.c for an * example on how to obtain them using function(glibtop_cpu). */ void glibtop_get_uptime(glibtop_uptime *buf) { glibtop_get_uptime_l(glibtop_global_server, buf); } /** * glibtop_sysinfo: * * Returns: The system information through a #glibtop_sysinfo structure. */ const glibtop_sysinfo * glibtop_get_sysinfo(void) { return glibtop_get_sysinfo_s(glibtop_global_server); } /** * glibtop_get_swap: * @buf: A location to return a #glibtop_swap. * * Get the swap usage. */ void glibtop_get_swap(glibtop_swap *buf) { glibtop_get_swap_l(glibtop_global_server, buf); } /** * glibtop_get_proc_uid: * @buf: A location to return a #glibtop_proc_uid * @pid: Process id to get the user and tty information * * Get the process user id and tty information. */ void glibtop_get_proc_uid(glibtop_proc_uid *buf, pid_t pid) { glibtop_get_proc_uid_l(glibtop_global_server, buf, pid); } /** * glibtop_get_proc_time: * @buf: * @pid: Process id to get the user and tty information * * Please note that under Linux, #start_time value may be strange. * Linux kernel defines INITIAL_JIFFIES which implies a time * shift. Because INITIAL_JIFFIES is not user-space defined, * we cannot use it to compute accurate @code{start_time}. On Linux2.6, * INITIAL_JIFFIES is 300 so start_time is * always 3s different from real start time of the given process. You * may also get shift results if your system clock is not synchronised * with your hardware clock. See man hwclock. */ void glibtop_get_proc_time(glibtop_proc_time *buf, pid_t pid) { glibtop_get_proc_time_l(glibtop_global_server, buf, pid); } void glibtop_get_proc_state(glibtop_proc_state *buf, pid_t pid) { glibtop_get_proc_state_l(glibtop_global_server, buf, pid); } void glibtop_get_proc_signal(glibtop_proc_signal *buf, pid_t pid) { glibtop_get_proc_signal_l(glibtop_global_server, buf, pid); } void glibtop_get_proc_segment(glibtop_proc_segment *buf, pid_t pid) { glibtop_get_proc_segment_l(glibtop_global_server, buf, pid); } glibtop_open_files_entry * glibtop_get_proc_open_files(glibtop_proc_open_files *buf, pid_t pid) { return glibtop_get_proc_open_files_l(glibtop_global_server, buf, pid); } void glibtop_get_proc_mem(glibtop_proc_mem *buf, pid_t pid) { glibtop_get_proc_mem_l(glibtop_global_server, buf, pid); } glibtop_map_entry * glibtop_get_proc_map(glibtop_proc_map *buf, pid_t pid) { return glibtop_get_proc_map_l(glibtop_global_server, buf, pid); } char * glibtop_get_proc_args(glibtop_proc_args *buf, pid_t pid, unsigned max_len) { return glibtop_get_proc_args_l(glibtop_global_server, buf, pid, max_len); } char ** glibtop_get_proc_argv(glibtop_proc_args *buf, pid_t pid, unsigned max_len) { return glibtop_get_proc_argv_l(glibtop_global_server, buf, pid, max_len); } pid_t* glibtop_get_proclist(glibtop_proclist *buf, gint64 which, gint64 arg) { return glibtop_get_proclist_l(glibtop_global_server, buf, which, arg); } void glibtop_get_proc_kernel(glibtop_proc_kernel *buf, pid_t pid) { glibtop_get_proc_kernel_l(glibtop_global_server, buf, pid); } /** * SECTION:ppp * @short_description: PPP Usage. * @see_also: #libgtop-netload, #libgtop-netlist * @stability: Stable * * Management of a PPP device. */ /** * glibtop_get_ppp: * @buf: A location to return the PPP usage * @short device: The device to ask information * * Get the PPP usage. */ void glibtop_get_ppp(glibtop_ppp *buf, unsigned short device) { glibtop_get_ppp_l(glibtop_global_server, buf, device); } /** * SECTION:netlist * @short_description: Network Devices List. * @see_also: #libgtop-netload * @stability: Stable * * The application class handles ... */ /** * glibtop_get_nelist: * @buf: * * Get the list of network devices. * * Returns: A list of network devices. */ char** glibtop_get_netlist(glibtop_netlist *buf) { return glibtop_get_netlist_l(glibtop_global_server, buf); } /** * SECTION:netload * @short_description: Network Load. * @see_also: #libtop-netlist * @stability: Stable * * The application class handles ... */ /** * glibtop_get_netload: * @buf: The variable where the results will be assigned. * @interface: The name of the network interface. * * Recolects network statistics for @interface * (which is the same than in ifconfig). * The values are returned into @buf. */ void glibtop_get_netload(glibtop_netload *buf, const char *interface) { glibtop_get_netload_l(glibtop_global_server, buf, interface); } glibtop_mountentry * glibtop_get_mountlist(glibtop_mountlist *buf, int all_fs) { return glibtop_get_mountlist_l(glibtop_global_server, buf, all_fs); } /** * glibtop_get_mem: * @buf: Buffer where the output will be given. * * Get the memory usage. Unless explicitly stated otherwise, all memory * units are in bytes. */ void glibtop_get_mem(glibtop_mem *buf) { glibtop_get_mem_l(glibtop_global_server, buf); } void glibtop_get_loadavg(glibtop_loadavg *buf) { glibtop_get_loadavg_l(glibtop_global_server, buf); } void glibtop_get_msg_limits(glibtop_msg_limits *buf) { glibtop_get_msg_limits_l(glibtop_global_server, buf); } void glibtop_get_sem_limits(glibtop_sem_limits *buf) { glibtop_get_sem_limits_l(glibtop_global_server, buf); } void glibtop_get_shm_limits(glibtop_shm_limits *buf) { glibtop_get_shm_limits_l(glibtop_global_server, buf); } void glibtop_get_sysdeps(glibtop_sysdeps *buf) { glibtop_get_sysdeps_r(glibtop_global_server, buf); } /** * glibtop_get_proc_wd: * @buf: * @pid: Process id to get the user and tty information * * Get the root directory and the working directories * * Returns: A NULL-terminated list of working directories. */ char** glibtop_get_proc_wd(glibtop_proc_wd *buf, pid_t pid) { return glibtop_get_proc_wd_l(glibtop_global_server, buf, pid); }