00001
00002
00003
00004
00005
00006
00007 #ifndef WORK_QUEUE_RESOURCES_H
00008 #define WORK_QUEUE_RESOURCES_H
00009
00010 #include "link.h"
00011 #include "nvpair.h"
00012
00013 struct work_queue_resource {
00014 int64_t inuse;
00015 int64_t committed;
00016 int64_t total;
00017 int64_t smallest;
00018 int64_t largest;
00019 };
00020
00021 struct work_queue_resources {
00022 int64_t tag;
00023 struct work_queue_resource workers;
00024 struct work_queue_resource disk;
00025 struct work_queue_resource cores;
00026 struct work_queue_resource memory;
00027 struct work_queue_resource gpus;
00028 struct work_queue_resource unlabeled;
00029 };
00030
00031 struct work_queue_resources * work_queue_resources_create();
00032 void work_queue_resources_delete( struct work_queue_resources *r );
00033 void work_queue_resources_debug( struct work_queue_resources *r );
00034 void work_queue_resources_measure_locally( struct work_queue_resources *r, const char *workspace );
00035 void work_queue_resources_send( struct link *master, struct work_queue_resources *r, time_t stoptime );
00036 void work_queue_resources_clear( struct work_queue_resources *r );
00037 void work_queue_resources_add( struct work_queue_resources *total, struct work_queue_resources *r );
00038 void work_queue_resources_add_to_nvpair( struct work_queue_resources *r, struct nvpair *nv );
00039
00040 #endif