~sysman-one/starlet/main

« back to all changes in this revision

Viewing changes to utility_routines.h

  • Committer: SysManOne
  • Date: 2021-03-18 07:42:38 UTC
  • Revision ID: git-v1:47ea517d5ab73653512877e006327cb1d01d5661
**      17-MAR-2021     RRL     V.01-01 :  Added a set of routines to mimic to $GETMSG/$PUTMSG service routines.

Show diffs side-by-side

added added

removed removed

Lines of Context:
36
36
**      25-JUN-2019     RRL     Redefined macro $TRACE() to eliminate "if (cond) ..."
37
37
**
38
38
**      10-JUL-2019     RRL     Warning fix.
 
39
**
 
40
**      17-MAR-2021     RRL     Added a set of data structures EMSG_* to support $INIMSG/$PUTMSG/$GETMSG routines.
39
41
*/
40
42
 
41
43
#if _WIN32
280
282
        #define __FAC$_UTILS__  0x01
281
283
#endif
282
284
 
283
 
#define STS$K_WARN      0
284
 
#define STS$K_SUCCESS   1
285
 
#define STS$K_ERROR     2
286
 
#define STS$K_INFO      3
287
 
#define STS$K_UNDEF     8
288
 
#define STS$K_SYSLOG    16      /* This option force sending message to the syslog service      */
 
285
 
 
286
enum    {
 
287
        STS$K_WARN      = 0,
 
288
        STS$K_SUCCESS   = 1,
 
289
        STS$K_ERROR     = 2,
 
290
        STS$K_INFO      = 3,
 
291
        STS$K_FATAL     = 4,
 
292
        STS$K_UNDEF     = 4,
 
293
        STS$K_SYSLOG    = 16    /* This option force sending message to the syslog service      */
 
294
};
 
295
 
 
296
#define STS$C__WARN     "W"
 
297
#define STS$C__SUCCESS  "S"
 
298
#define STS$C__ERROR    "E"
 
299
#define STS$C__INFO     "I"
 
300
#define STS$C__FATAL    "F"
 
301
#define STS$C__UNDEF    "?"
289
302
 
290
303
#define $STS_ERROR(code)        ( ((code) & STS$K_ERROR ) || ((code) & STS$K_ERROR) )
291
304
 
299
312
#define $SEV(code)              ((code) & 0x7)
300
313
 
301
314
 
 
315
typedef struct __emsg_record__  {
 
316
                //EMSG_STS      sts;
 
317
                int             sts;                            /* Message number, LONGWORD*/
 
318
 
 
319
#pragma pack(push, 1)
 
320
                struct {
 
321
                unsigned char   textl,                          /* Message FAO, ASCIC */
 
322
                                text[254];
 
323
                };
 
324
#pragma pack(pop)
 
325
 
 
326
} EMSG_RECORD;
 
327
 
 
328
 
 
329
 
 
330
typedef struct __emsg_record_desc__ {
 
331
                struct __emsg_record_desc__     *link;          /* A link to next Message Descriptor */
 
332
                unsigned                msgnr;                  /* A number of messages in the msgs[] */
 
333
                unsigned                facno;                  /* A facility number */
 
334
                struct __emsg_record__  *msgrec;                        /* An address of the message records */
 
335
} EMSG_RECORD_DESC;
 
336
 
 
337
 
 
338
unsigned        __util$inimsg   (EMSG_RECORD_DESC *msgdsc);
 
339
unsigned        __util$getmsg   (unsigned sts, EMSG_RECORD **outmsg);
 
340
unsigned        __util$putmsg   (unsigned sts, ...);
 
341
 
302
342
unsigned        __util$log      (const char *fac, unsigned severity, const char *fmt, ...);
303
343
unsigned        __util$logd     (const char *fac, unsigned severity, const char *fmt, const char *mod, const char *func, unsigned line, ...);
304
344
unsigned        __util$log2buf  (void *out, int outsz, int * outlen, const char *fac, unsigned severity, const char *fmt, ...);
326
366
 *      STS$K_ERROR
327
367
 */
328
368
 
329
 
 
330
 
 
 
369
#define $LOCK_LONG(lock)        __util$lockspin(lock)
331
370
 
332
371
inline  static int __util$lockspin (void volatile * lock)
333
372
{
349
388
}
350
389
 
351
390
 
352
 
#define $LOCK_LONG(lock)        __util$lockspin(lock)
353
 
 
354
 
 
355
391
/*
356
392
 * Description: Release has been set lock flag, set the lock value to 0.
357
393
 *
361
397
 * Return:
362
398
 *      STS$K_SUCCESS
363
399
 */
 
400
#define $UNLOCK_LONG(lock)      __util$unlockspin(lock)
 
401
 
364
402
inline  static  int __util$unlockspin (void * lock)
365
403
{
366
404
 
375
413
 
376
414
 
377
415
 
378
 
#define $UNLOCK_LONG(lock)      __util$unlockspin(lock)
379
 
 
380
 
 
381
 
 
382
 
 
383
416
/*
384
417
 * Description: Remove all entries from the given queue
385
418
 *