blob: aef8e033ecd373864bc28703331ee1ef23b40a27 [file] [log] [blame]
Reid Spencer8e665952004-08-29 05:24:01 +00001//===- llvm/System/AIX/Path.cpp - AIX Path Implementation -------*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file was developed by Reid Spencer and is distributed under the
6// University of Illinois Open Source License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9//
10// This file provides the AIX specific implementation of the Path class.
11//
12//===----------------------------------------------------------------------===//
13
Reid Spencer8e665952004-08-29 05:24:01 +000014// Include the generic unix implementation
15#include "../Unix/Path.cpp"
16
17namespace llvm {
18using namespace sys;
19
Reid Spencerbd4dd5c2004-08-29 19:25:54 +000020//===----------------------------------------------------------------------===//
21//=== WARNING: Implementation here must contain only AIX specific code
22//=== and must not be generic UNIX code (see ../Unix/Path.cpp)
23//===----------------------------------------------------------------------===//
24
Reid Spencer8e665952004-08-29 05:24:01 +000025bool
26Path::is_valid() const {
27 if (path.empty())
28 return false;
29 if (path.length() >= MAXPATHLEN)
30 return false;
31 return true;
32}
33
Reid Spencerf634f462004-08-30 21:46:55 +000034Path
35Path::GetTemporaryDirectory() {
36 char pathname[MAXPATHLEN];
37 strcpy(pathname,"/tmp/llvm_XXXXXX");
38 if (0 == mkdtemp(pathname))
39 ThrowErrno(std::string(pathname) + ": Can't create temporary directory");
40 Path result;
41 result.set_directory(pathname);
42 assert(result.is_valid() && "mkdtemp didn't create a valid pathname!");
43 return result;
44}
45
Reid Spencercbad7012004-09-11 04:59:30 +000046std::string
47Path::GetDLLSuffix() {
48 return "so";
49}
50
Reid Spencer8e665952004-08-29 05:24:01 +000051}
52
53// vim: sw=2 smartindent smarttab tw=80 autoindent expandtab