~ubuntu-branches/ubuntu/utopic/gridengine/utopic

« back to all changes in this revision

Viewing changes to source/libs/rmon/rmon.h

  • Committer: Bazaar Package Importer
  • Author(s): Mark Hymers
  • Date: 2008-06-25 22:36:13 UTC
  • Revision ID: james.westby@ubuntu.com-20080625223613-tvd9xlhuoct9kyhm
Tags: upstream-6.2~beta2
ImportĀ upstreamĀ versionĀ 6.2~beta2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef __RMON_H
 
2
#define __RMON_H
 
3
/*___INFO__MARK_BEGIN__*/
 
4
/*************************************************************************
 
5
 * 
 
6
 *  The Contents of this file are made available subject to the terms of
 
7
 *  the Sun Industry Standards Source License Version 1.2
 
8
 * 
 
9
 *  Sun Microsystems Inc., March, 2001
 
10
 * 
 
11
 * 
 
12
 *  Sun Industry Standards Source License Version 1.2
 
13
 *  =================================================
 
14
 *  The contents of this file are subject to the Sun Industry Standards
 
15
 *  Source License Version 1.2 (the "License"); You may not use this file
 
16
 *  except in compliance with the License. You may obtain a copy of the
 
17
 *  License at http://gridengine.sunsource.net/Gridengine_SISSL_license.html
 
18
 * 
 
19
 *  Software provided under this License is provided on an "AS IS" basis,
 
20
 *  WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
 
21
 *  WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
 
22
 *  MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
 
23
 *  See the License for the specific provisions governing your rights and
 
24
 *  obligations concerning the Software.
 
25
 * 
 
26
 *   The Initial Developer of the Original Code is: Sun Microsystems, Inc.
 
27
 * 
 
28
 *   Copyright: 2001 by Sun Microsystems, Inc.
 
29
 * 
 
30
 *   All Rights Reserved.
 
31
 * 
 
32
 ************************************************************************/
 
33
/*___INFO__MARK_END__*/
 
34
 
 
35
#include <stdarg.h>
 
36
#include <sys/types.h>
 
37
 
 
38
#include "rmon_monitoring_level.h"
 
39
#include "cl_commlib.h"
 
40
 
 
41
typedef void              (*rmon_print_callback_func_t) (const char *message, unsigned long traceid, unsigned long pid, unsigned long thread_id);
 
42
 
 
43
extern monitoring_level RMON_DEBUG_ON;
 
44
 
 
45
int  rmon_condition(int layer, int debug_class);
 
46
int  rmon_is_enabled(void);
 
47
void rmon_mopen(int *argc, char *argv[], char *programname);
 
48
void rmon_menter(const char *func, const char *thread_name);
 
49
void rmon_mtrace(const char *func, const char *file, int line, const char *thread_name);
 
50
void rmon_mprintf(int debug_class, const char *fmt, ...);
 
51
void rmon_mexit(const char *func, const char *file, int line, const char *thread_name);
 
52
void rmon_debug_client_callback(int dc_connected, int debug_level);
 
53
void rmon_set_print_callback(rmon_print_callback_func_t function_p);
 
54
 
 
55
void rmon_mprintf_lock(const char* fmt, ...);
 
56
void rmon_mprintf_info(const char* fmt, ...);
 
57
void rmon_mprintf_timing(const char* fmt, ...);
 
58
void rmon_mprintf_special(const char* fmt, ...);
 
59
 
 
60
typedef struct rmon_ctx_str rmon_ctx_t;
 
61
 
 
62
struct rmon_ctx_str {
 
63
  void *ctx;
 
64
  
 
65
  int  (*is_loggable)(rmon_ctx_t *ctx, int layer, int debug_class);
 
66
  void (*menter)(rmon_ctx_t *ctx, const char* func);
 
67
  void (*mexit)(rmon_ctx_t *ctx, const char* func, const char *file, int line);
 
68
  void (*mtrace)(rmon_ctx_t *ctx, const char *func, const char *file, int line);
 
69
  void (*mprintf)(rmon_ctx_t *ctx, int debug_class, const char* fmt, va_list args);
 
70
};
 
71
 
 
72
typedef struct rmon_helper_str rmon_helper_t;
 
73
 
 
74
struct rmon_helper_str {
 
75
   char thread_name[32];
 
76
};
 
77
 
 
78
void rmon_set_thread_ctx(rmon_ctx_t* ctx);
 
79
rmon_ctx_t* rmon_get_thread_ctx(void);
 
80
 
 
81
rmon_helper_t *rmon_get_helper(void);
 
82
 
 
83
#define __CONDITION(x) rmon_condition(TOP_LAYER, x)
 
84
 
 
85
#endif /* __RMON_H */
 
86