MySQL 5.6.14 Source Code Document
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
my_dir.h
1
/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
2
3
This program is free software; you can redistribute it and/or modify
4
it under the terms of the GNU General Public License as published by
5
the Free Software Foundation; version 2 of the License.
6
7
This program is distributed in the hope that it will be useful,
8
but WITHOUT ANY WARRANTY; without even the implied warranty of
9
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10
GNU General Public License for more details.
11
12
You should have received a copy of the GNU General Public License
13
along with this program; if not, write to the Free Software
14
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
15
16
#ifndef MY_DIR_H
17
#define MY_DIR_H
18
19
#include "my_global.h"
20
21
#include <sys/stat.h>
22
23
#ifdef __cplusplus
24
extern
"C"
{
25
#endif
26
27
/* Defines for my_dir and my_stat */
28
29
#define MY_S_IFMT S_IFMT
/* type of file */
30
#define MY_S_IFDIR S_IFDIR
/* directory */
31
#define MY_S_IFCHR S_IFCHR
/* character special */
32
#define MY_S_IFBLK S_IFBLK
/* block special */
33
#define MY_S_IFREG S_IFREG
/* regular */
34
#define MY_S_IFIFO S_IFIFO
/* fifo */
35
#define MY_S_ISUID S_ISUID
/* set user id on execution */
36
#define MY_S_ISGID S_ISGID
/* set group id on execution */
37
#define MY_S_ISVTX S_ISVTX
/* save swapped text even after use */
38
#define MY_S_IREAD S_IREAD
/* read permission, owner */
39
#define MY_S_IWRITE S_IWRITE
/* write permission, owner */
40
#define MY_S_IEXEC S_IEXEC
/* execute/search permission, owner */
41
42
#define MY_S_ISDIR(m) (((m) & MY_S_IFMT) == MY_S_IFDIR)
43
#define MY_S_ISCHR(m) (((m) & MY_S_IFMT) == MY_S_IFCHR)
44
#define MY_S_ISBLK(m) (((m) & MY_S_IFMT) == MY_S_IFBLK)
45
#define MY_S_ISREG(m) (((m) & MY_S_IFMT) == MY_S_IFREG)
46
#define MY_S_ISFIFO(m) (((m) & MY_S_IFMT) == MY_S_IFIFO)
47
48
#define MY_DONT_SORT 512
/* my_lib; Don't sort files */
49
#define MY_WANT_STAT 1024
/* my_lib; stat files */
50
51
/* typedefs for my_dir & my_stat */
52
53
#ifdef USE_MY_STAT_STRUCT
54
55
typedef
struct
my_stat
56
{
57
dev_t st_dev;
/* major & minor device numbers */
58
ino_t st_ino;
/* inode number */
59
ushort st_mode;
/* file permissons (& suid sgid .. bits) */
60
short
st_nlink;
/* number of links to file */
61
ushort st_uid;
/* user id */
62
ushort st_gid;
/* group id */
63
dev_t st_rdev;
/* more major & minor device numbers (???) */
64
off_t st_size;
/* size of file */
65
time_t st_atime;
/* time for last read */
66
time_t st_mtime;
/* time for last contens modify */
67
time_t st_ctime;
/* time for last inode or contents modify */
68
} MY_STAT;
69
70
#else
71
72
#if(_MSC_VER)
73
#define MY_STAT struct _stati64
/* 64 bit file size */
74
#else
75
#define MY_STAT struct stat
/* Orginal struct have what we need */
76
#endif
77
78
#endif
/* USE_MY_STAT_STRUCT */
79
80
/* Struct describing one file returned from my_dir */
81
typedef
struct
fileinfo
82
{
83
char
*name;
84
MY_STAT *mystat;
85
}
FILEINFO
;
86
87
typedef
struct
st_my_dir
/* Struct returned from my_dir */
88
{
89
/*
90
These members are just copies of parts of DYNAMIC_ARRAY structure,
91
which is allocated right after the end of MY_DIR structure (MEM_ROOT
92
for storing names is also resides there). We've left them here because
93
we don't want to change code that uses my_dir.
94
*/
95
struct
fileinfo
*dir_entry;
96
uint number_off_files;
97
}
MY_DIR
;
98
99
extern
MY_DIR
*my_dir(
const
char
*path,myf MyFlags);
100
extern
void
my_dirend(
MY_DIR
*buffer);
101
extern
MY_STAT *my_stat(
const
char
*path, MY_STAT *stat_area, myf my_flags);
102
extern
int
my_fstat(
int
filenr, MY_STAT *stat_area, myf MyFlags);
103
104
#ifdef __cplusplus
105
}
106
#endif
107
108
#endif
/* MY_DIR_H */
109
include
my_dir.h
Generated on Sat Nov 9 2013 01:24:45 for MySQL 5.6.14 Source Code Document by
1.8.1.2