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