Changeset 3192 for trunk/src/kmk/kmkbuiltin.h
- Timestamp:
- Mar 26, 2018, 10:25:56 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kmk/kmkbuiltin.h
r3173 r3192 34 34 # include <sys/types.h> 35 35 #endif 36 #include <fcntl.h> 36 37 37 38 /* For the GNU/hurd weirdo. */ … … 57 58 #endif 58 59 60 /** This is for telling open() to open to return a close-on-exec descriptor. */ 61 #ifdef _O_NOINHERIT 62 # define KMK_OPEN_NO_INHERIT _O_NOINHERIT 63 #elif defined(O_NOINHERIT) 64 # define KMK_OPEN_NO_INHERIT O_NOINHERIT 65 #elif defined(O_CLOEXEC) 66 # define KMK_OPEN_NO_INHERIT O_CLOEXEC 67 #else 68 # define KMK_OPEN_NO_INHERIT 0 69 #endif 70 71 59 72 #include "kbuild_version.h" 73 #ifndef KMK_BUILTIN_STANDALONE 74 # include "../output.h" 75 #endif 60 76 61 77 struct child; 62 78 int kmk_builtin_command(const char *pszCmd, struct child *pChild, char ***ppapszArgvToSpawn, pid_t *pPidSpawned); 63 79 int kmk_builtin_command_parsed(int argc, char **argv, struct child *pChild, char ***ppapszArgvToSpawn, pid_t *pPidSpawned); 80 81 82 /** 83 * KMK built-in command execution context. 84 */ 85 typedef struct KMKBUILTINCTX 86 { 87 /** The program name to use in error messages. */ 88 const char *pszProgName; 89 /** The KMK output synchronizer. */ 90 struct output *pOut; 91 } KMKBUILTINCTX; 92 /** Pointer to kmk built-in command execution context. */ 93 typedef KMKBUILTINCTX *PKMKBUILTINCTX; 64 94 65 95 /** … … 81 111 uintptr_t uPfn; 82 112 #define FN_SIG_MAIN 0 83 int (* pfnMain)(int argc, char **argv, char **envp );113 int (* pfnMain)(int argc, char **argv, char **envp, PKMKBUILTINCTX pCtx); 84 114 #define FN_SIG_MAIN_SPAWNS 1 85 int (* pfnMainSpawns)(int argc, char **argv, char **envp, struct child *pChild, pid_t *pPid);115 int (* pfnMainSpawns)(int argc, char **argv, char **envp, PKMKBUILTINCTX pCtx, struct child *pChild, pid_t *pPid); 86 116 #define FN_SIG_MAIN_TO_SPAWN 2 87 int (* pfnMainToSpawn)(int argc, char **argv, char **envp, char ***ppapszArgvToSpawn);117 int (* pfnMainToSpawn)(int argc, char **argv, char **envp, PKMKBUILTINCTX pCtx, char ***ppapszArgvToSpawn); 88 118 } u; 89 119 size_t uFnSignature : 8; … … 94 124 typedef KMKBUILTINENTRY const *PCKMKBUILTINENTRY; 95 125 96 #ifndef kmk_builtin_append 97 extern int kmk_builtin_append(int argc, char **argv, char **envp, struct child *pChild, pid_t *pPidSpawned); 98 #endif 99 extern int kmk_builtin_cp(int argc, char **argv, char **envp); 100 extern int kmk_builtin_cat(int argc, char **argv, char **envp); 101 extern int kmk_builtin_chmod(int argc, char **argv, char **envp); 102 extern int kmk_builtin_cmp(int argc, char **argv, char **envp); 103 extern int kmk_builtin_dircache(int argc, char **argv, char **envp); 104 extern int kmk_builtin_echo(int argc, char **argv, char **envp); 105 extern int kmk_builtin_expr(int argc, char **argv, char **envp); 106 extern int kmk_builtin_install(int argc, char **argv, char **envp); 107 extern int kmk_builtin_ln(int argc, char **argv, char **envp); 108 extern int kmk_builtin_md5sum(int argc, char **argv, char **envp); 109 extern int kmk_builtin_mkdir(int argc, char **argv, char **envp); 110 extern int kmk_builtin_mv(int argc, char **argv, char **envp); 111 extern int kmk_builtin_printf(int argc, char **argv, char **envp); 112 extern int kmk_builtin_redirect(int argc, char **argv, char **envp, struct child *pChild, pid_t *pPidSpawned); 113 extern int kmk_builtin_rm(int argc, char **argv, char **envp); 114 extern int kmk_builtin_rmdir(int argc, char **argv, char **envp); 115 extern int kmk_builtin_sleep(int argc, char **argv, char **envp); 116 extern int kmk_builtin_test(int argc, char **argv, char **envp 117 #ifndef kmk_builtin_test 118 , char ***ppapszArgvSpawn 119 #endif 120 ); 121 extern int kmk_builtin_touch(int argc, char **argv, char **envp); 126 extern int kmk_builtin_append(int argc, char **argv, char **envp, PKMKBUILTINCTX pCtx, struct child *pChild, pid_t *pPidSpawned); 127 extern int kmk_builtin_cp(int argc, char **argv, char **envp, PKMKBUILTINCTX pCtx); 128 extern int kmk_builtin_cat(int argc, char **argv, char **envp, PKMKBUILTINCTX pCtx); 129 extern int kmk_builtin_chmod(int argc, char **argv, char **envp, PKMKBUILTINCTX pCtx); 130 extern int kmk_builtin_cmp(int argc, char **argv, char **envp, PKMKBUILTINCTX pCtx); 131 extern int kmk_builtin_dircache(int argc, char **argv, char **envp, PKMKBUILTINCTX pCtx); 132 extern int kmk_builtin_echo(int argc, char **argv, char **envp, PKMKBUILTINCTX pCtx); 133 extern int kmk_builtin_expr(int argc, char **argv, char **envp, PKMKBUILTINCTX pCtx); 134 extern int kmk_builtin_install(int argc, char **argv, char **envp, PKMKBUILTINCTX pCtx); 135 extern int kmk_builtin_ln(int argc, char **argv, char **envp, PKMKBUILTINCTX pCtx); 136 extern int kmk_builtin_md5sum(int argc, char **argv, char **envp, PKMKBUILTINCTX pCtx); 137 extern int kmk_builtin_mkdir(int argc, char **argv, char **envp, PKMKBUILTINCTX pCtx); 138 extern int kmk_builtin_mv(int argc, char **argv, char **envp, PKMKBUILTINCTX pCtx); 139 extern int kmk_builtin_printf(int argc, char **argv, char **envp, PKMKBUILTINCTX pCtx); 140 extern int kmk_builtin_redirect(int argc, char **argv, char **envp, PKMKBUILTINCTX pCtx, struct child *pChild, pid_t *pPidSpawned); 141 extern int kmk_builtin_rm(int argc, char **argv, char **envp, PKMKBUILTINCTX pCtx); 142 extern int kmk_builtin_rmdir(int argc, char **argv, char **envp, PKMKBUILTINCTX pCtx); 143 extern int kmk_builtin_sleep(int argc, char **argv, char **envp, PKMKBUILTINCTX pCtx); 144 extern int kmk_builtin_test(int argc, char **argv, char **envp, PKMKBUILTINCTX pCtx, char ***ppapszArgvSpawn); 145 extern int kmk_builtin_touch(int argc, char **argv, char **envp, PKMKBUILTINCTX pCtx); 122 146 #ifdef KBUILD_OS_WINDOWS 123 extern int kmk_builtin_kSubmit(int argc, char **argv, char **envp, struct child *pChild, pid_t *pPidSpawned);147 extern int kmk_builtin_kSubmit(int argc, char **argv, char **envp, PKMKBUILTINCTX pCtx, struct child *pChild, pid_t *pPidSpawned); 124 148 extern int kSubmitSubProcGetResult(intptr_t pvUser, int *prcExit, int *piSigNo); 125 149 extern int kSubmitSubProcKill(intptr_t pvUser, int iSignal); 126 150 extern void kSubmitSubProcCleanup(intptr_t pvUser); 127 151 #endif 128 extern int kmk_builtin_kDepIDB(int argc, char **argv, char **envp );129 extern int kmk_builtin_kDepObj(int argc, char **argv, char **envp );152 extern int kmk_builtin_kDepIDB(int argc, char **argv, char **envp, PKMKBUILTINCTX pCtx); 153 extern int kmk_builtin_kDepObj(int argc, char **argv, char **envp, PKMKBUILTINCTX pCtx); 130 154 131 155 extern char *kmk_builtin_func_printf(char *o, char **argv, const char *funcname); 132 156 133 157 /* common-env-and-cwd-opt.c: */ 134 extern int kBuiltinOptEnvSet( char ***ppapszEnv, unsigned *pcEnvVars, unsigned *pcAllocatedEnvVars,158 extern int kBuiltinOptEnvSet(PKMKBUILTINCTX pCtx, char ***ppapszEnv, unsigned *pcEnvVars, unsigned *pcAllocatedEnvVars, 135 159 int cVerbosity, const char *pszValue); 136 extern int kBuiltinOptEnvAppend( char ***ppapszEnv, unsigned *pcEnvVars, unsigned *pcAllocatedEnvVars,160 extern int kBuiltinOptEnvAppend(PKMKBUILTINCTX pCtx, char ***ppapszEnv, unsigned *pcEnvVars, unsigned *pcAllocatedEnvVars, 137 161 int cVerbosity, const char *pszValue); 138 extern int kBuiltinOptEnvPrepend( char ***ppapszEnv, unsigned *pcEnvVars, unsigned *pcAllocatedEnvVars,162 extern int kBuiltinOptEnvPrepend(PKMKBUILTINCTX pCtx, char ***ppapszEnv, unsigned *pcEnvVars, unsigned *pcAllocatedEnvVars, 139 163 int cVerbosity, const char *pszValue); 140 extern int kBuiltinOptEnvUnset(char ***ppapszEnv, unsigned *pcEnvVars, unsigned *pcAllocatedEnvVars, int cVerbosity, const char *pszVarToRemove); 141 extern int kBuiltinOptEnvZap(char ***ppapszEnv, unsigned *pcEnvVars, unsigned *pcAllocatedEnvVars, int cVerbosity); 164 extern int kBuiltinOptEnvUnset(PKMKBUILTINCTX pCtx, char ***ppapszEnv, unsigned *pcEnvVars, unsigned *pcAllocatedEnvVars, 165 int cVerbosity, const char *pszVarToRemove); 166 extern int kBuiltinOptEnvZap(PKMKBUILTINCTX pCtx, char ***ppapszEnv, unsigned *pcEnvVars, unsigned *pcAllocatedEnvVars, 167 int cVerbosity); 142 168 extern void kBuiltinOptEnvCleanup(char ***ppapszEnv, unsigned cEnvVars, unsigned *pcAllocatedEnvVars); 143 extern int kBuiltinOptChDir( char *pszCwd, size_t cbCwdBuf, const char *pszValue);169 extern int kBuiltinOptChDir(PKMKBUILTINCTX pCtx, char *pszCwd, size_t cbCwdBuf, const char *pszValue); 144 170 145 171 #ifdef CONFIG_WITH_KMK_BUILTIN_STATS
Note:
See TracChangeset
for help on using the changeset viewer.