APIDefinitions.h
Go to the documentation of this file.
1
/*----------------------------------------------------------------------------*/
2
/* */
3
/* Copyright (c) 1995, 2004 IBM Corporation. All rights reserved. */
4
/* Copyright (c) 2005-2009 Rexx Language Association. All rights reserved. */
5
/* */
6
/* This program and the accompanying materials are made available under */
7
/* the terms of the Common Public License v1.0 which accompanies this */
8
/* distribution. A copy is also available at the following address: */
9
/* http://www.oorexx.org/license.html */
10
/* */
11
/* Redistribution and use in source and binary forms, with or */
12
/* without modification, are permitted provided that the following */
13
/* conditions are met: */
14
/* */
15
/* Redistributions of source code must retain the above copyright */
16
/* notice, this list of conditions and the following disclaimer. */
17
/* Redistributions in binary form must reproduce the above copyright */
18
/* notice, this list of conditions and the following disclaimer in */
19
/* the documentation and/or other materials provided with the distribution. */
20
/* */
21
/* Neither the name of Rexx Language Association nor the names */
22
/* of its contributors may be used to endorse or promote products */
23
/* derived from this software without specific prior written permission. */
24
/* */
25
/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
26
/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
27
/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
28
/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */
29
/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
30
/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */
31
/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */
32
/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */
33
/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */
34
/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */
35
/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
36
/* */
37
/*----------------------------------------------------------------------------*/
38
/*********************************************************************/
39
/* REXX for UNIX APIDefinitions.h */
40
/*********************************************************************/
41
42
#ifndef AIXAPI_H_INCLUDED
43
#define AIXAPI_H_INCLUDED
44
45
#include "
rexx.h
"
46
/*** Structure of Rexx API registration block (APIBLOCK) */
47
48
#define USERLENGTH 8
/* Length of saved user data */
49
#define MAXNAME 128
50
#define REGNOOFTYPES 3
51
52
typedef
struct
apireg_node
{
53
size_t
next
;
/* number of the next block */
54
char
apiname
[
MAXNAME
];
/* routine name */
55
char
apidll_name
[
MAXNAME
];
/* module name */
56
char
apidll_proc
[
MAXNAME
];
/* procedure name */
57
char
apiuser
[
USERLENGTH
];
/* user area */
58
REXXPFN
apiaddr
;
/* routine address */
59
void
*
apimod_handle
;
/* dynalink module handle */
60
size_t
apidrop_auth
;
/* Permission to drop */
61
process_id_t
apipid
;
/* Pid of Registrant */
62
process_id_t
apiownpid
;
/* Pid of owner */
63
int
apiFunRegFlag
;
/* Main reg set to >0< */
64
}
APIBLOCK
;
65
66
typedef
APIBLOCK
*
PAPIBLOCK
;
67
68
#define APISIZE sizeof(APIBLOCK)
/* for size of API Block */
69
#define NAMESIZE 0x00ff
/* size of a function name */
70
#define SZSTR(x) (x?strlen(x)+1:0)
/* size of allocated string */
71
#define MAXARGS 20
/* max # args to func. or proc. */
72
#define YES 1
73
#define NO 0
74
75
76
77
78
#define NAMESIZE 0x00ff
/* size of a function name */
79
80
typedef
struct
_MACRO
{
/****** MACRO structure *******/
81
size_t
next
;
/* pointer to next function */
82
char
name
[
NAMESIZE
];
/* function name */
83
RXSTRING
temp_buf
;
/* temp buffer */
84
size_t
image
;
/* pcode+literals image */
85
size_t
i_size
;
/* size of image */
86
size_t
srch_pos
;
/* search order position */
87
}
MACRO
;
/******************************/
88
/******************************/
89
typedef
MACRO
*
PMACRO
;
/* pointer to MACRO structure */
90
/******************************/
91
#define MACROSIZE sizeof(MACRO)
/* size of MACRO structure */
92
#define PMNULL ((PMACRO *)0)
/* null pointer to PMACRO */
93
#define SZSTR(x) (x?strlen(x)+1:0)
/* size of allocated string */
94
95
96
/* Semaphore control structure. Used for the rexxutil semaphores */
97
typedef
struct
_SEMCONT
{
98
char
name
[
MAXNAME
];
/* semaphore name */
99
int
usecount
;
/* semaphore usecount */
100
int
type
;
/* semaphore type: 0=Event */
101
/* 1=Mutex */
102
bool
waitandreset
;
/* eventsem second new arg */
103
}
SEMCONT
;
104
105
#define EVENT 0
/* event semaphore */
106
#define MUTEX 1
/* mutex semaphore */
107
108
#endif
SEMCONT
struct _SEMCONT SEMCONT
PMACRO
MACRO * PMACRO
Definition:
APIDefinitions.h:89
PAPIBLOCK
APIBLOCK * PAPIBLOCK
Definition:
APIDefinitions.h:66
APIBLOCK
struct apireg_node APIBLOCK
MACRO
struct _MACRO MACRO
MAXNAME
#define MAXNAME
Definition:
APIDefinitions.h:49
USERLENGTH
#define USERLENGTH
Definition:
APIDefinitions.h:48
NAMESIZE
#define NAMESIZE
Definition:
APIDefinitions.h:78
rexx.h
_MACRO
Definition:
APIDefinitions.h:80
_MACRO::name
char name[NAMESIZE]
Definition:
APIDefinitions.h:82
_MACRO::next
size_t next
Definition:
APIDefinitions.h:81
_MACRO::temp_buf
RXSTRING temp_buf
Definition:
APIDefinitions.h:83
_MACRO::srch_pos
size_t srch_pos
Definition:
APIDefinitions.h:86
_MACRO::i_size
size_t i_size
Definition:
APIDefinitions.h:85
_MACRO::image
size_t image
Definition:
APIDefinitions.h:84
_RXSTRING
Definition:
rexx.h:156
_SEMCONT
Definition:
APIDefinitions.h:97
_SEMCONT::name
char name[MAXNAME]
Definition:
APIDefinitions.h:98
_SEMCONT::usecount
int usecount
Definition:
APIDefinitions.h:99
_SEMCONT::type
int type
Definition:
APIDefinitions.h:100
_SEMCONT::waitandreset
bool waitandreset
Definition:
APIDefinitions.h:102
apireg_node
Definition:
APIDefinitions.h:52
apireg_node::apiownpid
process_id_t apiownpid
Definition:
APIDefinitions.h:62
apireg_node::apidll_name
char apidll_name[MAXNAME]
Definition:
APIDefinitions.h:55
apireg_node::apiFunRegFlag
int apiFunRegFlag
Definition:
APIDefinitions.h:63
apireg_node::apiuser
char apiuser[USERLENGTH]
Definition:
APIDefinitions.h:57
apireg_node::apipid
process_id_t apipid
Definition:
APIDefinitions.h:61
apireg_node::next
size_t next
Definition:
APIDefinitions.h:53
apireg_node::apidrop_auth
size_t apidrop_auth
Definition:
APIDefinitions.h:60
apireg_node::apimod_handle
void * apimod_handle
Definition:
APIDefinitions.h:59
apireg_node::apiname
char apiname[MAXNAME]
Definition:
APIDefinitions.h:54
apireg_node::apidll_proc
char apidll_proc[MAXNAME]
Definition:
APIDefinitions.h:56
apireg_node::apiaddr
REXXPFN apiaddr
Definition:
APIDefinitions.h:58
process_id_t
pid_t process_id_t
Definition:
unix/rexxapitypes.h:65
REXXPFN
void * REXXPFN
Definition:
unix/rexxapitypes.h:64
oorexx
executor
sandbox
jlf
trunk
interpreter
platform
unix
APIDefinitions.h
Generated by
1.9.2