#include <qp2user.h> int Qp2CallPase(const void *target, const void *arglist, const QP2_arg_type_t *signature, QP2_result_type_t result_type, void *buf); int Qp2CallPase2(const void *target, const void *arglist, const QP2_arg_type_t *signature, QP2_result_type_t result_type, void *buf, short bufLenIn);Service Program Name: QP2USER
The Qp2CallPase() and Qp2CallPase2 functions call a procedure in an i5/OS Portable Application Solutions Environment (i5/OS PASE) program in a job that is already running the i5/OS PASE program.
QP2_ARG_END (0) | The end of the list of argument type values. |
QP2_ARG_WORD (-1) | A 4-byte signed or unsigned integer, or a
structure or union no longer than four bytes. This value is allowed only when
calling a procedure in a 32-bit i5/OS PASE program. |
QP2_ARG_DWORD (-2) | An 8-byte signed or unsigned integer, or a
structure or union no longer than eight bytes. This value is allowed only when
calling a procedure in a 64-bit i5/OS PASE program. |
QP2_ARG_FLOAT32 (-3) | A 4-byte floating point number. |
QP2_ARG_FLOAT64 (-4) | An 8-byte floating point number. |
QP2_ARG_PTR32 (-5) | A 4-byte pointer. The value in the arglist buffer
is passed unchanged unless its high-order bits (excluding the lower 16 bits)
match the corresponding part of constant QP2_ARG_PTR_TOSTACK (0x0fff0000). In
that case, the arglist value is changed to the memory address used for a copy
of the buf area plus an offset in the lower 16 bits of the arglist value, and
the updated value is passed to the i5/OS PASE procedure. QP2_ARG_PTR32 is
allowed only when calling a procedure in a 32-bit i5/OS PASE program. |
QP2_ARG_PTR64 (-6) | An 8-byte pointer. The value in the arglist buffer is passed unchanged unless its high-order bits (excluding the lower 16 bits) match the corresponding part of constant QP2_ARG_PTR_TOSTACK (0x000000000fff0000). In that case, the arglist value is changed to the memory address used for a copy of the buf area plus an offset in the lower 16 bits of the arglist value, and the updated value is passed to the i5/OS PASE procedure. QP2_ARG_PTR64 is allowed only when calling a procedure in a 64-bit i5/OS PASE program. |
QP2_RESULT_VOID (0) | No function result returned. |
QP2_RESULT_WORD (-1) | A 4-byte signed or unsigned integer, or a
structure or union no longer than four bytes. This value is allowed only when
calling a procedure in a 32-bit i5/OS PASE program. |
QP2_RESULT_DWORD (-2) | An 8-byte signed or unsigned integer, or a
structure or union no longer than eight bytes returned by a procedure in a
64-bit i5/OS PASE program. |
QP2_RESULT_FLOAT64 (-4) | An 8-byte floating point number. |
QP2_RESULT_PTR32 (-5) | A 4-byte pointer. A pointer result from the
i5/OS PASE procedure is returned unchanged. This value is allowed only when
calling a procedure in a 32-bit i5/OS PASE program. |
QP2_RESULT_PTR64 (-6) | An 8-byte pointer. A pointer result from the i5/OS PASE procedure is returned unchanged. This value is allowed only when calling a procedure in a 64-bit i5/OS PASE program. |
None.
The function result is an integer that indicates whether the i5/OS PASE function was called successfully. Header file qp2user.h defines the following constants for the return code from Qp2CallPase and Qp2CallPase2:
QP2CALLPASE_NORMAL (0) | The i5/OS PASE procedure ran to completion and
its function result (if any) was stored in the location identified by the buf
parameter. |
QP2CALLPASE_RESULT_ERROR (1) | The i5/OS PASE procedure ran to completion, but
its function result could not be stored at the location identified by the buf
parameter. buf may be a null pointer value, or the space addressed by buf may
be damaged or destroyed. |
QP2CALLPASE_ENVIRON_ERROR (2) | The operation is not allowed because no i5/OS
PASE program is running in the job, or the thread that called Qp2CallPase or
Qp2CallPase2 was neither the initial i5/OS PASE thread nor a thread created
using i5/OS PASE pthread interfaces. |
QP2CALLPASE_ARG_ERROR (4) | One or more values in the signature array are not
valid. |
QP2CALLPASE_TERMINATING (6) | The i5/OS PASE program is terminating. No
function result was returned. The i5/OS PASE program may have run the exit
function, or a signal might have caused the program to terminate. |
QP2CALLPASE_RETURN_NOEXIT (7) | The i5/OS PASE program returned without exiting by calling the i5/OS PASE _RETURN function. No function result was returned. |
Top | i5/OS PASE APIs | APIs by category |