0001
0002
0003
0004
0005
0006
0007 #ifndef __XATMI_H__
0008 #define __XATMI_H__
0009
0010 #if defined(__cplusplus)
0011 extern "C" {
0012 #endif
0013
0014
0015 #include <ndrx_config.h>
0016 #include <ndrstandard.h>
0017 #include <stdint.h>
0018 #include <sys/types.h>
0019 #include <ubf.h>
0020 #include <xa.h>
0021
0022
0023
0024
0025
0026 #define TPNOBLOCK 0x00000001
0027 #define TPSIGRSTRT 0x00000002
0028 #define TPNOREPLY 0x00000004
0029 #define TPNOTRAN 0x00000008
0030 #define TPTRAN 0x00000010
0031 #define TPNOTIME 0x00000020
0032 #define TPABSOLUTE 0x00000040
0033 #define TPGETANY 0x00000080
0034 #define TPNOCHANGE 0x00000100
0035 #define TPCONV 0x00000400
0036 #define TPSENDONLY 0x00000800
0037 #define TPRECVONLY 0x00001000
0038 #define TPACK 0x00002000
0039
0040 #define TPSOFTERR 0x00020000
0041
0042 #define TPTRANSUSPEND 0x00040000
0043
0044 #define TPSOFTTIMEOUT 0x00080000
0045
0046 #define TPSOFTENOENT 0x00100000
0047
0048 #define TPNOAUTBUF 0x00200000
0049
0050 #define RESERVED_BIT1 0x00400000
0051
0052 #define TPREGEXMATCH 0x00800000
0053
0054 #define TPNOCACHELOOK 0x01000000
0055
0056 #define TPNOCACHEADD 0x02000000
0057
0058 #define TPNOCACHEDDATA 0x04000000
0059
0060 #define TPNOABORT 0x08000000
0061
0062 #define TPEVSERVICE 0x00000001
0063 #define TPEVQUEUE 0x00000002
0064 #define TPEVTRAN 0x00000004
0065 #define TPEVPERSIST 0x00000008
0066
0067 #define TPEX_NOCHANGE 0x00000004
0068
0069 #define TPEX_STRING 0x00000008
0070 #define TPIMPEXP_VERSION_MIN 1
0071 #define TPIMPEXP_VERSION_MAX 1
0072
0073
0074 #define NDRX_XID_SERIAL_BUFSIZE 48
0075 #define NDRX_MAX_RMS 32
0076 #define TMTXFLAGS_IS_ABORT_ONLY 0x0001
0077
0078 #define ATMI_XA_TX_INFO_FIELDS \
0079 short tmtxflags; \
0080 char tmxid[NDRX_XID_SERIAL_BUFSIZE+1]; \
0081 short tmrmid; \
0082 short tmnodeid; \
0083 short tmsrvid; \
0084 char tmknownrms[NDRX_MAX_RMS+1];
0085
0086
0087 #define TPFAIL 0x00000001
0088
0089 #define TPSUCCESS 0x00000002
0090
0091 #define TPEXIT 0x08000000
0092
0093 #define tperrno (*_exget_tperrno_addr())
0094 #define tpurcode (*_exget_tpurcode_addr())
0095
0096
0097
0098
0099 #define TPMINVAL 0
0100 #define TPEABORT 1
0101 #define TPEBADDESC 2
0102 #define TPEBLOCK 3
0103 #define TPEINVAL 4
0104 #define TPELIMIT 5
0105 #define TPENOENT 6
0106 #define TPEOS 7
0107 #define TPEPERM 8
0108 #define TPEPROTO 9
0109 #define TPESVCERR 10
0110 #define TPESVCFAIL 11
0111 #define TPESYSTEM 12
0112 #define TPETIME 13
0113 #define TPETRAN 14
0114 #define TPGOTSIG 15
0115 #define TPERMERR 16
0116 #define TPEITYPE 17
0117 #define TPEOTYPE 18
0118 #define TPERELEASE 19
0119 #define TPEHAZARD 20
0120 #define TPEHEURISTIC 21
0121 #define TPEEVENT 22
0122 #define TPEMATCH 23
0123 #define TPEDIAGNOSTIC 24
0124 #define TPEMIB 25
0125 #define TPERFU26 26
0126 #define TPERFU27 27
0127 #define TPERFU28 28
0128 #define TPERFU29 29
0129 #define TPINITFAIL 30
0130 #define TPMAXVAL 30
0131
0132
0133
0134
0135 #define TPEV_DISCONIMM 0x0001
0136 #define TPEV_SVCERR 0x0002
0137 #define TPEV_SVCFAIL 0x0004
0138 #define TPEV_SVCSUCC 0x0008
0139 #define TPEV_SENDONLY 0x0020
0140
0141
0142
0143 #define TPU_MASK 0x00000007
0144 #define TPU_SIG 0x00000001
0145 #define TPU_DIP 0x00000002
0146 #define TPU_IGN 0x00000004
0147
0148
0149 #define TPSA_FASTPATH 0x00000008
0150 #define TPSA_PROTECTED 0x00000010
0151
0152
0153
0154
0155
0156
0157
0158
0159
0160 #define TPCI_NOEOFERR 0x00000001
0161
0162
0163
0164
0165
0166
0167
0168 #define TPPG_NONSGSUCC 0x00001000
0169 #define TPPG_SGVERIFY 0x00002000
0170 #define TPPG_SINGLETON 0x00000020
0171
0172
0173
0174
0175
0176
0177 #define TPCONVMAXSTR 512
0178 #define TPTOSTRING 0x00000001
0179 #define TPCONVCLTID 0x00000002
0180 #define TPCONVTRANID 0x00000004
0181 #define TPCONVXID 0x00000008
0182
0183
0184 #define TPINITNEED(u) sizeof(TPINIT)
0185
0186 #define CTXT_PRIV_NONE 0x00000
0187 #define CTXT_PRIV_NSTD 0x00001
0188 #define CTXT_PRIV_UBF 0x00002
0189 #define CTXT_PRIV_ATMI 0x00004
0190 #define CTXT_PRIV_TRAN 0x00008
0191 #define CTXT_PRIV_NOCHK 0x00010
0192 #define CTXT_PRIV_IGN 0x00020
0193
0194
0195
0196 #define TPINVALIDCONTEXT -1
0197 #define TPSINGLECONTEXT -2
0198
0199 #define TPNULLCONTEXT 0
0200 #define TPMULTICONTEXTS 0x00000040
0201
0202
0203
0204
0205 #define X_OCTET "X_OCTET"
0206 #define X_C_TYPE "X_C_TYPE"
0207 #define X_COMMON "X_COMMON"
0208
0209 #define MAXTIDENT 30
0210 #define XATMI_SERVICE_NAME_LENGTH MAXTIDENT
0211 #define XATMI_TYPE_LEN 8
0212 #define XATMI_SUBTYPE_LEN 33
0213 #define XATMI_EVENT_MAX 42
0214
0215 #define CONF_NDRX_MAX_SRVIDS_XADMIN 512
0216
0217
0218
0219
0220
0221 #ifdef EX_OS_DARWIN
0222
0223
0224
0225
0226
0227 #define MAX_ASYNC_CALLS 1000
0228
0229 #else
0230
0231 #define MAX_ASYNC_CALLS 16384
0232
0233 #endif
0234
0235
0236 #define MAX_CONNECTIONS 10
0237
0238
0239
0240
0241
0242
0243
0244
0245 #define NDRX_CONV_UPPER_CNT (MAX_CONNECTIONS*100)
0246
0247 #define NDRX_EVENT_EXPR_MAX 255
0248 #define NDRX_CACHE_KEY_MAX 16384
0249 #define NDRX_CACHE_FLAGS_MAX 512
0250
0251
0252
0253 #define SYS_SRV_THREAD 0x00000004
0254
0255 #define tpadvertise(_SVCNM, _FNADDR) tpadvertise_full(_SVCNM, _FNADDR, #_FNADDR)
0256
0257 #define NDRX_INTEGRA(X) __##X##__
0258
0259 #ifndef _
0260 #define _(X) X
0261 #endif
0262
0263
0264 #define TMQNAMELEN 15
0265 #define TMMSGIDLEN 32
0266 #define TMMSGIDLEN_STR 45
0267 #define TMCORRIDLEN 32
0268 #define TMCORRIDLEN_STR 45
0269
0270
0271 #define TPNOFLAGS 0x00000
0272 #define TPQCORRID 0x00001
0273 #define TPQFAILUREQ 0x00002
0274 #define TPQBEFOREMSGID 0x00004
0275 #define TPQGETBYMSGIDOLD 0x00008
0276 #define TPQMSGID 0x00010
0277 #define TPQPRIORITY 0x00020
0278 #define TPQTOP 0x00040
0279 #define TPQWAIT 0x00080
0280 #define TPQREPLYQ 0x00100
0281 #define TPQTIME_ABS 0x00200
0282 #define TPQTIME_REL 0x00400
0283 #define TPQGETBYCORRIDOLD 0x00800
0284 #define TPQPEEK 0x01000
0285 #define TPQDELIVERYQOS 0x02000
0286 #define TPQREPLYQOS 0x04000
0287 #define TPQEXPTIME_ABS 0x08000
0288 #define TPQEXPTIME_REL 0x10000
0289 #define TPQEXPTIME_NONE 0x20000
0290 #define TPQGETBYMSGID 0x40008
0291 #define TPQGETBYCORRID 0x80800
0292 #define TPQASYNC 0x100000
0293
0294
0295 #define TPQQOSDEFAULTPERSIST 0x00001
0296 #define TPQQOSPERSISTENT 0x00002
0297 #define TPQQOSNONPERSISTENT 0x00004
0298
0299 #define QMEINVAL -1
0300 #define QMEBADRMID -2
0301 #define QMENOTOPEN -3
0302 #define QMETRAN -4
0303 #define QMEBADMSGID -5
0304 #define QMESYSTEM -6
0305 #define QMEOS -7
0306 #define QMEABORTED -8
0307 #define QMENOTA QMEABORTED
0308 #define QMEPROTO -9
0309 #define QMEBADQUEUE -10
0310 #define QMENOMSG -11
0311 #define QMEINUSE -12
0312 #define QMENOSPACE -13
0313 #define QMERELEASE -14
0314 #define QMEINVHANDLE -15
0315 #define QMESHARE -16
0316
0317
0318
0319
0320
0321
0322 #define CTXT_PRIV_NONE 0x00000
0323 #define CTXT_PRIV_NSTD 0x00001
0324 #define CTXT_PRIV_UBF 0x00002
0325 #define CTXT_PRIV_ATMI 0x00004
0326 #define CTXT_PRIV_TRAN 0x00008
0327 #define CTXT_PRIV_NOCHK 0x00010
0328 #define CTXT_PRIV_IGN 0x00020
0329
0330
0331 #define TPNOAUTH 0
0332 #define TPSYSAUTH 1
0333 #define TPAPPAUTH 2
0334
0335
0336 #define TPUNSOLERR ndrx_ndrx_tmunsolerr_handler
0337
0338
0339
0340
0341 #define TPMYIDTYP_CLIENT 1
0342 #define TPMYIDTYP_SERVER 2
0343
0344
0345
0346 #define ATMI_SRVLIB_NOLONGJUMP 0x00000001
0347
0348
0349
0350
0351
0352 #define TPTXCOMMITDLOG 0x00000004
0353 #define TPTXNOOPTIM 0x00000100
0354 #define TPTXTMSUSPEND 0x00000200
0355
0356
0357 #define TP_CMT_LOGGED 0x04
0358 #define TP_CMT_COMPLETE 0x08
0359
0360 #define NDRX_DDR_CRITMAX 15
0361 #define NDRX_DDR_GRP_MAX 15
0362 #define NDRX_DDR_TRANTIMEDFLT 30
0363
0364
0365
0366
0367
0368 struct clientid_t
0369 {
0370
0371 char clientdata[NDRX_MAX_ID_SIZE];
0372 };
0373 typedef struct clientid_t CLIENTID;
0374
0375
0376 struct tp_tranid_t
0377 {
0378
0379
0380 short tmtxflags;
0381 char tmxid[NDRX_XID_SERIAL_BUFSIZE+1];
0382 short tmrmid;
0383 short tmnodeid;
0384 short tmsrvid;
0385 char tmknownrms[NDRX_MAX_RMS+1];
0386
0387 int is_tx_initiator;
0388 };
0389 typedef struct tp_tranid_t TPTRANID;
0390
0391
0392 struct tpevctl_t
0393 {
0394 long flags;
0395 char name1[XATMI_SERVICE_NAME_LENGTH+1];
0396 char name2[XATMI_SERVICE_NAME_LENGTH+1];
0397 };
0398 typedef struct tpevctl_t TPEVCTL;
0399
0400
0401
0402
0403 typedef struct
0404 {
0405 char name[XATMI_SERVICE_NAME_LENGTH+1];
0406 char *data;
0407 long len;
0408 long flags;
0409 int cd;
0410 long appkey;
0411 CLIENTID cltid;
0412 char fname[XATMI_SERVICE_NAME_LENGTH+1];
0413 } TPSVCINFO;
0414
0415 struct tpinfo_t
0416 {
0417 char usrname[MAXTIDENT+2];
0418 char cltname[MAXTIDENT+2];
0419 char passwd[MAXTIDENT+2];
0420 char grpname[MAXTIDENT+2];
0421 long flags;
0422 long datalen;
0423 long data;
0424 };
0425 typedef struct tpinfo_t TPINIT;
0426
0427 typedef void* TPCONTEXT_T;
0428
0429
0430 struct tpqctl_t
0431 {
0432 long flags;
0433 long deq_time;
0434 long priority;
0435 long diagnostic;
0436 char diagmsg[NDRX_QDIAG_MSG_SIZE];
0437 char msgid[TMMSGIDLEN];
0438 char corrid[TMCORRIDLEN];
0439 char replyqueue[TMQNAMELEN+1];
0440 char failurequeue[TMQNAMELEN+1];
0441 CLIENTID cltid;
0442 long urcode;
0443 long appkey;
0444 long delivery_qos;
0445 long reply_qos;
0446 long exp_time;
0447 };
0448 typedef struct tpqctl_t TPQCTL;
0449
0450
0451 struct tpmyid_t
0452 {
0453 char binary_name[MAXTIDENT+2];
0454 pid_t pid;
0455 long contextid;
0456 int nodeid;
0457 int srv_id;
0458 int tpmyidtyp;
0459 int isconv;
0460 int cd;
0461 };
0462
0463 typedef struct tpmyid_t TPMYID;
0464
0465
0466
0467
0468
0469
0470 struct tmdsptchtbl_t
0471 {
0472 char *svcnm;
0473 char *funcnm;
0474 void (*p_func)(TPSVCINFO *);
0475 long rfu1;
0476 long rfu2;
0477 };
0478
0479
0480
0481
0482
0483 struct tmsvrargs_t
0484 {
0485 struct xa_switch_t * xa_switch;
0486 struct tmdsptchtbl_t *svctab;
0487 long flags;
0488 int (*p_tpsvrinit)(int, char **);
0489 void (*p_tpsvrdone)(void);
0490 void * reserved0;
0491 void * reserved1;
0492 void * reserved2;
0493 void * reserved3;
0494 void * reserved4;
0495 int (*p_tpsvrthrinit)(int, char **);
0496 void (*p_tpsvrthrdone)(void);
0497 };
0498
0499 #define TPBLK_NEXT 0x0002
0500 #define TPBLK_ALL 0x0004
0501 #define TPBLK__MASK 0x0006
0502
0503 extern NDRX_API int (*G_tpsvrinit__)(int, char **);
0504 extern NDRX_API void (*G_tpsvrdone__)(void);
0505
0506 extern NDRX_API int _tmbuilt_with_thread_option;
0507 extern NDRX_API struct xa_switch_t tmnull_switch;
0508
0509
0510
0511
0512
0513 extern NDRX_API int tpacall(char *svc, char *data, long len, long flags);
0514 extern NDRX_API int tpadvertise_full (char *svc_nm, void (*p_func)(TPSVCINFO *), char *fn_nm);
0515 extern NDRX_API char *tpalloc(char *type, char *subtype, long size);
0516 extern NDRX_API int tpcall(char *svc, char *idata, long ilen, char **odata, long *olen, long flags);
0517 extern NDRX_API int tpcancel(int cd);
0518 extern NDRX_API int tpconnect(char *svc, char *data, long len, long flags);
0519 extern NDRX_API int tpdiscon(int cd);
0520 extern NDRX_API void tpfree(char *ptr);
0521 extern NDRX_API int tpisautobuf (char *buf);
0522 extern NDRX_API int tpgetrply(int *cd, char **data, long *len, long flags);
0523 extern NDRX_API char *tprealloc(char *ptr, long size);
0524 extern NDRX_API int tprecv(int cd, char **data, long *len, long flags, long *revent);
0525 extern NDRX_API void tpreturn(int rval, long rcode, char *data, long len, long flags);
0526 extern NDRX_API int tpsend(int cd, char *data, long len, long flags, long *revent);
0527 extern NDRX_API void tpservice(TPSVCINFO *svcinfo);
0528 extern NDRX_API long tptypes(char *ptr, char *type, char *subtype);
0529 extern NDRX_API int tpunadvertise(char *svcname);
0530
0531
0532
0533
0534 extern NDRX_API void tpforward (char *svc, char *data, long len, long flags);
0535 extern NDRX_API void tpexit(void);
0536 extern NDRX_API int tpabort (long flags);
0537 extern NDRX_API int tpscmt(long flags);
0538 extern NDRX_API int tpbegin (unsigned long timeout, long flags);
0539 extern NDRX_API int tpcommit (long flags);
0540 extern NDRX_API int tpconvert (char *str, char *bin, long flags);
0541 extern NDRX_API int tpsuspend (TPTRANID *tranid, long flags);
0542 extern NDRX_API int tpresume (TPTRANID *tranid, long flags);
0543 extern NDRX_API int tpopen (void);
0544 extern NDRX_API int tpclose (void);
0545 extern NDRX_API int tpgetlev (void);
0546 extern NDRX_API char * tpstrerror (int err);
0547 extern NDRX_API int tperrordetail(long flags);
0548 extern NDRX_API char * tpstrerrordetail(int err, long flags);
0549 extern NDRX_API char * tpecodestr(int err);
0550 extern NDRX_API char * tpsrvgetctxdata (void);
0551 extern NDRX_API char * tpsrvgetctxdata2 (char *p_buf, long *p_len);
0552 extern NDRX_API void tpsrvfreectxdata(char *p_buf);
0553 extern NDRX_API int tpsrvsetctxdata (char *data, long flags);
0554 extern NDRX_API void tpcontinue (void);
0555 extern NDRX_API long tpgetnodeid(void);
0556 extern NDRX_API long tpsubscribe (char *eventexpr, char *filter, TPEVCTL *ctl, long flags);
0557 extern NDRX_API int tpunsubscribe (long subscription, long flags);
0558 extern NDRX_API int tppost (char *eventname, char *data, long len, long flags);
0559 extern NDRX_API int * _exget_tperrno_addr (void);
0560 extern NDRX_API long * _exget_tpurcode_addr (void);
0561 extern NDRX_API int tpinit(TPINIT *tpinfo);
0562 extern NDRX_API int tpappthrinit(TPINIT *tpinfo);
0563 extern NDRX_API int tpchkauth(void);
0564 extern NDRX_API void (*tpsetunsol (void (*disp) (char *data, long len, long flags))) (char *data, long len, long flags);
0565 extern NDRX_API int tpnotify(CLIENTID *clientid, char *data, long len, long flags);
0566 extern NDRX_API int tpbroadcast(char *lmid, char *usrname, char *cltname, char *data, long len, long flags);
0567 extern NDRX_API int tpchkunsol(void);
0568
0569 extern NDRX_API int tptoutset(int tout);
0570 extern NDRX_API int tptoutget(void);
0571 extern NDRX_API int tpimport(char *istr, long ilen, char **obuf, long *olen, long flags);
0572 extern NDRX_API int tpexport(char *ibuf, long ilen, char *ostr, long *olen, long flags);
0573 extern NDRX_API void* tpgetconn(void);
0574 extern NDRX_API char *tuxgetenv(char *envname);
0575 extern NDRX_API int tpgetcallinfo(const char *msg, UBFH **cibuf, long flags);
0576 extern NDRX_API int tpsetcallinfo(const char *msg, UBFH *cibuf, long flags);
0577
0578
0579 extern NDRX_API void tpsvrdone(void);
0580 extern NDRX_API int tpsvrinit (int argc, char **argv);
0581
0582 extern NDRX_API int tpsvrthrinit(int argc, char **argv);
0583 extern NDRX_API void tpsvrthrdone (void);
0584
0585
0586 extern NDRX_API int tpext_addpollerfd(int fd, uint32_t events, void *ptr1,
0587 int (*p_pollevent)(int fd, uint32_t events, void *ptr1));
0588 extern NDRX_API int tpext_delpollerfd(int fd);
0589 extern NDRX_API int tpext_addperiodcb(int secs, int (*p_periodcb)(void));
0590 extern NDRX_API int tpext_delperiodcb(void);
0591 extern NDRX_API int tpext_addb4pollcb(int (*p_b4pollcb)(void));
0592 extern NDRX_API int tpext_delb4pollcb(void);
0593 extern NDRX_API int tpterm (void);
0594 extern NDRX_API int tpappthrterm(void);
0595 extern NDRX_API int tpgetsrvid (void);
0596
0597
0598 extern NDRX_API int tpjsontoubf(UBFH *p_ub, char *buffer);
0599 extern NDRX_API int tpubftojson(UBFH *p_ub, char *buffer, int bufsize);
0600
0601
0602
0603 extern NDRX_API int tpviewtojson(char *cstruct, char *view, char *buffer,
0604 int bufsize, long flags);
0605 extern NDRX_API char * tpjsontoview(char *view, char *buffer);
0606
0607
0608 extern NDRX_API int tpenqueue (char *qspace, char *qname, TPQCTL *ctl, char *data, long len, long flags);
0609 extern NDRX_API int tpdequeue (char *qspace, char *qname, TPQCTL *ctl, char **data, long *len, long flags);
0610
0611 extern NDRX_API int tpenqueueex (short nodeid, short srvid, char *qname, TPQCTL *ctl, char *data, long len, long flags);
0612 extern NDRX_API int tpdequeueex (short nodeid, short srvid, char *qname, TPQCTL *ctl, char **data, long *len, long flags);
0613
0614 extern NDRX_API int ndrx_main(int argc, char **argv);
0615 extern NDRX_API int ndrx_main_integra(int argc, char** argv, int (*in_tpsvrinit)(int, char **),
0616 void (*in_tpsvrdone)(void), long flags);
0617
0618
0619 extern NDRX_API int _tmstartserver( int argc, char **argv, struct tmsvrargs_t *tmsvrargs);
0620 extern NDRX_API int _tmrunserver(int arg1);
0621 extern NDRX_API struct tmsvrargs_t * _tmgetsvrargs(void);
0622
0623
0624 extern NDRX_API int tpgetctxt(TPCONTEXT_T *context, long flags);
0625 extern NDRX_API int tpsetctxt(TPCONTEXT_T context, long flags);
0626
0627 extern NDRX_API TPCONTEXT_T tpnewctxt(int auto_destroy, int auto_set);
0628 extern NDRX_API void tpfreectxt(TPCONTEXT_T context);
0629
0630 extern int ndrx_tpsetctxt(TPCONTEXT_T context, long flags, long priv_flags);
0631 extern int ndrx_tpgetctxt(TPCONTEXT_T *context, long flags, long priv_flags);
0632
0633 extern NDRX_API int tplogsetreqfile(char **data, char *filename, char *filesvc);
0634 extern NDRX_API int tploggetbufreqfile(char *data, char *filename, int bufsize);
0635 extern NDRX_API int tplogdelbufreqfile(char *data);
0636 extern NDRX_API void tplogprintubf(int lev, char *title, UBFH *p_ub);
0637
0638
0639 extern NDRX_API void * ndrx_atmi_tls_get(long priv_flags);
0640 extern NDRX_API int ndrx_atmi_tls_set(void *data, int flags, long priv_flags);
0641 extern NDRX_API void ndrx_atmi_tls_free(void *data);
0642 extern NDRX_API void * ndrx_atmi_tls_new(void *tls_in, int auto_destroy, int auto_set);
0643
0644
0645 extern NDRX_API void ndrx_ndrx_tmunsolerr_handler(char *data, long len, long flags);
0646
0647 extern NDRX_API pid_t ndrx_fork(void);
0648 extern NDRX_API void ndrx_atfork_child(void);
0649 extern NDRX_API void ndrx_atfork_parent(void);
0650 extern NDRX_API void ndrx_atfork_prepare(void);
0651
0652 extern NDRX_API int tpencrypt(char *input, long ilen, char *output, long *olen, long flags);
0653 extern NDRX_API int tpdecrypt(char *input, long ilen, char *output, long *olen, long flags);
0654
0655 extern NDRX_API int tpsprio(int prio, long flags);
0656 extern NDRX_API int tpgprio(void);
0657
0658 extern NDRX_API int tpsblktime(int tout,long flags);
0659 extern NDRX_API int tpgblktime(long flags);
0660
0661 extern NDRX_API long tpsgislocked(int grpno, long flags, long *grp_flags);
0662
0663 extern NDRX_API struct xa_switch_t* ndrx_xa_sw_get(void);
0664
0665 #if defined(__cplusplus)
0666 }
0667 #endif
0668
0669 #endif
0670
0671