PennMUSH Community

Changeset 845

Show
Ignore:
Timestamp:
05/16/07 21:20:33 (1 year ago)
Author:
penndev
Message:

Win32 changes for p2.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • 1.8.3/tags/p2rc4/src/chunk.c

    r817 r845  
    1212 * to rearrange allocations to actively control fragmentation and increase 
    1313 * locality. 
    14  *  
    15  *  
     14 * 
     15 * 
    1616 * <h3>Basic operation:</h3> 
    1717 * The managed memory pool is divided into regions of approximately 64KB. 
     
    2323 * dereferences for the chunk), and each region has additional overhead 
    2424 * of about 42 bytes. 
    25  *  
     25 * 
    2626 * Allocations are made with the chunk_create() call, which is given 
    2727 * the size of the data, the data value to be stored, and an initial 
     
    3030 * chunk_create() returns an integral reference value that can be 
    3131 * used to retrieve or free the allocation. 
    32  *  
     32 * 
    3333 * Allocations are accessed with the chunk_fetch(), chunk_len(), and 
    3434 * chunk_derefs() calls.  Each of these if given a reference (as 
     
    3838 * count (up to the maximum of 255), which is used in migration to 
    3939 * improve locality. 
    40  *  
     40 * 
    4141 * Allocations are freed with the chunk_delete() call, which also 
    4242 * requires a reference as input. 
    43  *  
     43 * 
    4444 * Finally, allocations are allowed to rearrange themselves with the 
    4545 * chunk_migration() call.  chunk_migration() takes an array of 
     
    5454 * must eventually be submitted for migration in order to maintain the 
    5555 * memory pool in a non-fragmented state. 
    56  *  
    57  *  
     56 * 
     57 * 
    5858 * <h3>Migration:</h3> 
    5959 * Under normal conditions, extended use of this chunk allocation system 
     
    6969 * at any one time, and spreading out the cost of defragmenting the 
    7070 * data store. 
    71  *  
     71 * 
    7272 * Just because you give permission to move a chunk doesn't mean that it 
    7373 * will be moved.  The chunk may be perfectly happy where it is, with 
     
    7676 * the happiness of individual chunks will improve the happiness of the 
    7777 * whole. 
    78  *  
     78 * 
    7979 * There are two things that factor into a chunk's happiness. 
    8080 * The things that make a chunk unhappy are: 
     
    8888 * weights that add into a general unhappiness for the chunk.  The lower 
    8989 * the unhappiness, the better. 
    90  *  
     90 * 
    9191 * Over time and usage, the dereference counts for chunks will increase 
    9292 * and eventually reach a maximum value of 255.  (The count is limited 
     
    103103 * regions).  Given a dump frequency of once per hour (the default), there 
    104104 * should be a period change about every 2.6 days. 
    105  *  
    106  *  
     105 * 
     106 * 
    107107 * <h3>Statistics:</h3> 
    108108 * The chunk memory management system keeps several statistics about 
     
    112112 * reported (in PennMUSH) through the use of the @stats command, 
    113113 * with /chunks switch. 
    114  *  
     114 * 
    115115 * @stats/chunks generates output similar to this: 
    116116 * \verbatim 
     
    123123 * Paging:        158686 out,     158554 in 
    124124 * Storage:      9628500 total (86% saturation) 
    125  *   
     125 * 
    126126 * Period:             1 (   5791834 accesses so far,       1085 chunks at max) 
    127127 * Migration:     245543 moves this period 
     
    140140 * fragmented free space (free space not in the largest free chunk for 
    141141 * its region is considered fragmented). 
    142  *  
     142 * 
    143143 * Next comes statistics on regions: the number of regions in use 
    144144 * and the number held in the memory cache.  All regions not in the 
    145145 * cache are paged out to disk.  Paging statistics follow, listing 
    146  * the number of times a region has been moved out of or into  
     146 * the number of times a region has been moved out of or into 
    147147 * memory cache.  After that, the total amount of storage (in memory 
    148148 * or on disk) used is given, along with the saturation rate (where 
    149149 * saturation is indicated by what fraction of the used space is 
    150150 * actually allocated in chunks). 
    151  *  
     151 * 
    152152 * Finally comes statistics on migration and the migration period. 
    153153 * The period number is listed, along with the total number of 
     
    161161 * the space can be either exactly filled by the move, or inexactly 
    162162 * filled (leaving some remaining free space). 
    163  *  
    164  *  
     163 * 
     164 * 
    165165 * <h3>Histograms:</h3> 
    166166 * The chunk memory management system can also display a few 
     
    168168 * through the use of the @stats command, with the /regions, /freespace, 
    169169 * or /paging switches. 
    170  *  
     170 * 
    171171 * All of @stats/regions, @stats/freespace, and @stas/paging produce 
    172172 * histograms vs. region average dereference count.  The histograms 
     
    177177 * the top of the histogram (with their real values labeled in 
    178178 * parenthesis next to them). 
    179  *  
     179 * 
    180180 * @stats/regions is a histogram of how many regions at each count 
    181181 * currently exist.  In a healthy game, there should be a large spike 
     
    188188 * the large spike would pass 128, at which point everything is halved 
    189189 * and the spike is pushed back down to 64. 
    190  *  
     190 * 
    191191 * @stats/freespace is a histogram of how much free space exists in 
    192192 * regions at each dereference count.  This histogram is included 
    193193 * to aid in diagnosis of the cause for dropping saturation rates. 
    194  *  
     194 * 
    195195 * @stats/paging is a histogram of the number of regions being paged 
    196196 * in or out at each dereference count.  As of this writing, a very 
     
    221221#include <sys/types.h> 
    222222#ifdef WIN32 
     223#include <wtypes.h> 
    223224#include <io.h> 
    224225#else 
     
    22432244 
    22442245/** Migrate allocated chunks around. 
    2245  *  
     2246 * 
    22462247 * \param count the number of chunks to move. 
    22472248 * \param references an array of pointers to chunk references, 
  • 1.8.3/tags/p2rc4/win32/config.h

    r479 r845  
    1 /* 
    2  * This file was produced by running the config_h.SH script, which 
    3  * gets its values from config.sh, which is generally produced by 
    4  * running Configure. 
    5  * 
    6  * Feel free to modify any of this as the need arises.  Note, however, 
    7  * that running config_h.SH again will wipe out any changes you've made. 
    8  * For a more permanent change edit config.sh and rerun config_h.SH. 
    9  * 
    10  * $Id: config.h 1.10 Wed, 02 Jun 2004 08:20:45 -0500 dunemush $ 
    11  */ 
    12  
    13 /* 
    14  * Package name      : pennmush 
    15  * Source directory  : . 
    16  * Configuration time: Fri Nov 16 19:02:38 EST 2001 
    17  * Configured by     : korongil 
    18  * Target system     : Win32 
    19  */ 
    20  
    21 #ifndef _config_h_ 
    22 #define _config_h_ 
    23  
    24 /* getdtablesize: 
    25  *  This catches use of the getdtablesize() subroutine, and remaps it 
    26  *  to either ulimit(4,0) or NOFILE, if getdtablesize() isn't available. 
    27  */ 
    28 /*#define getdtablesize()   / **/ 
    29  
    30 /* HAS_BCOPY: 
    31  *  This symbol is defined if the bcopy() routine is available to 
    32  *  copy blocks of memory. 
    33  */ 
    34 /* #define HAS_BCOPY    /**/ 
    35  
    36 /* HAS_BZERO: 
    37  *  This symbol is defined if the bzero() routine is available to 
    38  *  set a memory block to 0. 
    39  */ 
    40 /* #define HAS_BZERO    /**/ 
    41  
    42 /* HASCONST: 
    43  *  This symbol, if defined, indicates that this C compiler knows about 
    44  *  the const type. There is no need to actually test for that symbol 
    45  *  within your programs. The mere use of the "const" keyword will 
    46  *  trigger the necessary tests. 
    47  */ 
    48 #define HASCONST    /**/ 
    49 #ifndef HASCONST 
    50 #define const 
    51 #endif 
    52  
    53 /* HAS_GETPRIORITY: 
    54  *  This symbol, if defined, indicates that the getpriority routine is 
    55  *  available to get a process's priority. 
    56  */ 
    57 /* #define HAS_GETPRIORITY      /**/ 
    58  
    59 /* INTERNET: 
    60  *  This symbol, if defined, indicates that there is a mailer available 
    61  *  which supports internet-style addresses (user@site.domain). 
    62  */ 
    63 /* #define  INTERNET    /**/ 
    64  
    65 /* HAS_MEMSET: 
    66  *  This symbol, if defined, indicates that the memset routine is available 
    67  *  to set blocks of memory. 
    68  */ 
    69 #define HAS_MEMSET  /**/ 
    70  
    71 /* HAS_RENAME: 
    72  *  This symbol, if defined, indicates that the rename routine is available 
    73  *  to rename files.  Otherwise you should do the unlink(), link(), unlink() 
    74  *  trick. 
    75  */ 
    76 #define HAS_RENAME  /**/ 
    77  
    78 /* HAS_GETRUSAGE: 
    79  *  This symbol, if defined, indicates that the getrusage() routine is 
    80  *  available to get process statistics with a sub-second accuracy. 
    81  *  Inclusion of <sys/resource.h> and <sys/time.h> may be necessary. 
    82  */ 
    83 /* #define HAS_GETRUSAGE        /**/ 
    84  
    85 /* HAS_SELECT: 
    86  *  This symbol, if defined, indicates that the select routine is 
    87  *  available to select active file descriptors. If the timeout field 
    88  *  is used, <sys/time.h> may need to be included. 
    89  */ 
    90 #define HAS_SELECT  /**/ 
    91  
    92 /* HAS_SETLOCALE: 
    93  *  This symbol, if defined, indicates that the setlocale routine is 
    94  *  available to handle locale-specific ctype implementations. 
    95  */ 
    96 #define HAS_SETLOCALE   /**/ 
    97  
    98 /* HAS_SETPGID: 
    99  *  This symbol, if defined, indicates that the setpgid(pid, gpid) 
    100  *  routine is available to set process group ID. 
    101  */ 
    102 /* #define HAS_SETPGID  /**/ 
    103  
    104 /* HAS_SETPGRP: 
    105  *  This symbol, if defined, indicates that the setpgrp routine is 
    106  *  available to set the current process group. 
    107  */ 
    108 /* USE_BSD_SETPGRP: 
    109  *  This symbol, if defined, indicates that setpgrp needs two 
    110  *  arguments whereas USG one needs none.  See also HAS_SETPGID 
    111  *  for a POSIX interface. 
    112  */ 
    113 /*#define HAS_SETPGRP       /**/ 
    114 /*#define USE_BSD_SETPGRP   / **/ 
    115  
    116 /* HAS_SETPRIORITY: 
    117  *  This symbol, if defined, indicates that the setpriority routine is 
    118  *  available to set a process's priority. 
    119  */ 
    120 /*#define HAS_SETPRIORITY       /**/ 
    121  
    122 /* HAS_SIGACTION: 
    123  *  This symbol, if defined, indicates that Vr4's sigaction() routine 
    124  *  is available. 
    125  */ 
    126 /* #define HAS_SIGACTION    /**/ 
    127  
    128 /* HAS_SOCKET: 
    129  *  This symbol, if defined, indicates that the BSD socket interface is 
    130  *  supported. 
    131  */ 
    132 /* HAS_SOCKETPAIR: 
    133  *  This symbol, if defined, indicates that the BSD socketpair() call is 
    134  *  supported. 
    135  */ 
    136 /*#define HAS_SOCKET        /**/ 
    137 /*#define HAS_SOCKETPAIR    /**/ 
    138  
    139 /* HAS_STRCASECMP: 
    140  *  This symbol, if defined, indicates that the strcasecmp() routine is 
    141  *  available for case-insensitive string compares. 
    142  */ 
    143 /* #define HAS_STRCASECMP   /**/ 
    144  
    145 /* HAS_STRDUP: 
    146  *  This symbol, if defined, indicates that the strdup routine is 
    147  *  available to duplicate strings in memory. Otherwise, roll up 
    148  *  your own... 
    149  */ 
    150 #define HAS_STRDUP      /**/ 
    151  
    152 /* HAS_SYSCONF: 
    153  *  This symbol, if defined, indicates that sysconf() is available 
    154  *  to determine system related limits and options. 
    155  */ 
    156 /* #define HAS_SYSCONF  /**/ 
    157  
    158 /* VOIDSIG: 
    159  *  This symbol is defined if this system declares "void (*signal(...))()" in 
    160  *  signal.h.  The old way was to declare it as "int (*signal(...))()".  It 
    161  *  is up to the package author to declare things correctly based on the 
    162  *  symbol. 
    163  */ 
    164 /* Signal_t: 
    165  *  This symbol's value is either "void" or "int", corresponding to the 
    166  *  appropriate return type of a signal handler.  Thus, you can declare 
    167  *  a signal handler using "Signal_t (*handler)()", and define the 
    168  *  handler using "Signal_t handler(sig)". 
    169  */ 
    170 #define VOIDSIG     /**/ 
    171 #define Signal_t void   /* Signal handler's return type */ 
    172  
    173 /* HASVOLATILE: 
    174  *  This symbol, if defined, indicates that this C compiler knows about 
    175  *  the volatile declaration. 
    176  */ 
    177 #define HASVOLATILE /**/ 
    178 #ifndef HASVOLATILE 
    179 #define volatile 
    180 #endif 
    181  
    182 /* HAS_WAITPID: 
    183  *  This symbol, if defined, indicates that the waitpid routine is 
    184  *  available to wait for child process. 
    185  */ 
    186 /* #define HAS_WAITPID  /**/ 
    187  
    188 /* I_ARPA_INET: 
    189  *  This symbol, if defined, indicates to the C program that it should 
    190  *  include <arpa/inet.h> to get inet_addr and friends declarations. 
    191  */ 
    192 /*#define   I_ARPA_INET     /**/ 
    193  
    194 /* I_FCNTL: 
    195  *  This manifest constant tells the C program to include <fcntl.h>. 
    196  */ 
    197 #define I_FCNTL /**/ 
    198  
    199 /* I_LIMITS: 
    200  *  This symbol, if defined, indicates to the C program that it should 
    201  *  include <limits.h> to get definition of symbols like WORD_BIT or 
    202  *  LONG_MAX, i.e. machine dependant limitations. 
    203  */ 
    204 #define I_LIMITS        /**/ 
    205  
    206 /* I_LOCALE: 
    207  *  This symbol, if defined, indicates to the C program that it should 
    208  *  include <locale.h>. 
    209  */ 
    210 #define I_LOCALE        /**/ 
    211  
    212 /* I_MALLOC: 
    213  *  This symbol, if defined, indicates to the C program that it should 
    214  *  include <malloc.h>. 
    215  */ 
    216 #define I_MALLOC        /**/ 
    217  
    218 /* I_NETINET_IN: 
    219  *  This symbol, if defined, indicates to the C program that it should 
    220  *  include <netinet/in.h>. Otherwise, you may try <sys/in.h>. 
    221  */ 
    222 /* I_SYS_IN: 
    223  *  This symbol, if defined, indicates to the C program that it should 
    224  *  include <sys/in.h> instead of <netinet/in.h>. 
    225  */ 
    226 /*#define I_NETINET_IN  /**/ 
    227 /*#define I_SYS_IN      / **/ 
    228  
    229 /* I_STDDEF: 
    230  *  This symbol, if defined, indicates that <stddef.h> exists and should 
    231  *  be included. 
    232  */ 
    233 #define I_STDDEF    /**/ 
    234  
    235 /* I_STDLIB: 
    236  *  This symbol, if defined, indicates that <stdlib.h> exists and should 
    237  *  be included. 
    238  */ 
    239 #define I_STDLIB        /**/ 
    240  
    241 /* I_STRING: 
    242  *  This symbol, if defined, indicates to the C program that it should 
    243  *  include <string.h> (USG systems) instead of <strings.h> (BSD systems). 
    244  */ 
    245 #define I_STRING        /**/ 
    246  
    247 /* I_SYS_FILE: 
    248  *  This symbol, if defined, indicates to the C program that it should 
    249  *  include <sys/file.h> to get definition of R_OK and friends. 
    250  */ 
    251 /*#define I_SYS_FILE        /**/ 
    252  
    253 /* I_SYS_MMAN: 
    254  *  This symbol, if defined, indicates to the C program that it should 
    255  *  include <sys/mman.h>. 
    256  */ 
    257 /*#define   I_SYS_MMAN      /**/ 
    258  
    259 /* I_SYS_PARAM: 
    260  *  This symbol, if defined, indicates to the C program that it should 
    261  *  include <sys/param.h>. 
    262  */ 
    263 /*#define I_SYS_PARAM       /**/ 
    264  
    265 /* I_SYS_RESOURCE: 
    266  *  This symbol, if defined, indicates to the C program that it should 
    267  *  include <sys/resource.h>. 
    268  */ 
    269 /* #define I_SYS_RESOURCE       /**/ 
    270  
    271 /* I_SYS_SELECT: 
    272  *  This symbol, if defined, indicates to the C program that it should 
    273  *  include <sys/select.h> in order to get definition of struct timeval. 
    274  */ 
    275 /* #define I_SYS_SELECT /**/ 
    276  
    277 /* I_SYS_SOCKET: 
    278  *  This symbol, if defined, indicates to the C program that it should 
    279  *  include <sys/socket.h> before performing socket calls. 
    280  */ 
    281 /*#define I_SYS_SOCKET      /**/ 
    282  
    283 /* I_SYS_STAT: 
    284  *  This symbol, if defined, indicates to the C program that it should 
    285  *  include <sys/stat.h>. 
    286  */ 
    287 #define I_SYS_STAT      /**/ 
    288  
    289 /* I_SYS_TYPES: 
    290  *  This symbol, if defined, indicates to the C program that it should 
    291  *  include <sys/types.h>. 
    292  */ 
    293 #define I_SYS_TYPES     /**/ 
    294  
    295 /* I_SYS_WAIT: 
    296  *  This symbol, if defined, indicates to the C program that it should 
    297  *  include <sys/wait.h>. 
    298  */ 
    299 /* #define I_SYS_WAIT   /**/ 
    300  
    301 /* I_TIME: 
    302  *  This symbol, if defined, indicates to the C program that it should 
    303  *  include <time.h>. 
    304  */ 
    305 /* I_SYS_TIME: 
    306  *  This symbol, if defined, indicates to the C program that it should 
    307  *  include <sys/time.h>. 
    308  */ 
    309 #define I_TIME      / **/ 
    310 /* #define I_SYS_TIME       /**/ 
    311  
    312 /* I_UNISTD: 
    313  *  This symbol, if defined, indicates to the C program that it should 
    314  *  include <unistd.h>. 
    315  */ 
    316 /* #define I_UNISTD     /**/ 
    317  
    318 /* I_VALUES: 
    319  *  This symbol, if defined, indicates to the C program that it should 
    320  *  include <values.h> to get definition of symbols like MINFLOAT or 
    321  *  MAXLONG, i.e. machine dependant limitations.  Probably, you 
    322  *  should use <limits.h> instead, if it is available. 
    323  */ 
    324 /*#define I_VALUES      /**/ 
    325  
    326 /* Free_t: 
    327  *  This variable contains the return type of free().  It is usually 
    328  * void, but occasionally int. 
    329  */ 
    330 /* Malloc_t: 
    331  *  This symbol is the type of pointer returned by malloc and realloc. 
    332  */ 
    333 #define Malloc_t void *         /**/ 
    334 #define Free_t void         /**/ 
    335  
    336 /* Pid_t: 
    337  *  This symbol holds the type used to declare process ids in the kernel. 
    338  *  It can be int, uint, pid_t, etc... It may be necessary to include 
    339  *  <sys/types.h> to get any typedef'ed information. 
    340  */ 
    341 #define Pid_t unsigned long     /* PID type */ 
    342  
    343 /* CAN_PROTOTYPE: 
    344  *  If defined, this macro indicates that the C compiler can handle 
    345  *  function prototypes. 
    346  */ 
    347 /* _: 
    348  *  This macro is used to declare function parameters for folks who want 
    349  *  to make declarations with prototypes using a different style than 
    350  *  the above macros.  Use double parentheses.  For example: 
    351  * 
    352  *      int main _((int argc, char *argv[])); 
    353  */ 
    354 #define CAN_PROTOTYPE   /**/ 
    355 #ifdef CAN_PROTOTYPE 
    356 #define _(args) args 
     1/* PennMUSH config.h. Autogenerated by ./configure */ 
     2 
     3#ifndef __CONFIG_H 
     4#define __CONFIG_H 
     5 
     6/* Headers */ 
     7 
     8#undef I_ARPA_INET 
     9 
     10#undef I_ARPA_NAMESER 
     11 
     12#define I_FCNTL 
     13 
     14#undef I_FLOATINGPOINT 
     15 
     16#undef I_LIBINTL 
     17 
     18#define I_MALLOC 
     19 
     20#undef I_NETDB 
     21 
     22#undef I_NETINET_IN 
     23 
     24#undef I_NETINET_TCP 
     25 
     26#undef HAVE_STDINT_H 
     27 
     28#undef I_SYS_ERRNO 
     29 
     30#undef I_SYS_FILE 
     31 
     32#undef I_SYS_IN 
     33 
     34#undef I_SYS_MMAN 
     35 
     36#undef I_SYS_PAGE 
     37 
     38#undef I_SYS_PARAM 
     39 
     40#undef I_SYS_SOCKET 
     41 
     42#define I_SYS_STAT 
     43 
     44#undef I_SYS_TIME 
     45 
     46#undef TIME_WITH_SYS_TIME 
     47 
     48#define I_SYS_TYPES 
     49 
     50#undef HAVE_UNISTD_H 
     51 
     52#ifdef HAVE_UNISTD_H 
     53#define I_UNISTD 
     54#endif 
     55 
     56#undef HAVE_SYS_WAIT_H 
     57 
     58#ifdef HAVE_SYS_WAIT_H 
     59#define I_SYS_WAIT 
     60#endif 
     61 
     62#undef HAVE_IEEEFP_H 
     63 
     64/* Libraries */ 
     65 
     66#undef HAVE_MYSQL 
     67 
     68#ifdef HAVE_MYSQL 
     69#define HAS_MYSQL 
     70#endif 
     71 
     72#undef HAVE_POSTGRESQL 
     73 
     74#undef HAVE_SQLITE3 
     75 
     76#undef HAVE_SSL 
     77 
     78#ifdef HAVE_SSL 
     79#define HAS_OPENSSL 
     80#endif 
     81 
     82/* Types */ 
     83 
     84#define socklen_t unsigned long 
     85 
     86#define uint8_t __int8 
     87 
     88#define uint16_t __int16 
     89 
     90#define uint32_t __int32 
     91 
     92#define pid_t unsigned long 
     93 
     94typedef void* Malloc_t; 
     95typedef void Free_t; 
     96 
     97/* Functions */ 
     98#undef HAS_BINDTEXTDOMAIN 
     99 
     100#undef HAVE_CBRT 
     101 
     102#undef HAS_CRYPT 
     103 
     104#undef HAS_FPSETMASK 
     105 
     106#undef HAS_FPSETROUND 
     107 
     108#undef HAS_GAI_STRERROR 
     109 
     110#undef HAS_GETADDRINFO 
     111 
     112#undef HAS_GETDATE 
     113 
     114#undef HAS_GETHOSTBYNAME2 
     115 
     116#undef HAS_GETNAMEINFO 
     117 
     118#undef HAS_GETPAGESIZE 
     119 
     120#undef HAS_GETRLIMIT 
     121 
     122#undef HAS_GETRUSAGE 
     123 
     124#undef HAS_GETTEXT 
     125 
     126#undef HAS_INET_PTON 
     127 
     128#undef HAS_ITIMER 
     129 
     130#define HAS_SETLOCALE 
     131 
     132#undef HAS_SETPGRP 
     133 
     134#undef SETPGRP_VOID 
     135 
     136#undef HAVE_GETUID 
     137 
     138#undef HAVE_GETEUID 
     139 
     140#undef HAVE_SETEUID 
     141 
     142#undef HAVE_GETPRIORITY 
     143 
     144#undef HAVE_SETPRIORITY 
     145 
     146#undef HAS_SIGACTION 
     147 
     148#undef HAS_SIGPROCMASK 
     149 
     150#define HAS_SNPRINTF 
     151 
     152#undef HAS_SOCKETPAIR 
     153 
     154#undef HAVE_STRCASECMP 
     155 
     156#undef HAVE__STRICMP 
     157 
     158#define HAS_STRDUP 
     159 
     160#define HAVE_STRCOLL 
     161 
     162#define HAS_STRXFRM 
     163 
     164#undef HAS_SYSCONF 
     165 
     166#undef HAS_TEXTDOMAIN 
     167 
     168#undef HAS_VSNPRINTF 
     169 
     170#undef HAS_WAITPID 
     171 
     172#define UNION_WAIT 
     173 
     174/* Variables and defines */ 
     175 
     176#define HAVE_H_ERRNO 
     177 
     178#undef HAVE_SIGCHLD 
     179 
     180#undef HAVE_SIGCLD 
     181 
     182/* Files */ 
     183 
     184#undef HAS_DEV_URANDOM 
     185 
     186/* Misc. */ 
     187 
     188#undef FORCE_IPV4 
     189 
     190#undef DONT_TRANSLATE 
     191 
     192#undef HAVE_UPTIME 
     193 
     194#undef UPTIME 
     195 
     196#undef HAVE_SENDMAIL 
     197 
     198#undef SENDMAIL 
     199 
     200#define HAVE_SAFE_TOUPPER 
     201 
     202/* Optional language features */ 
     203#undef restrict 
     204#undef inline 
     205 
     206#ifdef _MSC_VER 
     207#define WIN32_CDECL __cdecl 
    357208#else 
    358 #define _(args) () 
    359 #endif 
    360  
    361 /* Size_t: 
    362  *  This symbol holds the type used to declare length parameters 
    363  *  for string functions.  It is usually size_t, but may be 
    364  *  unsigned long, int, etc.  It may be necessary to include 
    365  *  <sys/types.h> to get any typedef'ed information. 
    366  */ 
    367 #define Size_t size_t    /* length paramater for string functions */ 
    368  
    369 /* VOIDFLAGS: 
    370  *  This symbol indicates how much support of the void type is given by this 
    371  *  compiler.  What various bits mean: 
    372  * 
    373  *      1 = supports declaration of void 
    374  *      2 = supports arrays of pointers to functions returning void 
    375  *      4 = supports comparisons between pointers to void functions and 
    376  *          addresses of void functions 
    377  *      8 = suports declaration of generic void pointers 
    378  * 
    379  *  The package designer should define VOIDUSED to indicate the requirements 
    380  *  of the package.  This can be done either by #defining VOIDUSED before 
    381  *  including config.h, or by defining defvoidused in Myinit.U.  If the 
    382  *  latter approach is taken, only those flags will be tested.  If the 
    383  *  level of void support necessary is not present, defines void to int. 
    384  */ 
    385 #ifndef VOIDUSED 
    386 #define VOIDUSED 15 
    387 #endif 
    388 #define VOIDFLAGS 15 
    389 #if (VOIDFLAGS & VOIDUSED) != VOIDUSED 
    390 #define void int        /* is void to be avoided? */ 
    391 #define M_VOID          /* Xenix strikes again */ 
    392 #endif 
    393  
    394 /* WIN32_CDECL: 
    395  *  Defined as __cdecl if the compiler can handle that keyword to specify 
    396  *  C-style argument passing conventions. This allows MS VC++ 
    397  *  on Win32 to use the __fastcall convention for everything else 
    398  *  and get a performance boost. Any compiler with a brain (read: 
    399  *  not MS VC) handles this optimization automatically without such a 
    400  *  kludge. On these systems, this is defined as nothing. 
    401  */ 
    402 #define WIN32_CDECL __cdecl 
    403  
    404 /* CAN_TAKE_ARGS_IN_FP: 
    405  *  Defined if the compiler prefers that function pointer parameters 
    406  *  in prototypes include the function's arguments, rather than 
    407  *  nothing (that is, int (*fun)(int) rather than int(*fun)(). 
    408  */ 
    409 #define CAN_TAKE_ARGS_IN_FP /**/ 
    410  
    411 /* HAS_ASSERT: 
    412  *  If defined, this system has the assert() macro. 
    413  */ 
    414 #define HAS_ASSERT  /**/ 
    415  
    416 /* HASATTRIBUTE: 
    417  *  This symbol indicates the C compiler can check for function attributes, 
    418  *  such as printf formats. This is normally only supported by GNU cc. 
    419  */ 
    420 /* #define HASATTRIBUTE     /**/ 
    421 #ifndef HASATTRIBUTE 
    422 #define __attribute__(_arg_) 
    423 #endif 
    424  
    425 /* HAS_BINDTEXTDOMAIN: 
    426  *  Defined if bindtextdomain is available(). 
    427  */ 
    428 /*#define HAS_BINDTEXTDOMAIN /**/ 
    429  
    430 /* HAS_CRYPT: 
    431  *  This symbol, if defined, indicates that the crypt routine is available 
    432  *  to encrypt passwords and the like. 
    433  */ 
    434 /* I_CRYPT: 
    435  *  This symbol, if defined, indicates that <crypt.h> can be included. 
    436  */ 
    437 /* #define HAS_CRYPT        /**/ 
    438  
    439 /* #define I_CRYPT      /**/ 
    440  
    441 /* FORCE_IPV4: 
    442  *  If defined, this system will not use IPv6. Necessary for Openbsd. 
    443  */ 
    444 /*#define FORCE_IPV4    / **/ 
    445  
    446 /* HAS_FPSETROUND: 
    447  *  This symbol, if defined, indicates that the crypt routine is available 
    448  *  to encrypt passwords and the like. 
    449  */ 
    450 /* I_FLOATINGPOINT: 
    451  *  This symbol, if defined, indicates that <crypt.h> can be included. 
    452  */ 
    453 /*#define HAS_FPSETROUND        / **/ 
    454  
    455 /*#define HAS_FPSETMASK     / **/ 
    456  
    457 /*#define I_FLOATINGPOINT       / **/ 
    458  
    459 /* HAS_GAI_STRERROR: 
    460  *  This symbol, if defined, indicates that getaddrinfo()'s error cores 
    461  * can be converted to strings for printing. 
    462  */ 
    463 /* #define HAS_GAI_STRERROR     /**/ 
    464  
    465 /* HAS_GETADDRINFO: 
    466  *  This symbol, if defined, indicates that the getaddrinfo() routine is 
    467  *  available to lookup internet addresses in some data base or other. 
    468  */ 
    469 /* #define HAS_GETADDRINFO      /**/ 
    470  
    471 /* HAS_GETDATE: 
    472  *  This symbol, if defined, indicates that the getdate() routine is 
    473  *  available to convert date strings into struct tm's. 
    474  */ 
    475 /*#define HAS_GETDATE       /**/ 
    476  
    477 /* HAS_GETHOSTBYNAME2: 
    478  *  This symbol, if defined, indicates that the gethostbyname2() 
    479  * function is available to resolve hostnames. 
    480  */ 
    481 /*#define HAS_GETHOSTBYNAME2        /**/ 
    482  
    483 /* HAS_GETNAMEINFO: 
    484  *  This symbol, if defined, indicates that the getnameinfo() routine is 
    485  *  available to lookup host names in some data base or other. 
    486  */ 
    487 /* #define HAS_GETNAMEINFO      /**/ 
    488  
    489 /* HAS_GETPAGESIZE: 
    490  *  This symbol, if defined, indicates that the getpagesize system call 
    491  *  is available to get system page size, which is the granularity of 
    492  *  many memory management calls. 
    493  */ 
    494 /* PAGESIZE_VALUE: 
    495  *  This symbol holds the size in bytes of a system page (obtained via 
    496  *  the getpagesize() system call at configuration time or asked to the 
    497  *  user if the system call is not available). 
    498  */ 
    499 /*#define HAS_GETPAGESIZE     /**/ 
    500 #define PAGESIZE_VALUE 4096 /* System page size, in bytes */ 
    501  
    502 /* HAS_GETTEXT: 
    503  *  Defined if gettext is available(). 
    504  */ 
    505 /*#define HAS_GETTEXT /**/ 
    506  
    507 /* HAS_HUGE_VAL: 
    508  *  If defined, this system has the HUGE_VAL constant. We like this, 
    509  *  and don't bother defining the other floats below if we find it. 
    510  */ 
    511 /* HAS_HUGE: 
    512  *  If defined, this system has the HUGE constant. We like this, and 
    513  *  don't bother defining the other floats below if we find it. 
    514  */ 
    515 /* HAS_INT_MAX: 
    516  *  If defined, this system has the INT_MAX constant. 
    517  */ 
    518 /* HAS_MAXINT: 
    519  *  If defined, this system has the MAXINT constant. 
    520  */ 
    521 /* HAS_MAXDOUBLE: 
    522  *  If defined, this system has the MAXDOUBLE constant. 
    523  */ 
    524 #define HAS_HUGE_VAL    /**/ 
    525  
    526 /*#define HAS_HUGE  / **/ 
    527  
    528 #define HAS_INT_MAX /**/ 
    529  
    530 /*#define HAS_MAXINT    / **/ 
    531  
    532 /*#define HAS_MAXDOUBLE / **/ 
    533  
    534 /* HAS_IEEE_MATH: 
    535  *  Defined if the machine supports IEEE math - that is, can safely 
    536  *  return NaN or Inf rather than crash on bad math. 
    537  */ 
    538 /* #define HAS_IEEE_MATH /**/ 
    539  
    540 /* HAS_INET_PTON: 
    541  *  This symbol, if defined, indicates that the inet_pton() and 
    542  *     inet_ntop() routines are available to convert IP addresses.. 
    543  */ 
    544 /*#define HAS_INET_PTON     /**/ 
    545  
    546 /* HAS_IPV6: 
    547  *  If defined, this system has the sockaddr_in6 struct and AF_INET6. 
    548  * We can't rely on just AF_INET6 being defined. 
    549  */ 
    550 /*#define HAS_IPV6  /**/ 
    551  
    552 /* SIGNALS_KEPT: 
    553  *  This symbol is defined if signal handlers needn't be reinstated after 
    554  *  receipt of a signal. 
    555  */ 
    556 #define SIGNALS_KEPT    /**/ 
    557  
    558 /* HAS_MEMCPY: 
    559  *  This symbol, if defined, indicates that the memcpy routine is available 
    560  *  to copy blocks of memory. If not, it will be mapped to bcopy 
    561  *  in confmagic.h 
    562  */ 
    563 /* HAS_MEMMOVE: 
    564  *  This symbol, if defined, indicates that the memmove routine is available 
    565  *  to copy blocks of memory. If not, it will be mapped to bcopy 
    566  */ 
    567 #define HAS_MEMCPY  /**/ 
    568  
    569 #define HAS_MEMMOVE /**/ 
    570  
    571 /* CAN_NEWSTYLE: 
    572  *  Defined if new-style function definitions are allowable. 
    573  *  If they are, we can avoid some warnings that you get if 
    574  *  you declare char arguments in a prototype and use old-style 
    575  *  function definitions, which implicitly promote them to ints. 
    576  */ 
    577 #define CAN_NEWSTYLE /**/ 
    578  
    579 /* HAS_RANDOM: 
    580  *  Have we got random(), our first choice for number generation? 
    581  */ 
    582 /* HAS_LRAND48: 
    583  *  Have we got lrand48(), our second choice? 
    584  */ 
    585 /* HAS_RAND: 
    586  *  Have we got rand(), our last choice? 
    587  */ 
    588 /* #define HAS_RANDOM   /**/ 
    589 /* #define HAS_LRAND48  /**/ 
    590 #define HAS_RAND    /**/ 
    591  
    592 /* HAS_GETRLIMIT: 
    593  *  This symbol, if defined, indicates that the getrlimit() routine is 
    594  *  available to get resource limits. Probably means setrlimit too. 
    595  *  Inclusion of <sys/resource.h> and <sys/time.h> may be necessary. 
    596  */ 
    597 /* #define HAS_GETRLIMIT        /**/ 
    598  
    599 /* SENDMAIL: 
    600  *  This symbol contains the full pathname to sendmail. 
    601  */ 
    602 /* HAS_SENDMAIL: 
    603  *  If defined, we have sendmail. 
    604  */ 
    605 /* #define HAS_SENDMAIL /**/ 
    606 #define SENDMAIL    "/usr/sbin/sendmail" 
    607  
    608 /* HAS_SIGCHLD: 
    609  *  If defined, this system has the SIGCHLD constant. 
    610  */ 
    611 /* HAS_SIGCLD: 
    612  *  If defined, this system has the SIGCLD constant (SysVish SIGCHLD). 
    613  */ 
    614 /*#define HAS_SIGCHLD   /**/ 
    615  
    616 /*#define HAS_SIGCLD    /**/ 
    617  
    618 /* CAN_PROTOTYPE_SIGNAL: 
    619  *  This symbol is defined if we can safely prototype our rewritten 
    620  *  signal() function as: 
    621  *  Signal_t(*Sigfunc) _((int)); 
    622  *  extern Sigfunc signal _((int signo, Sigfunc func)); 
    623  */ 
    624 /*#define CAN_PROTOTYPE_SIGNAL  /**/ 
    625  
    626 /* HAS_SIGPROCMASK: 
    627  *  This symbol, if defined, indicates that POSIX's sigprocmask() routine 
    628  *  is available. 
    629  */ 
    630 /*#define HAS_SIGPROCMASK   /**/ 
    631  
    632 /* HAS_SNPRINTF: 
    633  *  This symbol, if defined, indicates that the snprintf routine is 
    634  *  available. If not, we use sprintf, which is less safe. 
    635  */ 
    636 #define HAS_SNPRINTF    /**/ 
    637  
    638 /* HAS_SOCKLEN_T: 
    639  *  If defined, this system has the socklen_t type. 
    640  */ 
    641 /*#define HAS_SOCKLEN_T /**/ 
    642  
    643 /* HAS_STRCHR: 
    644  *  This symbol is defined to indicate that the strchr()/strrchr() 
    645  *  functions are available for string searching. If not, try the 
    646  *  index()/rindex() pair. 
    647  */ 
    648 /* HAS_INDEX: 
    649  *  This symbol is defined to indicate that the index()/rindex() 
    650  *  functions are available for string searching. 
    651  */ 
    652 #define HAS_STRCHR  /**/ 
    653 /* #define HAS_INDEX    /**/ 
    654  
    655 /* HAS_STRCOLL: 
    656  *  This symbol, if defined, indicates that the strcoll routine is 
    657  *  available to compare strings using collating information. 
    658  */ 
    659 #define HAS_STRCOLL /**/ 
    660  
    661 /* HAS_STRXFRM: 
    662  *  This symbol, if defined, indicates that the strxfrm routine is 
    663  *  available to transform strings using collating information. 
    664  */ 
    665 #define HAS_STRXFRM /**/ 
    666  
    667 /* HAS_TCL: 
    668  *  This symbol, if defined, means we have the tcl library 
    669  */ 
    670 /*#define HAS_TCL       / **/ 
    671  
    672 /* I_TCL: 
    673  *  This symbol, if defined, means we have the <tcl.h> include file 
    674  */ 
    675 /*#define I_TCL     / **/ 
    676  
    677 /* HAS_TEXTDOMAIN: 
    678  *  Defined if textdomain is available(). 
    679  */ 
    680 /*#define HAS_TEXTDOMAIN /**/ 
    681  
    682 /* HAS_TIMELOCAL: 
    683  *  This symbol, if defined, indicates that the timelocal() routine is 
    684  *  available. 
    685  */ 
    686 /* #define HAS_TIMELOCAL        /**/ 
    687  
    688 /* HAS_SAFE_TOUPPER: 
    689  *  Defined if toupper() can operate safely on any ascii character. 
    690  *  Some systems only allow toupper() on lower-case ascii chars. 
    691  */ 
    692 #define HAS_SAFE_TOUPPER /**/ 
    693  
    694 /* UPTIME_PATH: 
    695  *  This symbol gives the full path to the uptime(1) program if 
    696  *  it exists on the system. If not, this symbol is undefined. 
    697  */ 
    698 /* HAS_UPTIME: 
    699  *  This symbol is defined if uptime(1) is available. 
    700  */ 
    701 /* #define HAS_UPTIME   /**/ 
    702 #define UPTIME_PATH "/usr/bin/uptime" 
    703  
    704 /* UNION_WAIT: 
    705  *  This symbol if defined indicates to the C program that the argument 
    706  *  for the wait() system call should be declared as 'union wait status' 
    707  *  instead of 'int status'. You probably need to include <sys/wait.h> 
    708  *  in the former case (see I_SYSWAIT). 
    709  */ 
    710 #define UNION_WAIT      / **/ 
    711  
    712 /* HAS_VSNPRINTF: 
    713  *  This symbol, if defined, indicates that the vsnprintf routine is 
    714  *  available to printf with a pointer to an argument list.  If not, you 
    715  *  may need to write your own, probably in terms of _doprnt(). 
    716  */ 
    717 /* #define HAS_VSNPRINTF    /**/ 
    718  
    719 /* I_ARPA_NAMESER: 
    720  *  This symbol, if defined, indicates to the C program that it should 
    721  *  include <arpa/nameser.h> to get nameser_addr and friends declarations. 
    722  */ 
    723 /*#define   I_ARPA_NAMESER      /**/ 
    724  
    725 /* I_ERRNO: 
    726  *  This symbol, if defined, indicates to the C program that it can 
    727  *  include <errno.h>. 
    728  */ 
    729 /* I_SYS_ERRNO: 
    730  *  This symbol, if defined, indicates to the C program that it can 
    731  *  include <sys/errno.h>. 
    732  */ 
    733 #define I_ERRNO     /**/ 
    734  
    735 /*#define I_SYS_ERRNO       /**/ 
    736  
    737 /* I_LIBINTL: 
    738  *  This symbol, if defined, indicates to the C program that it can 
    739  *  include <libintl.h>. 
    740  */ 
    741 /*#define I_LIBINTL     /**/ 
    742  
    743 /* I_MEMORY: 
    744  *  This symbol, if defined, indicates to the C program that it should 
    745  *  include <memory.h>. 
    746  */ 
    747 #define I_MEMORY        / **/ 
    748  
    749 /* I_NETDB: 
    750  *  This symbol, if defined, indicates to the C program that it can 
    751  *  include <errno.h>. 
    752  */ 
    753 /*#define I_NETDB       /**/ 
    754  
    755 /* I_SETJMP: 
    756  *  This symbol, if defined, indicates to the C program that it can 
    757  *  include <setjmp.h> and have things work right. 
    758  */ 
    759 #define I_SETJMP        /**/ 
    760  
    761 /* USE_TIOCNOTTY: 
    762  *  This symbol, if defined indicate to the C program that the ioctl() 
    763  *  call with TIOCNOTTY should be used to void tty association. 
    764  *  Otherwise (on USG probably), it is enough to close the standard file 
    765  *  decriptors and do a setpgrp(). 
    766  */ 
    767 /*#define USE_TIOCNOTTY /**/ 
    768  
    769 /* I_SYS_PAGE: 
    770  *  This symbol, if defined, indicates to the C program that it should 
    771  *  include <sys/page.h>. 
    772  */ 
    773 /*#define I_SYS_PAGE        / **/ 
    774  
    775 /* I_SYS_VLIMIT: 
    776  *  This symbol, if defined, indicates to the C program that it should 
    777  *  include <sys/vlimit.h>. 
    778  */ 
    779 /* #define I_SYS_VLIMIT     /**/ 
    780  
    781 /* I_STDARG: 
    782  *  This symbol, if defined, indicates that <stdarg.h> exists and should 
    783  *  be included. 
    784  */ 
    785 #define I_STDARG        /**/ 
    786  
    787 /* HAS_MYSQL: 
    788  *     Defined if mysql client libraries are available. 
    789  */ 
    790 /* #define HAS_MYSQL   /**/ 
    791  
    792 /* HAS_OPENSSL: 
    793  *     Defined if openssl 0.9.6+ is available. 
    794  */ 
    795 /* #define HAS_OPENSSL /**/ 
    796  
    797  
    798 /* CAN_KEEPALIVE: 
    799  *      This symbol if defined indicates to the C program that the SO_KEEPALIVE 
    800  *      option of setsockopt() will work as advertised in the manual. 
    801  */ 
    802 /* CAN_KEEPIDLE: 
    803  *      This symbol if defined indicates to the C program that the TCP_KEEPIDLE 
    804  *      option of setsockopt() will work as advertised in the manual. 
    805  */ 
    806 /* #define CAN_KEEPALIVE           /**/ 
    807  
    808 /* #define CAN_KEEPIDLE            /**/ 
    809  
    810 #endif 
     209#define WIN32_CDECL 
     210#endif 
     211 
     212#undef HAVE___ATTRIBUTE__ 
     213 
     214#ifndef HAVE___ATTRIBUTE__ 
     215#define __attribute__(x) 
     216#endif 
     217 
     218#undef GCC_MALLOC_CALL 
     219 
     220/* TODO: Change in source */ 
     221#define RESTRICT 
     222 
     223#endif /* __CONFIG_H */ 
  • 1.8.3/tags/p2rc4/win32/funs.h

    r527 r845  
    142142FUNCTION_PROTO(fun_isint); 
    143143FUNCTION_PROTO(fun_isnum); 
     144FUNCTION_PROTO(fun_isobjid); 
    144145FUNCTION_PROTO(fun_isword); 
    145146FUNCTION_PROTO(fun_itemize); 
     
    234235FUNCTION_PROTO(fun_pemit); 
    235236FUNCTION_PROTO(fun_pi); 
     237FUNCTION_PROTO(fun_player); 
    236238FUNCTION_PROTO(fun_playermem); 
    237239FUNCTION_PROTO(fun_pmatch); 
  • 1.8.3/tags/p2rc4/win32/msvc.net/pennmush.vcproj

    r657 r845  
    723723            > 
    724724        </File> 
     725        <File 
     726            RelativePath=".\src\sort.c" 
     727            > 
     728        </File> 
    725729    </Files> 
    726730    <Globals>