llvm-6502/tools/llee/OSInterface.h
Misha Brukman 2e1fbdd267 * Added an interface for how LLEE would communicate with the OS
* Implemented the interface in StorageProxy.c
* Removed the script `llee' as it is now created by the Makefile
* Makefile now compiles a shared object version of the library, but only if
  using gcc-3.3, linking fails under gcc-3.2


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8751 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-29 22:37:00 +00:00

49 lines
1.6 KiB
C

/*===- OSInterface.h - Interface to query OS for functionality ---*- C -*--===*\
* *
* This file defines the prototype interface that we will expect operating *
* systems to implement if they wish to support offline cachine. *
* *
\*===----------------------------------------------------------------------===*/
#ifndef OS_INTERFACE_H
#define OS_INTERFACE_H
#include "Config/sys/types.h"
struct stat;
/*
* llvmStat - equivalent to stat(3), except the key may not necessarily
* correspond to a file by that name, implementation is up to the OS.
* Values returned in buf are similar as they are in Unix.
*/
void llvmStat(const char *key, struct stat *buf);
/*
* llvmWriteFile - implements a 'save' of a file in the OS. 'key' may not
* necessarily map to a file of the same name.
* Returns:
* 0 - success
* non-zero - error
*/
int llvmWriteFile(const char *key, const void *data, size_t len);
/*
* llvmLoadFile - tells the OS to load data corresponding to a particular key
* somewhere into memory.
* Returns:
* 0 - failure
* non-zero - address of loaded file
*
* Value of size is the length of data loaded into memory.
*/
void* llvmReadFile(const char *key, size_t *size);
/*
* llvmExecve - execute a file from cache. This is a temporary proof-of-concept
* because we do not relocate what we can read from disk.
*/
int llvmExecve(const char *filename, char *const argv[], char *const envp[]);
#endif