]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/tools/build/src/engine/execcmd.h
2 * Copyright 1993, 1995 Christopher Seiwald.
4 * This file is part of Jam - see jam.c for Copyright information.
8 * execcmd.h - execute a shell script.
10 * Defines the interface to be implemented in platform specific implementation
11 * modules as well as different shared utility functions prepared in the
20 #include "timestamp.h"
23 typedef struct timing_info
31 typedef void (* ExecCmdCallback
)
35 timing_info
const * const,
36 char const * const cmd_stdout
,
37 char const * const cmd_stderr
,
38 int const cmd_exit_reason
41 /* Status codes passed to ExecCmdCallback routines. */
43 #define EXEC_CMD_FAIL 1
44 #define EXEC_CMD_INTR 2
48 string
const * command
,
51 int * error_max_length
54 /* exec_check() return codes. */
55 #define EXEC_CHECK_OK 101
56 #define EXEC_CHECK_NOOP 102
57 #define EXEC_CHECK_LINE_TOO_LONG 103
58 #define EXEC_CHECK_TOO_LONG 104
62 string
const * command
,
71 /******************************************************************************
73 * Utility functions defined in the execcmd.c module. *
75 ******************************************************************************/
77 /* Constructs a list of command-line elements using the format specified by the
80 void argv_from_shell( char const * * argv
, LIST
* shell
, char const * command
,
83 /* Interrupt routine bumping the internal interrupt counter. Needs to be
84 * registered by platform specific exec*.c modules.
86 void onintr( int disp
);
88 /* Returns whether an interrupt has been detected so far. */
89 int interrupted( void );
91 /* Checks whether the given shell list is actually a request to execute raw
92 * commands without an external shell.
94 int is_raw_command_request( LIST
* shell
);
96 /* Utility worker for exec_check() checking whether all the given command lines
97 * are under the specified length limit.
99 int check_cmd_for_too_long_lines( char const * command
, int const max
,
100 int * const error_length
, int * const error_max_length
);