/**
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
#define hdfsFileIsOpenForRead libhdfs_hdfsFileIsOpenForRead
#define hdfsFileIsOpenForWrite libhdfs_hdfsFileIsOpenForWrite
#define hdfsFileGetReadStatistics libhdfs_hdfsFileGetReadStatistics
#define hdfsReadStatisticsGetRemoteBytesRead libhdfs_hdfsReadStatisticsGetRemoteBytesRead
#define hdfsFileClearReadStatistics libhdfs_hdfsFileClearReadStatistics
#define hdfsFileFreeReadStatistics libhdfs_hdfsFileFreeReadStatistics
#define hdfsConnectAsUser libhdfs_hdfsConnectAsUser
#define hdfsConnect libhdfs_hdfsConnect
#define hdfsConnectAsUserNewInstance libhdfs_hdfsConnectAsUserNewInstance
#define hdfsConnectNewInstance libhdfs_hdfsConnectNewInstance
#define hdfsBuilderConnect libhdfs_hdfsBuilderConnect
#define hdfsNewBuilder libhdfs_hdfsNewBuilder
#define hdfsBuilderSetForceNewInstance libhdfs_hdfsBuilderSetForceNewInstance
#define hdfsBuilderSetNameNode libhdfs_hdfsBuilderSetNameNode
#define hdfsBuilderSetNameNodePort libhdfs_hdfsBuilderSetNameNodePort
#define hdfsBuilderSetUserName libhdfs_hdfsBuilderSetUserName
#define hdfsBuilderSetKerbTicketCachePath libhdfs_hdfsBuilderSetKerbTicketCachePath
#define hdfsFreeBuilder libhdfs_hdfsFreeBuilder
#define hdfsBuilderConfSetStr libhdfs_hdfsBuilderConfSetStr
#define hdfsConfGetStr libhdfs_hdfsConfGetStr
#define hdfsConfGetInt libhdfs_hdfsConfGetInt
#define hdfsConfStrFree libhdfs_hdfsConfStrFree
#define hdfsDisconnect libhdfs_hdfsDisconnect
#define hdfsOpenFile libhdfs_hdfsOpenFile
#define hdfsTruncateFile libhdfs_hdfsTruncateFile
#define hdfsUnbufferFile libhdfs_hdfsUnbufferFile
#define hdfsCloseFile libhdfs_hdfsCloseFile
#define hdfsExists libhdfs_hdfsExists
#define hdfsSeek libhdfs_hdfsSeek
#define hdfsTell libhdfs_hdfsTell
#define hdfsRead libhdfs_hdfsRead
#define hdfsPread libhdfs_hdfsPread
#define hdfsWrite libhdfs_hdfsWrite
#define hdfsFlush libhdfs_hdfsFlush
#define hdfsHFlush libhdfs_hdfsHFlush
#define hdfsHSync libhdfs_hdfsHSync
#define hdfsAvailable libhdfs_hdfsAvailable
#define hdfsCopy libhdfs_hdfsCopy
#define hdfsMove libhdfs_hdfsMove
#define hdfsDelete libhdfs_hdfsDelete
#define hdfsRename libhdfs_hdfsRename
#define hdfsGetWorkingDirectory libhdfs_hdfsGetWorkingDirectory
#define hdfsSetWorkingDirectory libhdfs_hdfsSetWorkingDirectory
#define hdfsCreateDirectory libhdfs_hdfsCreateDirectory
#define hdfsSetReplication libhdfs_hdfsSetReplication
#define hdfsListDirectory libhdfs_hdfsListDirectory
#define hdfsGetPathInfo libhdfs_hdfsGetPathInfo
#define hdfsFreeFileInfo libhdfs_hdfsFreeFileInfo
#define hdfsFileIsEncrypted libhdfs_hdfsFileIsEncrypted
#define hdfsGetHosts libhdfs_hdfsGetHosts
#define hdfsFreeHosts libhdfs_hdfsFreeHosts
#define hdfsGetDefaultBlockSize libhdfs_hdfsGetDefaultBlockSize
#define hdfsGetDefaultBlockSizeAtPath libhdfs_hdfsGetDefaultBlockSizeAtPath
#define hdfsGetCapacity libhdfs_hdfsGetCapacity
#define hdfsGetUsed libhdfs_hdfsGetUsed
#define hdfsChown libhdfs_hdfsChown
#define hdfsChmod libhdfs_hdfsChmod
#define hdfsUtime libhdfs_hdfsUtime
#define hadoopRzOptionsAlloc libhdfs_hadoopRzOptionsAlloc
#define hadoopRzOptionsSetSkipChecksum libhdfs_hadoopRzOptionsSetSkipChecksum
#define hadoopRzOptionsSetByteBufferPool libhdfs_hadoopRzOptionsSetByteBufferPool
#define hadoopRzOptionsFree libhdfs_hadoopRzOptionsFree
#define hadoopReadZero libhdfs_hadoopReadZero
#define hadoopRzBufferLength libhdfs_hadoopRzBufferLength
#define hadoopRzBufferGet libhdfs_hadoopRzBufferGet
#define hadoopRzBufferFree libhdfs_hadoopRzBufferFree
#define hdfs_internal libhdfs_hdfs_internal
#define hdfsFS libhdfs_hdfsFS
#define hdfsFile_internal libhdfs_hdfsFile_internal
#define hdfsFile libhdfs_hdfsFile
#define tObjectKind libhdfs_tObjectKind
#define kObjectKindFile libhdfs_kObjectKindFile
#define kObjectKindDirectory libhdfs_kObjectKindDirectory
#define hdfsReadStatistics libhdfs_hdfsReadStatistics
#define hdfsFileInfo libhdfs_hdfsFileInfo
#define hdfsHedgedReadMetrics libhdfs_hdfsHedgedReadMetrics
#define hdfsGetHedgedReadMetrics libhdfs_hdfsGetHedgedReadMetrics
#define hdfsFreeHedgedReadMetrics libhdfs_hdfsFreeHedgedReadMetrics
#define hdfsStreamBuilderAlloc libhdfs_hdfsStreamBuilderAlloc
#define hdfsStreamBuilderBuild libhdfs_hdfsStreamBuilderBuild
