first commit
This commit is contained in:
84
extern/stdcxx/4.2.1/util/exec.h
vendored
Normal file
84
extern/stdcxx/4.2.1/util/exec.h
vendored
Normal file
@@ -0,0 +1,84 @@
|
||||
/************************************************************************
|
||||
*
|
||||
* exec.h - Interface declaration for the child process subsystem
|
||||
*
|
||||
* $Id: exec.h 452253 2006-10-02 23:08:06Z sebor $
|
||||
*
|
||||
************************************************************************
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed
|
||||
* with this work for additional information regarding copyright
|
||||
* ownership. The ASF licenses this file to you under the Apache
|
||||
* License, Version 2.0 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* permissions and limitations under the License.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
#ifndef RW_EXEC_H
|
||||
#define RW_EXEC_H
|
||||
|
||||
#include "target.h" /* For struct target_opts */
|
||||
|
||||
/**
|
||||
Translates a human understandable signal name into a number usable by kill ().
|
||||
|
||||
This method understands several formats for signal names. They are as follows:
|
||||
- n
|
||||
- SIGFOO
|
||||
- FOO
|
||||
In this list, n denotes a number and FOO denotes a short signal name.
|
||||
|
||||
@param signame a signal name to decode
|
||||
@returns the signal number or -1 if a number couldn't be determined
|
||||
@see signal_names []
|
||||
*/
|
||||
int get_signo (const char* signame);
|
||||
|
||||
/**
|
||||
Translates a signal number into a human understandable name
|
||||
|
||||
@param signo a signal number
|
||||
@returns the human understandable name for the signal (minus the SIG
|
||||
prefix), or "#n" if the the name for the number is unknown to the
|
||||
function, where n is signo
|
||||
@see signal_names []
|
||||
*/
|
||||
const char* get_signame (int signo);
|
||||
|
||||
/**
|
||||
Entry point to the child process (watchdog) subsystem.
|
||||
|
||||
On UNIX systems, this method fork ()s, creating a child process. This
|
||||
child process becomes a process group leader, redirects input and output
|
||||
files, then exec ()s the target specified in argv [0], providing it with
|
||||
argv to use as its argv array. Meanwhile, the parent process calls the
|
||||
wait_for_child method to monitor the child process, passing the return
|
||||
value back to the calling method.
|
||||
|
||||
On Windows, this method creates a process using the windows CreateProcess
|
||||
API call. The startup context for this process is based on the context of
|
||||
the exec utility, but with the standard * file handles redirected. The
|
||||
execution of the process is monitored with the WaitForSingleObject API
|
||||
call. If the process doesn't complete within the allowed timeout, it is
|
||||
then killed. On Windows NT systems, a soft kill of the process (via the
|
||||
GenerateConsoleCtrlEvent API call) are first attempted attempted. The
|
||||
process is then hard killed via the TerminateProcess API call.
|
||||
|
||||
@param exec_name name of the child executable
|
||||
@param argv argv array for child process
|
||||
@return structure describing how the child procees exited
|
||||
@see wait_for_child ()
|
||||
*/
|
||||
void exec_file (const struct target_opts* options, struct target_status* result);
|
||||
|
||||
#endif /* RW_EXEC_H */
|
||||
Reference in New Issue
Block a user