1
#ifndef __SGE_SUPPORT_H
2
#define __SGE_SUPPORT_H
3
/*___INFO__MARK_BEGIN__*/
4
/*************************************************************************
6
* The Contents of this file are made available subject to the terms of
7
* the Sun Industry Standards Source License Version 1.2
9
* Sun Microsystems Inc., March, 2001
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
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.
26
* The Initial Developer of the Original Code is: Sun Microsystems, Inc.
28
* Copyright: 2001 by Sun Microsystems, Inc.
30
* All Rights Reserved.
32
************************************************************************/
33
/*___INFO__MARK_END__*/
35
typedef int (*sge_node_func_t) (lListElem *node, void *ptr);
37
void decay_userprj_usage(lListElem *userprj, bool user, const lList *decay_list, u_long seqno, u_long curr_time);
39
void calculate_default_decay_constant(int halftime);
41
void calculate_decay_constant(double halftime, double *decay_rate, double *decay_constant);
43
int sge_for_each_share_tree_node(lListElem *node, sge_node_func_t func, void *ptr);
45
int sge_zero_node_fields(lListElem *node, void *ptr);
47
int sge_init_node_fields(lListElem *root);
49
void sge_calc_node_proportion(lListElem *node, double total_usage);
51
double sge_calc_node_usage(lListElem *node,
52
const lList *user_list,
53
const lList *project_list,
54
const lList *decay_list,
59
void _sge_calc_share_tree_proportions(lList *share_tree,
60
const lList *user_list,
61
const lList *project_list,
62
const lList *decay_list,
65
void sge_calc_share_tree_proportions(lList *share_tree, const lList *user_list, const lList *project_list, const lList *decay_list);
67
lListElem *search_userprj_node(lListElem *ep, const char *username, const char *projname, lListElem **pep);
69
void set_share_tree_project_flags(const lList *project_list, lListElem *node);
71
void sge_add_default_user_nodes(lListElem *root, const lList *user_list, const lList *project_list, const lList *userset_list);
73
void sgeee_sort_jobs(lList **job_list);
74
void sgeee_sort_jobs_by(lList **job_list , int by_SGEJ_field, int field_ascending, int jobnum_ascending);
76
#endif /* __SGE_SUPPORT_H */