scoreboard.h revision ab2c1c1c83ec91415565da5a71fbc15d9685caa6
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa/* ====================================================================
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * The Apache Software License, Version 1.1
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa *
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * Copyright (c) 2000 The Apache Software Foundation. All rights
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * reserved.
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa *
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * Redistribution and use in source and binary forms, with or without
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * modification, are permitted provided that the following conditions
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * are met:
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa *
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * 1. Redistributions of source code must retain the above copyright
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * notice, this list of conditions and the following disclaimer.
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa *
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * 2. Redistributions in binary form must reproduce the above copyright
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * notice, this list of conditions and the following disclaimer in
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * the documentation and/or other materials provided with the
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * distribution.
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa *
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * 3. The end-user documentation included with the redistribution,
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * if any, must include the following acknowledgment:
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * "This product includes software developed by the
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * Apache Software Foundation (http://www.apache.org/)."
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * Alternately, this acknowledgment may appear in the software itself,
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * if and wherever such third-party acknowledgments normally appear.
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa *
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * 4. The names "Apache" and "Apache Software Foundation" must
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * not be used to endorse or promote products derived from this
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * software without prior written permission. For written
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * permission, please contact apache@apache.org.
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa *
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * 5. Products derived from this software may not be called "Apache",
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * nor may "Apache" appear in their name, without prior written
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * permission of the Apache Software Foundation.
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa *
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * SUCH DAMAGE.
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * ====================================================================
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa *
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * This software consists of voluntary contributions made by many
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * individuals on behalf of the Apache Software Foundation. For more
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * information on the Apache Software Foundation, please see
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * <http://www.apache.org/>.
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa *
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * Portions of this software are based upon public domain software
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * originally written at the National Center for Supercomputing Applications,
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa * University of Illinois, Urbana-Champaign.
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa */
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa#ifndef APACHE_SCOREBOARD_H
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa#define APACHE_SCOREBOARD_H
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa#include <pthread.h>
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa#ifdef __cplusplus
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksaextern "C" {
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa#endif
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa#ifdef TPF
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa#include <time.h>
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa#else
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa#include <sys/times.h>
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa#endif /* TPF */
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa#include "mpm_default.h" /* For HARD_.*_LIMIT */
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa/* The generic shared memory chunk code */
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksavoid reinit_scoreboard(ap_context_t *p);
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa#if defined(USE_OS2_SCOREBOARD)
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksacaddr_t create_shared_heap(const char *name, size_t size);
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksacaddr_t get_shared_heap(const char *Name);
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa#endif
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen KuksaAPI_EXPORT(void) reopen_scoreboard(ap_context_t *p);
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa/* The stuff for Dexter's status table */
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa#include "mpm_status.h"
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksavoid ap_dexter_set_maintain_connection_status(int flag);
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksavoid ap_dexter_force_reset_connection_status(long conn_id);
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa#define KEY_LENGTH 16
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa#define VALUE_LENGTH 64
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksatypedef struct {
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa char key[KEY_LENGTH];
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa char value[VALUE_LENGTH];
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa} status_table_entry;
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa#define STATUSES_PER_CONNECTION 10
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksatypedef struct {
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa status_table_entry
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa table[HARD_SERVER_LIMIT*HARD_THREAD_LIMIT][STATUSES_PER_CONNECTION];
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa} scoreboard;
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa#define SCOREBOARD_SIZE sizeof(scoreboard)
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa#ifdef __cplusplus
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa}
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa#endif
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa#endif /* !APACHE_SCOREBOARD_H */
a389e88e0acb83d8489bdc5e55bc5522b152bbecEugen Kuksa