1d3ba25b3d046e18320734e03dbcfe42b089115f8subrata_modak/******************************************************************************/
2d3ba25b3d046e18320734e03dbcfe42b089115f8subrata_modak/*                                                                            */
3d3ba25b3d046e18320734e03dbcfe42b089115f8subrata_modak/* Copyright (c) International Business Machines  Corp., 2007                 */
4d3ba25b3d046e18320734e03dbcfe42b089115f8subrata_modak/*                                                                            */
5d3ba25b3d046e18320734e03dbcfe42b089115f8subrata_modak/* This program is free software;  you can redistribute it and/or modify      */
6d3ba25b3d046e18320734e03dbcfe42b089115f8subrata_modak/* it under the terms of the GNU General Public License as published by       */
7d3ba25b3d046e18320734e03dbcfe42b089115f8subrata_modak/* the Free Software Foundation; either version 2 of the License, or          */
8d3ba25b3d046e18320734e03dbcfe42b089115f8subrata_modak/* (at your option) any later version.                                        */
9d3ba25b3d046e18320734e03dbcfe42b089115f8subrata_modak/*                                                                            */
10d3ba25b3d046e18320734e03dbcfe42b089115f8subrata_modak/* This program is distributed in the hope that it will be useful,            */
11d3ba25b3d046e18320734e03dbcfe42b089115f8subrata_modak/* but WITHOUT ANY WARRANTY;  without even the implied warranty of            */
12d3ba25b3d046e18320734e03dbcfe42b089115f8subrata_modak/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See                  */
13d3ba25b3d046e18320734e03dbcfe42b089115f8subrata_modak/* the GNU General Public License for more details.                           */
14d3ba25b3d046e18320734e03dbcfe42b089115f8subrata_modak/*                                                                            */
15d3ba25b3d046e18320734e03dbcfe42b089115f8subrata_modak/* You should have received a copy of the GNU General Public License          */
16d3ba25b3d046e18320734e03dbcfe42b089115f8subrata_modak/* along with this program;  if not, write to the Free Software               */
174548c6cf9bcdd96d8303caa4130ab638b61f8a30Wanlong Gao/* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA    */
18d3ba25b3d046e18320734e03dbcfe42b089115f8subrata_modak/*                                                                            */
19d3ba25b3d046e18320734e03dbcfe42b089115f8subrata_modak/******************************************************************************/
20d3ba25b3d046e18320734e03dbcfe42b089115f8subrata_modak
21d3ba25b3d046e18320734e03dbcfe42b089115f8subrata_modak/******************************************************************************/
22d3ba25b3d046e18320734e03dbcfe42b089115f8subrata_modak/*                                                                            */
23d3ba25b3d046e18320734e03dbcfe42b089115f8subrata_modak/* File:        libcontrollers.h                                              */
24d3ba25b3d046e18320734e03dbcfe42b089115f8subrata_modak/*                                                                            */
25d3ba25b3d046e18320734e03dbcfe42b089115f8subrata_modak/* Description: This file contains the declarations for the functions and     */
26d3ba25b3d046e18320734e03dbcfe42b089115f8subrata_modak/*              variables used by the library and the test files.             */
27d3ba25b3d046e18320734e03dbcfe42b089115f8subrata_modak/*                                                                            */
28d3ba25b3d046e18320734e03dbcfe42b089115f8subrata_modak/* Author:      Sudhir Kumar skumar@linux.vnet.ibm.com                        */
29d3ba25b3d046e18320734e03dbcfe42b089115f8subrata_modak/*                                                                            */
30d3ba25b3d046e18320734e03dbcfe42b089115f8subrata_modak/* History:                                                                   */
31d3ba25b3d046e18320734e03dbcfe42b089115f8subrata_modak/* Created-     15/02/2008 -Sudhir Kumar <skumar@linux.vnet.ibm.com>          */
32d3ba25b3d046e18320734e03dbcfe42b089115f8subrata_modak/*                                                                            */
33d3ba25b3d046e18320734e03dbcfe42b089115f8subrata_modak/******************************************************************************/
34d3ba25b3d046e18320734e03dbcfe42b089115f8subrata_modak
35d3ba25b3d046e18320734e03dbcfe42b089115f8subrata_modak/* Standard Include Files */
3666b667aa0263893ea4fe26467dbce35881440b12subrata_modak#include <dirent.h>
3766b667aa0263893ea4fe26467dbce35881440b12subrata_modak#include <limits.h>
3866b667aa0263893ea4fe26467dbce35881440b12subrata_modak#include <stdio.h>
3966b667aa0263893ea4fe26467dbce35881440b12subrata_modak#include <stdlib.h>
4066b667aa0263893ea4fe26467dbce35881440b12subrata_modak#include <string.h>
4166b667aa0263893ea4fe26467dbce35881440b12subrata_modak#include <sys/stat.h>
4266b667aa0263893ea4fe26467dbce35881440b12subrata_modak#include <sys/types.h>
4366b667aa0263893ea4fe26467dbce35881440b12subrata_modak#include <unistd.h>
4466b667aa0263893ea4fe26467dbce35881440b12subrata_modak
450ed5b6ad5eb85bc03840150d65f2a0eefd9c5f9cYuexi Ma#include <limits_ltp.h>
460ed5b6ad5eb85bc03840150d65f2a0eefd9c5f9cYuexi Ma
4766b667aa0263893ea4fe26467dbce35881440b12subrata_modak#ifdef PATH_MAX
4866b667aa0263893ea4fe26467dbce35881440b12subrata_modakchar fullpath[PATH_MAX];
4966b667aa0263893ea4fe26467dbce35881440b12subrata_modak#else
5066b667aa0263893ea4fe26467dbce35881440b12subrata_modakchar fullpath[1024]; /* Guess */
5166b667aa0263893ea4fe26467dbce35881440b12subrata_modak#endif
5266b667aa0263893ea4fe26467dbce35881440b12subrata_modak
53575839ea989d07d4efa8816256469da86c2dab5csubrata_modakint FLAG;
54575839ea989d07d4efa8816256469da86c2dab5csubrata_modakvolatile int timer_expired;
5566b667aa0263893ea4fe26467dbce35881440b12subrata_modak
5666b667aa0263893ea4fe26467dbce35881440b12subrata_modakint retval;
5766b667aa0263893ea4fe26467dbce35881440b12subrata_modak
5866b667aa0263893ea4fe26467dbce35881440b12subrata_modakunsigned int num_line;//??
5966b667aa0263893ea4fe26467dbce35881440b12subrata_modak
6066b667aa0263893ea4fe26467dbce35881440b12subrata_modakunsigned int current_shares;
6166b667aa0263893ea4fe26467dbce35881440b12subrata_modak
6266b667aa0263893ea4fe26467dbce35881440b12subrata_modakunsigned int total_shares;
6366b667aa0263893ea4fe26467dbce35881440b12subrata_modak
6466b667aa0263893ea4fe26467dbce35881440b12subrata_modakunsigned int *shares_pointer;//??
6566b667aa0263893ea4fe26467dbce35881440b12subrata_modak
6666b667aa0263893ea4fe26467dbce35881440b12subrata_modakchar target[LINE_MAX];
6766b667aa0263893ea4fe26467dbce35881440b12subrata_modak
6866b667aa0263893ea4fe26467dbce35881440b12subrata_modakstruct dirent 	*dir_pointer;
6966b667aa0263893ea4fe26467dbce35881440b12subrata_modak
7066b667aa0263893ea4fe26467dbce35881440b12subrata_modakenum{
7166b667aa0263893ea4fe26467dbce35881440b12subrata_modak	GET_SHARES	=1,
7266b667aa0263893ea4fe26467dbce35881440b12subrata_modak	GET_TASKS
7366b667aa0263893ea4fe26467dbce35881440b12subrata_modak};
7466b667aa0263893ea4fe26467dbce35881440b12subrata_modak
7540a2457cb8ec42a05a2f96b0810057efdb2a55f5Kai Kangstatic inline void error_function(char *msg1, char *msg2);
7666b667aa0263893ea4fe26467dbce35881440b12subrata_modak
770a5f7141419d3ed6868edc6a814669d5dc5780d8Yuan Sunint read_shares_file(char *filepath);
7866b667aa0263893ea4fe26467dbce35881440b12subrata_modak
7966b667aa0263893ea4fe26467dbce35881440b12subrata_modakint read_file(char *filepath, int action, unsigned int *value);
8066b667aa0263893ea4fe26467dbce35881440b12subrata_modak
81bd1f58065370eddeea275a238b0a439451c8b70esubrata_modakint scan_shares_files(unsigned int *shares_pointer);
8266b667aa0263893ea4fe26467dbce35881440b12subrata_modak
8366b667aa0263893ea4fe26467dbce35881440b12subrata_modakint write_to_file (char * file, const char* mode, unsigned int value);
8466b667aa0263893ea4fe26467dbce35881440b12subrata_modak
8566b667aa0263893ea4fe26467dbce35881440b12subrata_modakvoid signal_handler_alarm (int signal );
86d3ba25b3d046e18320734e03dbcfe42b089115f8subrata_modak
87d3ba25b3d046e18320734e03dbcfe42b089115f8subrata_modakvoid signal_handler_sigusr2 (int signal);
88