1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
/* Status des erreurs osd internes */
#define OSD_MAXASTS 1
#ifdef WNT
#define NUM_ASTS_DEF 32
#define MAXASTS 10
#define NTDNOTINIT 11
#endif
//#ifdef WNT
//#define errno GetLastError()
//#endif
typedef struct _syssynch SYSSYNCH, *PSYSSYNCH ;
struct _syssynch {
#ifdef UNX
int go ;
int wait ;
#elif defined(WNT)
HANDLE hObject;
#endif
} ;
typedef struct _dring DRING, *PDRING ;
struct _dring {
DRING *next ;
PAST_ADDR_PV ast ;
void *param ;
unsigned int time ;
} ;
#if defined(UNX) || defined(WNT)
#define STSCLR(X) ((X)->type = PENDING ,\
(X)->grp = 0 ,\
(X)->info = 0 ,\
(X)->stat = 0 )
#define STSSYSOSD(X) ((X)->type = SYS_CODE | SYSTEM | ERROR ,\
(X)->grp = GRP_OSD ,\
(X)->stat = errno)
#define STSSYSNTD(X) ((X)->type = SYS_CODE | SYSTEM | ERROR ,\
(X)->grp = GRP_NTD ,\
(X)->stat = errno)
#define STSINTOSD(X,Y) ((X)->type = INTERNAL | ERROR ,\
(X)->grp = GRP_OSD ,\
(X)->stat = (Y))
#define STSINTNTD(X,Y) ((X)->type = INTERNAL | ERROR ,\
(X)->grp = GRP_NTD ,\
(X)->stat = (Y))
#else
#define osd_initsynch(S) 1
#define osd_stop(X) ( (X)->go = 0 )
#define osd_go(X) ( ((X)->go == 0) ? ((X)->go = 1 , SYS$SETEF(0)) : 1 )
#define osd_synch(X,S) (SYS$SYNCH(0, (X)) , 1)
#define osd_disblast() SYS$SETAST(0)
#define osd_enblast() SYS$SETAST(1)
#define osd_exit(X) SYS$EXIT(X)
#endif
|