summaryrefslogtreecommitdiff
path: root/vos/vos_dummies.c
blob: b14c444888917df78de00668edd23b2b83fc4fbf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
/*  +++begin copyright+++ *******************************************  */
/*                                                                     */
/*  COPYRIGHT (c) 1997, 1998 Stratus Computer, Inc.                    */
/*                                                                     */
/*  This program is free software; you can redistribute it and/or      */
/*  modify it under the terms of either:                               */
/*                                                                     */
/*  a) the GNU General Public License as published by the Free         */
/*  Software Foundation; either version 1, or (at your option) any     */
/*  later version, or                                                  */
/*                                                                     */
/*  b) the "Artistic License" which comes with this Kit.               */
/*                                                                     */
/*  This program 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 either   */
/*  the GNU General Public License or the Artistic License for more    */
/*  details.                                                           */
/*                                                                     */
/*  You should have received a copy of the Artistic License with this  */
/*  Kit, in the file named "Artistic".  If not, you can get one from   */
/*  the Perl distribution.                                             */
/*                                                                     */
/*  You should also have received a copy of the GNU General Public     */
/*  License along with this program; if not, you can get one from      */
/*  the Perl distribution or else write to the Free Software           */
/*  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA          */
/*  02111-1307, USA.                                                   */
/*                                                                     */
/*  +++end copyright+++ *********************************************  */

#define _POSIX_C_SOURCE

#include <stdio.h>
#include <string.h>
#include <sys/types.h>

extern void s$stop_program (char_varying (256) *command_line, 
                            short int          *error_code);
extern void s$write_code (char_varying     *record_buffer, 
                          short int        *error_code);
extern int vos_call_debug ();

#pragma page
static void bomb (char *p_name)
{
char_varying(256)   msgvs;

     strcpy_vstr_nstr (&msgvs, "FATAL ERROR: Call to missing function '");
     strcat_vstr_nstr (&msgvs, p_name);
     strcat_vstr_nstr (&msgvs, "'. Entering debugger.");
     s$write_code (&msgvs, &0);

     strcpy_vstr_nstr (&msgvs, "Please capture the output of the 'trace' request and mail it to Paul_Green@stratus.com.");
     s$write_code (&msgvs, &0);

     vos_call_debug ();

     strcpy_vstr_nstr (&msgvs, "Return from debugger. Stopping program. Sorry but this error is unrecoverable.");
     s$write_code (&msgvs, &0);
     s$stop_program (&"", &1);
}

extern int dup (int _fildes)
{
     bomb ("dup");
}

extern int do_aspawn ()
{
     bomb ("do_aspawn");
}

extern int do_spawn ()
{
     bomb ("do_spawn");
}

extern int execlp (const char *_file, const char *_arg, ...)
{
     bomb ("execlp");
}

extern int execl  (const char *_path, const char *_arg, ...)
{
     bomb ("execl");
}

extern int execvp (const char *_file, char *const _argv[], ...)
{
     bomb ("execvp");
}

extern pid_t fork (void)
{
     bomb ("fork");
}

extern void Perl_dump_mstats (char *s)
{
     bomb ("Perl_dump_mstats");
}

extern pid_t waitpid (pid_t pid, int *stat_loc, int options)
{

     bomb ("waitpid");
}