]> git.proxmox.com Git - mirror_edk2.git/blob - BaseTools/Source/C/Common/OsPath.h
BaseTools: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / BaseTools / Source / C / Common / OsPath.h
1 /** @file
2 Header file for helper functions useful to operate file directories by parsing
3 file path.
4
5 Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
6 SPDX-License-Identifier: BSD-2-Clause-Patent
7
8 **/
9
10 #ifndef _EFI_OS_PATH_H
11 #define _EFI_OS_PATH_H
12
13 #include <Common/UefiBaseTypes.h>
14
15 //
16 // Functions declarations
17 //
18
19 CHAR8*
20 OsPathDirName (
21 IN CHAR8 *FilePath
22 )
23 ;
24 /**
25
26 Routine Description:
27
28 This function returns the directory path which contains the particular path.
29 Some examples:
30 "a/b/c" -> "a/b"
31 "a/b/c/" -> "a/b"
32 "a" -> "."
33 "." -> ".."
34 "/" -> NULL
35
36 This function does not check for the existence of the file.
37
38 The caller must free the string returned.
39
40 Arguments:
41
42 FilePath Path name of file to get the parent directory for.
43
44 Returns:
45
46 NULL if error
47
48 **/
49
50
51 VOID
52 OsPathNormPathInPlace (
53 IN CHAR8 *Path
54 )
55 ;
56 /**
57
58 Routine Description:
59
60 This function returns the directory path which contains the particular path.
61 Some examples:
62 "a/b/../c" -> "a/c"
63 "a/b//c" -> "a/b/c"
64 "a/./b" -> "a/b"
65
66 This function does not check for the existence of the file.
67
68 Arguments:
69
70 Path Path name of file to normalize
71
72 Returns:
73
74 The string is altered in place.
75
76 **/
77
78
79 CHAR8*
80 OsPathPeerFilePath (
81 IN CHAR8 *OldPath,
82 IN CHAR8 *Peer
83 )
84 ;
85 /**
86
87 Routine Description:
88
89 This function replaces the final portion of a path with an alternative
90 'peer' filename. For example:
91 "a/b/../c", "peer" -> "a/b/../peer"
92 "a/b/", "peer" -> "a/b/peer"
93 "/a", "peer" -> "/peer"
94 "a", "peer" -> "peer"
95
96 This function does not check for the existence of the file.
97
98 Arguments:
99
100 OldPath Path name of replace the final segment
101 Peer The new path name to concatenate to become the peer path
102
103 Returns:
104
105 A CHAR8* string, which must be freed by the caller
106
107 **/
108
109
110 BOOLEAN
111 OsPathExists (
112 IN CHAR8 *InputFileName
113 )
114 ;
115 /**
116
117 Routine Description:
118
119 Checks if a file exists
120
121 Arguments:
122
123 InputFileName The name of the file to check for existence
124
125 Returns:
126
127 TRUE The file exists
128 FALSE The file does not exist
129
130 **/
131
132
133 #endif