Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
ac94a58a
Commit
ac94a58a
authored
Feb 18, 2003
by
Anton Blanchard
Browse files
Options
Browse Files
Download
Plain Diff
Merge samba.org:/scratch/anton/linux-2.5
into samba.org:/scratch/anton/sfr
parents
06365c08
c290649e
Changes
15
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
116 additions
and
314 deletions
+116
-314
arch/i386/mach-voyager/voyager_thread.c
arch/i386/mach-voyager/voyager_thread.c
+4
-13
drivers/acpi/thermal.c
drivers/acpi/thermal.c
+1
-1
drivers/base/hotplug.c
drivers/base/hotplug.c
+1
-1
drivers/bluetooth/bt3c_cs.c
drivers/bluetooth/bt3c_cs.c
+7
-54
drivers/ieee1394/nodemgr.c
drivers/ieee1394/nodemgr.c
+1
-1
drivers/input/input.c
drivers/input/input.c
+1
-1
drivers/isdn/hardware/eicon/divasmain.c
drivers/isdn/hardware/eicon/divasmain.c
+1
-1
drivers/net/hamradio/baycom_epp.c
drivers/net/hamradio/baycom_epp.c
+6
-39
drivers/pnp/pnpbios/core.c
drivers/pnp/pnpbios/core.c
+1
-1
fs/proc/array.c
fs/proc/array.c
+9
-1
include/linux/kmod.h
include/linux/kmod.h
+2
-2
kernel/compat.c
kernel/compat.c
+3
-2
kernel/kmod.c
kernel/kmod.c
+77
-195
net/bluetooth/hci_core.c
net/bluetooth/hci_core.c
+1
-1
net/core/dev.c
net/core/dev.c
+1
-1
No files found.
arch/i386/mach-voyager/voyager_thread.c
View file @
ac94a58a
...
@@ -57,7 +57,7 @@ voyager_thread_start(void)
...
@@ -57,7 +57,7 @@ voyager_thread_start(void)
}
}
static
int
static
int
execute
_helper
(
void
*
string
)
execute
(
const
char
*
string
)
{
{
int
ret
;
int
ret
;
...
@@ -74,22 +74,13 @@ execute_helper(void *string)
...
@@ -74,22 +74,13 @@ execute_helper(void *string)
NULL
,
NULL
,
};
};
if
((
ret
=
exec_usermodehelper
(
argv
[
0
],
argv
,
envp
))
<
0
)
{
if
((
ret
=
call_usermodehelper
(
argv
[
0
],
argv
,
envp
,
1
))
!=
0
)
{
printk
(
KERN_ERR
"Voyager failed to
execute
\"
%s
\"
\n
"
,
printk
(
KERN_ERR
"Voyager failed to
run
\"
%s
\"
: %i
\n
"
,
(
char
*
)
string
);
string
,
ret
);
}
}
return
ret
;
return
ret
;
}
}
static
void
execute
(
char
*
string
)
{
if
(
kernel_thread
(
execute_helper
,
(
void
*
)
string
,
CLONE_VFORK
|
SIGCHLD
)
<
0
)
{
printk
(
KERN_ERR
"Voyager failed to fork before exec of
\"
%s
\"\n
"
,
string
);
}
}
static
void
static
void
check_from_kernel
(
void
)
check_from_kernel
(
void
)
{
{
...
...
drivers/acpi/thermal.c
View file @
ac94a58a
...
@@ -436,7 +436,7 @@ acpi_thermal_call_usermode (
...
@@ -436,7 +436,7 @@ acpi_thermal_call_usermode (
envp
[
0
]
=
"HOME=/"
;
envp
[
0
]
=
"HOME=/"
;
envp
[
1
]
=
"PATH=/sbin:/bin:/usr/sbin:/usr/bin"
;
envp
[
1
]
=
"PATH=/sbin:/bin:/usr/sbin:/usr/bin"
;
call_usermodehelper
(
argv
[
0
],
argv
,
envp
);
call_usermodehelper
(
argv
[
0
],
argv
,
envp
,
0
);
return_VALUE
(
0
);
return_VALUE
(
0
);
}
}
...
...
drivers/base/hotplug.c
View file @
ac94a58a
...
@@ -114,7 +114,7 @@ static int do_hotplug (struct device *dev, char *argv1, const char *action,
...
@@ -114,7 +114,7 @@ static int do_hotplug (struct device *dev, char *argv1, const char *action,
pr_debug
(
"%s: %s %s %s %s %s %s
\n
"
,
__FUNCTION__
,
argv
[
0
],
argv
[
1
],
pr_debug
(
"%s: %s %s %s %s %s %s
\n
"
,
__FUNCTION__
,
argv
[
0
],
argv
[
1
],
envp
[
0
],
envp
[
1
],
envp
[
2
],
envp
[
3
]);
envp
[
0
],
envp
[
1
],
envp
[
2
],
envp
[
3
]);
retval
=
call_usermodehelper
(
argv
[
0
],
argv
,
envp
);
retval
=
call_usermodehelper
(
argv
[
0
],
argv
,
envp
,
0
);
if
(
retval
)
if
(
retval
)
pr_debug
(
"%s - call_usermodehelper returned %d
\n
"
,
pr_debug
(
"%s - call_usermodehelper returned %d
\n
"
,
__FUNCTION__
,
retval
);
__FUNCTION__
,
retval
);
...
...
drivers/bluetooth/bt3c_cs.c
View file @
ac94a58a
...
@@ -24,18 +24,14 @@
...
@@ -24,18 +24,14 @@
#include <linux/config.h>
#include <linux/config.h>
#include <linux/module.h>
#include <linux/module.h>
#define __KERNEL_SYSCALLS__
#include <linux/kernel.h>
#include <linux/kernel.h>
#include <linux/kmod.h>
#include <linux/kmod.h>
#include <linux/init.h>
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/slab.h>
#include <linux/types.h>
#include <linux/types.h>
#include <linux/sched.h>
#include <linux/sched.h>
#include <linux/delay.h>
#include <linux/timer.h>
#include <linux/timer.h>
#include <linux/errno.h>
#include <linux/errno.h>
#include <linux/unistd.h>
#include <linux/ptrace.h>
#include <linux/ptrace.h>
#include <linux/ioport.h>
#include <linux/ioport.h>
#include <linux/spinlock.h>
#include <linux/spinlock.h>
...
@@ -405,7 +401,6 @@ void bt3c_interrupt(int irq, void *dev_inst, struct pt_regs *regs)
...
@@ -405,7 +401,6 @@ void bt3c_interrupt(int irq, void *dev_inst, struct pt_regs *regs)
/* ======================== HCI interface ======================== */
/* ======================== HCI interface ======================== */
...
@@ -489,65 +484,23 @@ static int bt3c_hci_ioctl(struct hci_dev *hdev, unsigned int cmd, unsigned long
...
@@ -489,65 +484,23 @@ static int bt3c_hci_ioctl(struct hci_dev *hdev, unsigned int cmd, unsigned long
#define FW_LOADER "/sbin/bluefw"
#define FW_LOADER "/sbin/bluefw"
static
int
errno
;
static
int
bt3c_fw_loader_exec
(
void
*
dev
)
{
char
*
argv
[]
=
{
FW_LOADER
,
"pccard"
,
dev
,
NULL
};
char
*
envp
[]
=
{
"HOME=/"
,
"TERM=linux"
,
"PATH=/sbin:/usr/sbin:/bin:/usr/bin"
,
NULL
};
int
err
;
err
=
exec_usermodehelper
(
FW_LOADER
,
argv
,
envp
);
if
(
err
)
printk
(
KERN_WARNING
"bt3c_cs: Failed to exec
\"
%s pccard %s
\"
.
\n
"
,
FW_LOADER
,
(
char
*
)
dev
);
return
err
;
}
static
int
bt3c_firmware_load
(
bt3c_info_t
*
info
)
static
int
bt3c_firmware_load
(
bt3c_info_t
*
info
)
{
{
sigset_t
tmpsig
;
char
dev
[
16
];
char
dev
[
16
];
pid_t
pid
;
int
err
;
int
result
;
/* Check if root fs is mounted */
char
*
argv
[]
=
{
FW_LOADER
,
"pccard"
,
dev
,
NULL
};
if
(
!
current
->
fs
->
root
)
{
char
*
envp
[]
=
{
"HOME=/"
,
"TERM=linux"
,
"PATH=/sbin:/usr/sbin:/bin:/usr/bin"
,
NULL
};
printk
(
KERN_WARNING
"bt3c_cs: Root filesystem is not mounted.
\n
"
);
return
-
EPERM
;
}
sprintf
(
dev
,
"%04x"
,
info
->
link
.
io
.
BasePort1
);
sprintf
(
dev
,
"%04x"
,
info
->
link
.
io
.
BasePort1
);
pid
=
kernel_thread
(
bt3c_fw_loader_exec
,
(
void
*
)
dev
,
0
);
err
=
call_usermodehelper
(
FW_LOADER
,
argv
,
envp
,
1
);
if
(
pid
<
0
)
{
if
(
err
)
printk
(
KERN_WARNING
"bt3c_cs: Forking of kernel thread failed (errno=%d).
\n
"
,
-
pid
);
printk
(
KERN_WARNING
"bt3c_cs: Failed to run
\"
%s pccard %s
\"
(errno=%d).
\n
"
,
FW_LOADER
,
dev
,
err
);
return
pid
;
}
/* Block signals, everything but SIGKILL/SIGSTOP */
spin_lock_irq
(
&
current
->
sighand
->
siglock
);
tmpsig
=
current
->
blocked
;
siginitsetinv
(
&
current
->
blocked
,
sigmask
(
SIGKILL
)
|
sigmask
(
SIGSTOP
));
recalc_sigpending
();
spin_unlock_irq
(
&
current
->
sighand
->
siglock
);
result
=
waitpid
(
pid
,
NULL
,
__WCLONE
);
/* Allow signals again */
spin_lock_irq
(
&
current
->
sighand
->
siglock
);
current
->
blocked
=
tmpsig
;
recalc_sigpending
();
spin_unlock_irq
(
&
current
->
sighand
->
siglock
);
if
(
result
!=
pid
)
{
printk
(
KERN_WARNING
"bt3c_cs: Waiting for pid %d failed (errno=%d).
\n
"
,
pid
,
-
result
);
return
-
result
;
}
return
0
;
return
err
;
}
}
...
...
drivers/ieee1394/nodemgr.c
View file @
ac94a58a
...
@@ -786,7 +786,7 @@ static void nodemgr_call_policy(char *verb, struct unit_directory *ud)
...
@@ -786,7 +786,7 @@ static void nodemgr_call_policy(char *verb, struct unit_directory *ud)
#ifdef CONFIG_IEEE1394_VERBOSEDEBUG
#ifdef CONFIG_IEEE1394_VERBOSEDEBUG
HPSB_DEBUG
(
"NodeMgr: %s %s %016Lx"
,
argv
[
0
],
verb
,
(
long
long
unsigned
)
ud
->
ne
->
guid
);
HPSB_DEBUG
(
"NodeMgr: %s %s %016Lx"
,
argv
[
0
],
verb
,
(
long
long
unsigned
)
ud
->
ne
->
guid
);
#endif
#endif
value
=
call_usermodehelper
(
argv
[
0
],
argv
,
envp
);
value
=
call_usermodehelper
(
argv
[
0
],
argv
,
envp
,
0
);
kfree
(
buf
);
kfree
(
buf
);
kfree
(
envp
);
kfree
(
envp
);
if
(
value
!=
0
)
if
(
value
!=
0
)
...
...
drivers/input/input.c
View file @
ac94a58a
...
@@ -383,7 +383,7 @@ static void input_call_hotplug(char *verb, struct input_dev *dev)
...
@@ -383,7 +383,7 @@ static void input_call_hotplug(char *verb, struct input_dev *dev)
argv
[
0
],
argv
[
1
],
envp
[
0
],
envp
[
1
],
envp
[
2
],
envp
[
3
],
envp
[
4
]);
argv
[
0
],
argv
[
1
],
envp
[
0
],
envp
[
1
],
envp
[
2
],
envp
[
3
],
envp
[
4
]);
#endif
#endif
value
=
call_usermodehelper
(
argv
[
0
],
argv
,
envp
);
value
=
call_usermodehelper
(
argv
[
0
],
argv
,
envp
,
0
);
kfree
(
buf
);
kfree
(
buf
);
kfree
(
envp
);
kfree
(
envp
);
...
...
drivers/isdn/hardware/eicon/divasmain.c
View file @
ac94a58a
...
@@ -263,7 +263,7 @@ static void diva_adapter_trapped(void *context)
...
@@ -263,7 +263,7 @@ static void diva_adapter_trapped(void *context)
pdpc
->
card_failed
=
0
;
pdpc
->
card_failed
=
0
;
argv
[
2
]
=
&
adapter
[
0
];
argv
[
2
]
=
&
adapter
[
0
];
ret
=
call_usermodehelper
(
argv
[
0
],
argv
,
envp
);
ret
=
call_usermodehelper
(
argv
[
0
],
argv
,
envp
,
0
);
if
(
ret
)
{
if
(
ret
)
{
printk
(
KERN_ERR
printk
(
KERN_ERR
...
...
drivers/net/hamradio/baycom_epp.c
View file @
ac94a58a
...
@@ -369,15 +369,14 @@ static char eppconfig_path[256] = "/usr/sbin/eppfpga";
...
@@ -369,15 +369,14 @@ static char eppconfig_path[256] = "/usr/sbin/eppfpga";
static
char
*
envp
[]
=
{
"HOME=/"
,
"TERM=linux"
,
"PATH=/usr/bin:/bin"
,
NULL
};
static
char
*
envp
[]
=
{
"HOME=/"
,
"TERM=linux"
,
"PATH=/usr/bin:/bin"
,
NULL
};
static
int
errno
;
/* eppconfig: called during ifconfig up to configure the modem */
static
int
eppconfig
(
struct
baycom_state
*
bc
)
static
int
exec_eppfpga
(
void
*
b
)
{
{
struct
baycom_state
*
bc
=
(
struct
baycom_state
*
)
b
;
char
modearg
[
256
];
char
modearg
[
256
];
char
portarg
[
16
];
char
portarg
[
16
];
char
*
argv
[]
=
{
eppconfig_path
,
"-s"
,
"-p"
,
portarg
,
"-m"
,
modearg
,
NULL
};
char
*
argv
[]
=
{
eppconfig_path
,
"-s"
,
"-p"
,
portarg
,
"-m"
,
modearg
,
int
i
;
NULL
};
int
ret
;
/* set up arguments */
/* set up arguments */
sprintf
(
modearg
,
"%sclk,%smodem,fclk=%d,bps=%d,divider=%d%s,extstat"
,
sprintf
(
modearg
,
"%sclk,%smodem,fclk=%d,bps=%d,divider=%d%s,extstat"
,
...
@@ -388,39 +387,7 @@ static int exec_eppfpga(void *b)
...
@@ -388,39 +387,7 @@ static int exec_eppfpga(void *b)
sprintf
(
portarg
,
"%ld"
,
bc
->
pdev
->
port
->
base
);
sprintf
(
portarg
,
"%ld"
,
bc
->
pdev
->
port
->
base
);
printk
(
KERN_DEBUG
"%s: %s -s -p %s -m %s
\n
"
,
bc_drvname
,
eppconfig_path
,
portarg
,
modearg
);
printk
(
KERN_DEBUG
"%s: %s -s -p %s -m %s
\n
"
,
bc_drvname
,
eppconfig_path
,
portarg
,
modearg
);
i
=
exec_usermodehelper
(
eppconfig_path
,
argv
,
envp
);
return
call_usermodehelper
(
eppconfig_path
,
argv
,
envp
,
1
);
if
(
i
<
0
)
{
printk
(
KERN_ERR
"%s: failed to exec %s -s -p %s -m %s, errno = %d
\n
"
,
bc_drvname
,
eppconfig_path
,
portarg
,
modearg
,
i
);
return
i
;
}
return
0
;
}
/* eppconfig: called during ifconfig up to configure the modem */
static
int
eppconfig
(
struct
baycom_state
*
bc
)
{
int
i
,
pid
,
r
;
mm_segment_t
fs
;
pid
=
kernel_thread
(
exec_eppfpga
,
bc
,
CLONE_FS
);
if
(
pid
<
0
)
{
printk
(
KERN_ERR
"%s: fork failed, errno %d
\n
"
,
bc_drvname
,
-
pid
);
return
pid
;
}
fs
=
get_fs
();
set_fs
(
KERNEL_DS
);
/* Allow i to be in kernel space. */
r
=
waitpid
(
pid
,
&
i
,
__WCLONE
);
set_fs
(
fs
);
if
(
r
!=
pid
)
{
printk
(
KERN_ERR
"%s: waitpid(%d) failed, returning %d
\n
"
,
bc_drvname
,
pid
,
r
);
return
-
1
;
}
printk
(
KERN_DEBUG
"%s: eppfpga returned %d
\n
"
,
bc_drvname
,
i
);
return
i
;
}
}
/* ---------------------------------------------------------------------- */
/* ---------------------------------------------------------------------- */
...
...
drivers/pnp/pnpbios/core.c
View file @
ac94a58a
...
@@ -602,7 +602,7 @@ static int pnp_dock_event(int dock, struct pnp_docking_station_info *info)
...
@@ -602,7 +602,7 @@ static int pnp_dock_event(int dock, struct pnp_docking_station_info *info)
info
->
location_id
,
info
->
serial
,
info
->
capabilities
);
info
->
location_id
,
info
->
serial
,
info
->
capabilities
);
envp
[
i
]
=
0
;
envp
[
i
]
=
0
;
value
=
call_usermodehelper
(
argv
[
0
],
argv
,
envp
);
value
=
call_usermodehelper
(
argv
[
0
],
argv
,
envp
,
0
);
kfree
(
buf
);
kfree
(
buf
);
kfree
(
envp
);
kfree
(
envp
);
return
0
;
return
0
;
...
...
fs/proc/array.c
View file @
ac94a58a
...
@@ -316,7 +316,15 @@ int proc_pid_stat(struct task_struct *task, char * buffer)
...
@@ -316,7 +316,15 @@ int proc_pid_stat(struct task_struct *task, char * buffer)
wchan
=
get_wchan
(
task
);
wchan
=
get_wchan
(
task
);
sigemptyset
(
&
sigign
);
sigemptyset
(
&
sigcatch
);
read_lock
(
&
tasklist_lock
);
if
(
task
->
sighand
)
{
spin_lock_irq
(
&
task
->
sighand
->
siglock
);
collect_sigign_sigcatch
(
task
,
&
sigign
,
&
sigcatch
);
collect_sigign_sigcatch
(
task
,
&
sigign
,
&
sigcatch
);
spin_lock_irq
(
&
task
->
sighand
->
siglock
);
}
read_unlock
(
&
tasklist_lock
);
/* scale priority and nice values from timeslices to -20..20 */
/* scale priority and nice values from timeslices to -20..20 */
/* to make it look like a "normal" Unix priority/nice value */
/* to make it look like a "normal" Unix priority/nice value */
...
...
include/linux/kmod.h
View file @
ac94a58a
...
@@ -21,6 +21,7 @@
...
@@ -21,6 +21,7 @@
#include <linux/config.h>
#include <linux/config.h>
#include <linux/errno.h>
#include <linux/errno.h>
#include <linux/compiler.h>
#ifdef CONFIG_KMOD
#ifdef CONFIG_KMOD
extern
int
request_module
(
const
char
*
name
);
extern
int
request_module
(
const
char
*
name
);
...
@@ -29,8 +30,7 @@ static inline int request_module(const char * name) { return -ENOSYS; }
...
@@ -29,8 +30,7 @@ static inline int request_module(const char * name) { return -ENOSYS; }
#endif
#endif
#define try_then_request_module(x, mod) ((x) ?: request_module(mod), (x))
#define try_then_request_module(x, mod) ((x) ?: request_module(mod), (x))
extern
int
exec_usermodehelper
(
char
*
program_path
,
char
*
argv
[],
char
*
envp
[]);
extern
int
call_usermodehelper
(
char
*
path
,
char
*
argv
[],
char
*
envp
[],
int
wait
);
extern
int
call_usermodehelper
(
char
*
path
,
char
*
argv
[],
char
*
envp
[]);
#ifdef CONFIG_HOTPLUG
#ifdef CONFIG_HOTPLUG
extern
char
hotplug_path
[];
extern
char
hotplug_path
[];
...
...
kernel/compat.c
View file @
ac94a58a
...
@@ -17,6 +17,7 @@
...
@@ -17,6 +17,7 @@
#include <linux/time.h>
#include <linux/time.h>
#include <linux/signal.h>
#include <linux/signal.h>
#include <linux/sched.h>
/* for MAX_SCHEDULE_TIMEOUT */
#include <linux/sched.h>
/* for MAX_SCHEDULE_TIMEOUT */
#include <linux/futex.h>
/* for FUTEX_WAIT */
#include <asm/uaccess.h>
#include <asm/uaccess.h>
...
@@ -210,7 +211,7 @@ asmlinkage long compat_sys_sigprocmask(int how, compat_old_sigset_t *set,
...
@@ -210,7 +211,7 @@ asmlinkage long compat_sys_sigprocmask(int how, compat_old_sigset_t *set,
return
ret
;
return
ret
;
}
}
extern
long
do_futex
(
u
32
*
,
int
,
int
,
unsigned
long
);
extern
long
do_futex
(
u
nsigned
long
,
int
,
int
,
unsigned
long
);
asmlinkage
long
compat_sys_futex
(
u32
*
uaddr
,
int
op
,
int
val
,
asmlinkage
long
compat_sys_futex
(
u32
*
uaddr
,
int
op
,
int
val
,
struct
compat_timespec
*
utime
)
struct
compat_timespec
*
utime
)
...
@@ -221,7 +222,7 @@ asmlinkage long compat_sys_futex(u32 *uaddr, int op, int val,
...
@@ -221,7 +222,7 @@ asmlinkage long compat_sys_futex(u32 *uaddr, int op, int val,
if
((
op
==
FUTEX_WAIT
)
&&
utime
)
{
if
((
op
==
FUTEX_WAIT
)
&&
utime
)
{
if
(
get_compat_timespec
(
&
t
,
utime
))
if
(
get_compat_timespec
(
&
t
,
utime
))
return
-
EFAULT
;
return
-
EFAULT
;
timeout
=
timespec_to_jiffies
(
t
)
+
1
;
timeout
=
timespec_to_jiffies
(
&
t
)
+
1
;
}
}
return
do_futex
((
unsigned
long
)
uaddr
,
op
,
val
,
timeout
);
return
do_futex
((
unsigned
long
)
uaddr
,
op
,
val
,
timeout
);
}
}
kernel/kmod.c
View file @
ac94a58a
This diff is collapsed.
Click to expand it.
net/bluetooth/hci_core.c
View file @
ac94a58a
...
@@ -114,7 +114,7 @@ static int hci_run_hotplug(char *dev, char *action)
...
@@ -114,7 +114,7 @@ static int hci_run_hotplug(char *dev, char *action)
envp
[
3
]
=
astr
;
envp
[
3
]
=
astr
;
envp
[
4
]
=
NULL
;
envp
[
4
]
=
NULL
;
return
call_usermodehelper
(
argv
[
0
],
argv
,
envp
);
return
call_usermodehelper
(
argv
[
0
],
argv
,
envp
,
0
);
}
}
#else
#else
#define hci_run_hotplug(A...)
#define hci_run_hotplug(A...)
...
...
net/core/dev.c
View file @
ac94a58a
...
@@ -2942,6 +2942,6 @@ static int net_run_sbin_hotplug(struct net_device *dev, char *action)
...
@@ -2942,6 +2942,6 @@ static int net_run_sbin_hotplug(struct net_device *dev, char *action)
envp
[
i
++
]
=
action_str
;
envp
[
i
++
]
=
action_str
;
envp
[
i
]
=
0
;
envp
[
i
]
=
0
;
return
call_usermodehelper
(
argv
[
0
],
argv
,
envp
);
return
call_usermodehelper
(
argv
[
0
],
argv
,
envp
,
0
);
}
}
#endif
#endif
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment