X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fada%2Fgen-soccon.c;h=79701bbad1029468e4306b6689acbeff44f64bf8;hb=1ca2dbd8f9ff34b6db00c538f27d59dd57482f04;hp=643f63997c5be6c715850afd3d73286caa85e189;hpb=7310cd33928d0a79acca651a0e67204b3528e57a;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ada/gen-soccon.c b/gcc/ada/gen-soccon.c index 643f63997c5..79701bbad10 100644 --- a/gcc/ada/gen-soccon.c +++ b/gcc/ada/gen-soccon.c @@ -4,7 +4,7 @@ * * * G E N - S O C C O N * * * - * Copyright (C) 2004-2005 Free Software Foundation, Inc. * + * Copyright (C) 2004-2007, Free Software Foundation, Inc. * * * * GNAT is free software; you can redistribute it and/or modify it under * * terms of the GNU General Public License as published by the Free Soft- * @@ -24,20 +24,33 @@ /* This program generates g-soccon.ads */ +/* + * To build using DEC C: + * + * CC/DEFINE="TARGET=""OpenVMS""" gen-soccon + * LINK gen-soccon + * RUN gen-soccon + * + * Note: OpenVMS versions older than 8.3 provide an incorrect value in + * the DEC C header files for MSG_WAITALL. To generate the VMS version + * of g-soccon.ads, gen-soccon should be run on an 8.3 or later machine. + */ + +#ifndef TARGET +# error Please define TARGET +#endif + +#include #include #include - -#include "gsocket.h" +#include #ifdef __MINGW32__ -#include -#else -#include -#include -#include -#include +#include #endif +#include "gsocket.h" + struct line { char *text; char *value; @@ -53,8 +66,8 @@ struct line *first = NULL, *last = NULL; #define _NL TXT("") /* Empty line */ -#define itoad(n) f_itoa ("%d", n) -#define itoax(n) f_itoa ("16#%08x#", n) +#define itoad(n) f_itoa ("%d", (n)) +#define itoax(n) f_itoa ("16#%08x#", (n)) #define CND(name,comment) add_line(#name, itoad (name), comment); /* Constant (decimal) */ @@ -65,6 +78,9 @@ struct line *first = NULL, *last = NULL; #define CN_(name,comment) add_line(#name, name, comment); /* Constant (generic) */ +#define STR(p) STR1(p) +#define STR1(p) #p + void output (void); /* Generate output spec */ @@ -73,6 +89,10 @@ char *f_itoa (char *, int); void add_line (char *, char*, char*); +#ifdef __MINGW32__ +unsigned int _CRT_fmode = _O_BINARY; +#endif + int main (void) { @@ -84,7 +104,7 @@ TXT("-- G N A T . S O C K E T S . C O N S T A N T S TXT("-- --") TXT("-- S p e c --") TXT("-- --") -TXT("-- Copyright (C) 2000-2005 Free Software Foundation, Inc. --") +TXT("-- Copyright (C) 2000-2007, Free Software Foundation, Inc. --") TXT("-- --") TXT("-- GNAT is free software; you can redistribute it and/or modify it under --") TXT("-- terms of the GNU General Public License as published by the Free Soft- --") @@ -377,12 +397,12 @@ _NL #ifndef FIONBIO #define FIONBIO -1 #endif -CNX(FIONBIO, "Set/clear non-blocking io") +CND(FIONBIO, "Set/clear non-blocking io") #ifndef FIONREAD #define FIONREAD -1 #endif -CNX(FIONREAD, "How many bytes to read") +CND(FIONREAD, "How many bytes to read") _NL TXT(" --------------------") TXT(" -- Shutdown modes --") @@ -483,6 +503,11 @@ CND(TCP_NODELAY, "Do not coalesce packets") #endif CND(SO_REUSEADDR, "Bind reuse local address") +#ifndef SO_REUSEPORT +#define SO_REUSEPORT -1 +#endif +CND(SO_REUSEPORT, "Bind reuse port number") + #ifndef SO_KEEPALIVE #define SO_KEEPALIVE -1 #endif @@ -549,6 +574,80 @@ CND(IP_ADD_MEMBERSHIP, "Join a multicast group") CND(IP_DROP_MEMBERSHIP, "Leave a multicast group") _NL +TXT(" -------------------") +TXT(" -- System limits --") +TXT(" -------------------") +_NL + +#ifndef IOV_MAX +#define IOV_MAX INT_MAX +#endif +CND(IOV_MAX, "Maximum writev iovcnt") + +_NL +TXT(" ----------------------") +TXT(" -- Type definitions --") +TXT(" ----------------------") +_NL + +{ + struct timeval tv; +TXT(" -- Sizes (in bytes) of the components of struct timeval") +_NL +#define SIZEOF_tv_sec (sizeof tv.tv_sec) +CND(SIZEOF_tv_sec, "tv_sec") +#define SIZEOF_tv_usec (sizeof tv.tv_usec) +CND(SIZEOF_tv_usec, "tv_usec") +} + +_NL +TXT(" ----------------------------------------") +TXT(" -- Properties of supported interfaces --") +TXT(" ----------------------------------------") +_NL + +CND(Need_Netdb_Buffer, "Need buffer for Netdb ops") + +#ifdef __vxworks +_NL +TXT(" --------------------------------") +TXT(" -- VxWorks-specific constants --") +TXT(" --------------------------------") +_NL +TXT(" -- These constants may be used only within the VxWorks version of") +TXT(" -- GNAT.Sockets.Thin.") +_NL + +CND(OK, "VxWorks generic success") +CND(ERROR, "VxWorks generic error") +#endif + +#ifdef __MINGW32__ +_NL +TXT(" ------------------------------") +TXT(" -- MinGW-specific constants --") +TXT(" ------------------------------") +_NL +TXT(" -- These constants may be used only within the MinGW version of") +TXT(" -- GNAT.Sockets.Thin.") +_NL + +CND(WSASYSNOTREADY, "System not ready") +CND(WSAVERNOTSUPPORTED, "Version not supported") +CND(WSANOTINITIALISED, "Winsock not intialized") +CND(WSAEDISCON, "Disconnected") + +#endif + +_NL +TXT(" ----------------------") +TXT(" -- Additional flags --") +TXT(" ----------------------") +_NL +TXT(" Thread_Blocking_IO : constant Boolean := True;") +TXT(" -- Set False for contexts where socket i/o are process blocking") + +_NL TXT("end GNAT.Sockets.Constants;") output (); @@ -587,14 +686,18 @@ output (void) { char * f_itoa (char *fmt, int n) { - char buf[32]; + char buf[32], *ret; sprintf (buf, fmt, n); - return strdup (buf); + ret = malloc (strlen (buf) + 1); + if (ret != NULL) + strcpy (ret, buf); + return ret; } void add_line (char *_text, char *_value, char *_comment) { struct line *l = (struct line *) malloc (sizeof (struct line)); + l->text = _text; l->value = _value; l->comment = _comment;