/*-------------------------------------------------------------------+
| NAME: LOAD.H |
| LANGUAGE: C |
| PURPOSE: Provide minimal C versions of the LOAD and DELETE macros. |
| USAGE: _ PROTOTYPE CALL |
| rc = LOAD(name,ep,size); |
| -ARG- -DCL--------- -DESCRIPTION- |
| name char * Name of the module to load |
| ep __asm (*)() entry point address where loaded |
| size int size of loaded module in doublewords |
| rc int 0 = no errors |
| otherwise error |
| |
| rc = DELETE(name); |
| -ARG- -DCL--------- -DESCRIPTION- |
| name char * Name of the module to delete from mem|
| rc int 0 = no errors |
| otherwise error |
| |
+-------------------------------------------------------------------*/
#include <code.h>
#include <svc.h>
#include <genl370.h>
#define LOAD(name,ep,size) /* LOAD Macro -- SVC 8 */\
(_ldregs(R0,name), /* L R0,NAME */\
SR(1,1), /* SR 1,1 Show DCB not given */\
_ossvc(8), /* SVC 8 */\
(int)_stregs(R0+R1+R15,ep,size))/* ST R0,EP */\
/* ST R1,SIZE */\
/* ST R15,RC */
#define DELETE(name) /* DELETE Macro -- SVC 9 */\
(_ldregs(R0,name), /* L R0,NAME */\
_ossvc(9), /* SVC 9 */\
(int) _stregs(R15)) /* ST 15,RC */