]> andersk Git - splint.git/blob - src/Headers/osd.h
bf9387c0e7e00823aab16753c27b534bc1669cec
[splint.git] / src / Headers / osd.h
1 /*
2 ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2003.
3 ** See ../LICENSE for license information.
4 **
5 */
6 /*
7 ** osd.h
8 */
9
10 # ifndef OSD_H
11 # define OSD_H
12
13 /* Macro to substitute for ## because VAX C currently doesn't allow it. */
14 # ifdef __STDC__
15     /* Use an intermediate paste macro so PASTE macro arguments will get    */
16     /* evaluated.  Therefore, PASTE(PASTE(a,b),c) will work. */
17 /*@notfunction@*/
18 # define IPASTE(L,R)        L ## R
19 /*@notfunction@*/
20 # define PASTE(L,R)         IPASTE(L,R)
21 # else
22 /*@notfunction@*/
23 # define PASTE(L,R )        L/**/R
24 # endif
25
26 /* Macro to substitute for # because VAX C currently doesn't allow it. */
27 # ifdef __STDC__
28 /*@notfunction@*/
29 #  define ISTR(x)       # x
30 /*@notfunction@*/
31 #  define STR(x)         ISTR(x)
32 # else
33 /*@notfunction@*/
34 #  define ISTR(x)       "x"
35 /*@notfunction@*/
36 #  define STR(x)                ISTR(x)
37 # endif
38
39 /*
40 ** MAXPATHLEN defines the longest permissable path length.
41 **
42 ** POSIX defines PATHMAX in limits.h
43 */
44
45 # ifdef PATH_MAX
46 /*@constant size_t MAXPATHLEN; @*/
47 # define MAXPATHLEN PATH_MAX
48 # else
49 /*@constant size_t MAXPATHLEN; @*/
50 # define MAXPATHLEN 1024
51 # endif
52
53 typedef enum {
54   OSD_FILEFOUND,
55   OSD_FILENOTFOUND,
56   OSD_PATHTOOLONG 
57 } filestatus;
58
59 extern /*@only@*/ cstring LSLRootName (cstring p_filespec) /*@*/ ;
60
61 extern filestatus   
62   osd_getPath (cstring p_path, cstring p_file, /*@out@*/ cstring *p_returnPath)
63   /*@modifies *p_returnPath@*/ ;
64
65 extern filestatus   
66   osd_getExePath (cstring p_path, cstring p_file, /*@out@*/ cstring *p_returnPath)
67   /*@modifies *p_returnPath@*/ ;
68
69 extern bool osd_fileExists (cstring p_filespec) /*@*/ ;
70 extern /*@observer@*/ cstring
71   osd_getEnvironment (cstring p_env, /*@returned@*/ cstring p_def) /*@*/ ;
72
73 extern filestatus osd_findOnLarchPath (cstring p_file, /*@out@*/ cstring *p_returnPath) 
74   /*@modifies *p_returnPath@*/ ;
75
76 extern void osd_setTempError (void) /*@modifies internalState@*/ ;
77
78 extern /*@observer@*/  cstring osd_getHomeDir (void) /*@*/ ;
79
80 extern /*@observer@*/ cstring osd_getEnvironmentVariable (cstring) ;
81
82 /*@constant int CALL_SUCCESS@*/
83 # define CALL_SUCCESS 0
84 extern int osd_system (cstring p_cmd) /*@modifies fileSystem@*/ ;
85
86 extern cstring osd_absolutePath (cstring p_cwd, cstring p_filename) /*@*/ ;
87 extern /*@only@*/ cstring osd_outputPath (cstring p_filename) /*@*/ ;
88 extern void osd_initMod (void) /*@modifies internalState@*/ ;
89 extern void osd_destroyMod (void) /*@modifies internalState@*/ ;
90
91 extern bool osd_equalCanonicalPrefix (cstring p_dirpath, cstring p_prefixpath) /*@*/ ;
92
93 extern int osd_unlink (cstring) /*@modifies fileSystem@*/ ;
94 extern cstring osd_fixDefine (cstring);
95 extern bool osd_fileIsReadable (cstring);
96
97 extern bool osd_isConnectChar (char) /*@*/ ;
98 extern /*@observer@*/ cstring osd_getCurrentDirectory (void) /*@*/ ;
99
100 # ifdef WIN32
101 extern int osd_getPid (void) ;
102 # else
103 extern int /*pid_t*/ osd_getPid (void) ;
104 # endif
105
106 # else
107 # error "Multiple include"
108 # endif
109
110
111
This page took 0.030893 seconds and 3 git commands to generate.