diff options
Diffstat (limited to 'ruby_1_8_6/vms')
-rw-r--r-- | ruby_1_8_6/vms/config.h | 102 | ||||
-rw-r--r-- | ruby_1_8_6/vms/vms.h | 10 | ||||
-rw-r--r-- | ruby_1_8_6/vms/vmsruby_private.c | 52 | ||||
-rw-r--r-- | ruby_1_8_6/vms/vmsruby_private.h | 7 |
4 files changed, 171 insertions, 0 deletions
diff --git a/ruby_1_8_6/vms/config.h b/ruby_1_8_6/vms/config.h new file mode 100644 index 0000000000..82d499ae2d --- /dev/null +++ b/ruby_1_8_6/vms/config.h @@ -0,0 +1,102 @@ +/* config.h for OpenVMS */ + +#ifndef VMS_RUBY_STREAM +#define VMS_RUBY_STREAM "018" +#endif + +/* #define HAVE_PROTOTYPES 1 */ +#define HAVE_STDARG_PROTOTYPES 1 +/* #define HAVE_ATTR_NORETURN 1 */ +/* #define inline __inline */ +#define HAVE_DIRENT_H 1 +#define HAVE_UNISTD_H 1 +#define HAVE_STDLIB_H 1 +#define HAVE_LIMITS_H 1 + +#define HAVE_SYS_FILE_H 1 +#define HAVE_FCNTL_H 1 +/* #define HAVE_PWD_H 1 */ +#define HAVE_SYS_TIME_H 1 +#define HAVE_SYS_TIMES_H 1 +/* #define HAVE_SYS_PARAM_H 1 */ +#define HAVE_SYS_WAIT_H 1 +#define HAVE_STRING_H 1 +#define HAVE_UTIME_H 1 +#define HAVE_MEMORY_H 1 +#define HAVE_PID_T 1 +#define HAVE_GID_T 1 +#define HAVE_UID_T 1 +/* #define HAVE_ST_BLKSIZE 1 */ +#define HAVE_ST_RDEV 1 +/* #define GETGROUPS_T gid_t */ +#define GETGROUPS_T int +#define RETSIGTYPE void +/* #define HAVE_ALLOCA 1 */ +/* #define vfork fork */ +#define HAVE_FMOD 1 +#define HAVE_RANDOM 1 +#define HAVE_WAITPID 1 +#define HAVE_GETCWD 1 +#define HAVE_TRUNCATE 1 +/* #define HAVE_CHSIZE 1 */ +#define HAVE_TIMES 1 +/* #define HAVE_UTIMES 1 */ +#define HAVE_FCNTL 1 +/* #define HAVE_SETITIMER 1 */ +/* #define HAVE_GETGROUPS 1 */ +#define HAVE_SIGPROCMASK 1 +#define HAVE_GETLOGIN 1 +#define HAVE_TELLDIR 1 +#define HAVE_SEEKDIR 1 + +#define RSHIFT(x,y) ((x)>>y) +#define DEFAULT_KCODE KCODE_EUC +#define DLEXT ".exe" +/* #define DLEXT2 "" */ + +#define HAVE_STRERROR 1 + +#if defined(__vax) +#define RUBY_PLATFORM "vax-vms" /* OpenVMS VAX */ +#elif defined(__alpha) +#define RUBY_PLATFORM "alpha-vms" /* OpenVMS Alpha */ +#elif defined(__ia64) +#define RUBY_PLATFORM "ia64-vms" /* OpenVMS Industry Standard 64 */ +#else +#define RUBY_PLATFORM "unknown-vms" /* unknown processor */ +#endif + +#define RUBY_SITE_LIB2 "/RUBY_LIBROOT/site_ruby/" RUBY_PLATFORM +#define RUBY_SITE_ARCHLIB "/RUBY_LIBROOT/site_ruby/" VMS_RUBY_STREAM "/" RUBY_PLATFORM +#define RUBY_SITE_LIB "/RUBY_LIBROOT/site_ruby" +#define RUBY_LIB "/RUBY_LIBROOT/" VMS_RUBY_STREAM +#define RUBY_ARCHLIB "/RUBY_LIBROOT/" VMS_RUBY_STREAM "/" RUBY_PLATFORM + +#define SIZEOF_INT 4 +#define SIZEOF_SHORT 2 +#define SIZEOF_LONG 4 +#define SIZEOF_VOIDP 4 +#define SIZEOF_FLOAT 4 +#define SIZEOF_DOUBLE 8 + +#define HAVE_MKDIR 1 /* Dango */ +#define HAVE_SINH 1 /* Dango */ +#define HAVE_COSH 1 /* Dango */ +#define HAVE_TANH 1 /* Dango */ + +/* function flags for socket ---------------------- */ + +#define HAVE_GETHOSTNAME 1 +#define HAVE_SENDMSG 1 +#define HAVE_RECVMSG 1 +#define HAVE_GETNAMEINFO 1 +#define HAVE_INET_NTOP 1 +#define HAVE_INET_NTOA 1 +#define HAVE_INET_PTON 1 +#define HAVE_INET_ATON 1 +#define HAVE_GETSERVBYPORT 1 +#define HAVE_UNAME 1 +/* +#define HAVE_GETHOSTBYNAME2 1 +#define HAVE_GETADDRINFO 1 +*/ diff --git a/ruby_1_8_6/vms/vms.h b/ruby_1_8_6/vms/vms.h new file mode 100644 index 0000000000..fc57cc8675 --- /dev/null +++ b/ruby_1_8_6/vms/vms.h @@ -0,0 +1,10 @@ +#ifndef VMSRUBY_VMS_H_INCLUDED +#define VMSRUBY_VMS_H_INCLUDED + +extern int isinf(double); +extern int isnan(double); +extern int flock(int fd, int oper); + +extern int vsnprintf(); + +#endif diff --git a/ruby_1_8_6/vms/vmsruby_private.c b/ruby_1_8_6/vms/vmsruby_private.c new file mode 100644 index 0000000000..c1cbfcebec --- /dev/null +++ b/ruby_1_8_6/vms/vmsruby_private.c @@ -0,0 +1,52 @@ +#include "vmsruby_private.h" +#include <stdio.h> +#include <stdlib.h> + +void _vmsruby_init(void) +{ + _vmsruby_set_switch("DECC$WLS", "TRUE"); +} + + +#include <starlet.h> +#include <string.h> +#include <descrip.h> +#include <lnmdef.h> + +struct item_list_3 { + short buflen; + short itmcod; + void *bufadr; + void *retlen; +}; + +long _vmsruby_set_switch(char *name, char *value) +{ + long status; + struct item_list_3 itemlist[20]; + int i; + + i = 0; + itemlist[i].itmcod = LNM$_STRING; + itemlist[i].buflen = strlen(value); + itemlist[i].bufadr = value; + itemlist[i].retlen = NULL; + i++; + itemlist[i].itmcod = 0; + itemlist[i].buflen = 0; + + $DESCRIPTOR(TABLE_d, "LNM$PROCESS"); + $DESCRIPTOR(lognam_d, ""); + + lognam_d.dsc$a_pointer = name; + lognam_d.dsc$w_length = strlen(name); + + status = sys$crelnm ( + 0, + &TABLE_d, + &lognam_d, + 0, /* usermode */ + itemlist); + + return status; +} diff --git a/ruby_1_8_6/vms/vmsruby_private.h b/ruby_1_8_6/vms/vmsruby_private.h new file mode 100644 index 0000000000..24703dc7fc --- /dev/null +++ b/ruby_1_8_6/vms/vmsruby_private.h @@ -0,0 +1,7 @@ +#ifndef VMSRUBY_H_INCLUDED +#define VMSRUBY_H_INCLUDED + +void _vmsruby_init(void); +long _vmsruby_set_switch(char *, char *); + +#endif /* VMSRUBY_H_INCLUDED */ |