how to suspend and resume process by use sigal?

my system is QNX6.1.0 ,I want to program two function.–(suspend_proc(pid),

And suspend_proc(pid) could suspend any process(program) by use pid which
the process should be suspended.
when the pid is the process self,it block
itself at once,no return.
when the pid isn’t the pid which the process call itself,it return at once.
and the process with the pid is suspended.

the resume_proc could resume any process(program).
when the process resume,it will do a special work—> special_work().and
that it continue running.

how to program the two function.

I wish to use signal.