Skip to content
Snippets Groups Projects
Select Git revision
  • master
1 result

argmax.m

Blame
  • boinc_api.h 4.82 KiB
    // Berkeley Open Infrastructure for Network Computing
    // http://boinc.berkeley.edu
    // Copyright (C) 2005 University of California
    //
    // This is free software; you can redistribute it and/or
    // modify it under the terms of the GNU Lesser General Public
    // License as published by the Free Software Foundation;
    // either version 2.1 of the License, or (at your option) any later version.
    //
    // This software is distributed in the hope that it will be useful,
    // but WITHOUT ANY WARRANTY; without even the implied warranty of
    // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    // See the GNU Lesser General Public License for more details.
    //
    // To view the GNU Lesser General Public License visit
    // http://www.gnu.org/copyleft/lesser.html
    // or write to the Free Software Foundation, Inc.,
    // 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    
    #ifndef _BOINC_API_
    #define _BOINC_API_
    
    #ifdef __APPLE__
    #include <Carbon/Carbon.h>
    #endif
    
    // ANSI C API BEGINS HERE
    // Do not put implementation stuff here
    
    #ifdef __cplusplus
    extern "C" {
    #endif
    typedef struct BOINC_OPTIONS {
        int main_program;
            // this is the main program, so
            // - lock a lock file in the slot directory
            // - write finish file on successful boinc_finish()
        int check_heartbeat;
            // action is determined by direct_process_action (see below)
        int handle_trickle_ups;
            // this process is allowed to call boinc_send_trickle_up()
        int handle_trickle_downs;
            // this process is allowed to call boinc_receive_trickle_down()
        int handle_process_control;
            // action is determined by direct_process_action (see below)
        int send_status_msgs;
            // send CPU time / fraction done msgs
        int direct_process_action;
            // if heartbeat fail, or get process control msg, take
            // direction action (exit, suspend, resume).
            // Otherwise just set flag in BOINC status
        int all_threads_cpu_time;
            // count the CPU time of all threads
            // (for apps that have multiple worker threads)
    } BOINC_OPTIONS;
    
    typedef struct BOINC_STATUS {
        int no_heartbeat;
        int suspended;
        int quit_request;
        int reread_init_data_file;
        int abort_request;
        double working_set_size;
        double max_working_set_size;
    } BOINC_STATUS;
    
    struct APP_INIT_DATA;
    
    extern int boinc_init(void);
    extern int boinc_finish(int status);