1/*---------------------------------------------------------------------------* 2 * pstdio.h * 3 * * 4 * Copyright 2007, 2008 Nuance Communciations, Inc. * 5 * * 6 * Licensed under the Apache License, Version 2.0 (the 'License'); * 7 * you may not use this file except in compliance with the License. * 8 * * 9 * You may obtain a copy of the License at * 10 * http://www.apache.org/licenses/LICENSE-2.0 * 11 * * 12 * Unless required by applicable law or agreed to in writing, software * 13 * distributed under the License is distributed on an 'AS IS' BASIS, * 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * 15 * See the License for the specific language governing permissions and * 16 * limitations under the License. * 17 * * 18 *---------------------------------------------------------------------------*/ 19 20#ifndef PSTDIO_H 21#define PSTDIO_H 22 23 24 25#include <stdio.h> 26#include "PortPrefix.h" 27#include "ptypes.h" 28#include "PFile.h" 29#include "ESR_ReturnCode.h" 30 31/** 32 * File table structure for memory FS 33 */ 34typedef struct FileRecord_t 35{ 36 /** 37 * file name 38 */ 39 char name[80]; 40 /** 41 * pointer to the file data 42 */ 43 unsigned char *start; 44 /** 45 * real size of the file 46 */ 47 int size; 48 /** 49 * total size in memory 50 */ 51 int memsize; 52 /** 53 * mode: 0/1: text/binary 54 */ 55 int mode; 56} 57FileRecord; 58 59#ifdef _WIN32 60 61#include "direct.h" 62#include "stdlib.h" 63 64/** 65 * @addtogroup ESR_PortableModule ESR_Portable API functions 66 * 67 * @{ 68 */ 69 70/** 71 * Platform-independant maximum filename path length. 72 */ 73#define P_PATH_MAX _MAX_PATH 74 75/** 76 * Platform-independant maximum command-line length. In reality this value is shell-specific 77 * and is around 32k for WindowsNT however we can't spare that much stack-space and we assume 78 * such a large value will never actually occur so we settle for 4k instead. 79 */ 80#define P_CMDLINE_MAX 4000 81/** 82 * @} 83 */ 84 85#else 86 87#if defined(PATH_MAX) 88#define P_PATH_MAX PATH_MAX 89#elif defined(MAXPATHLEN) 90#define P_PATH_MAX MAXPATHLEN 91#else 92#error "Cannot determine value for P_PATH_MAX." 93#endif /* PATH_MAX */ 94 95#endif /* _WIN32 */ 96 97#endif 98