00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef TFFS_H
00014 #define TFFS_H
00015
00016 #include <sys/ioctl.h>
00017
00018 #define FL_IOCTL_START (SIOCDEVPRIVATE + 1)
00019
00020
00021
00022 typedef enum{FL_IOCTL_GET_INFO = FL_IOCTL_START,
00023 FL_IOCTL_DEFRAGMENT,
00024 FL_IOCTL_NO_LONGER_SUPPORTED_0,
00025 FL_IOCTL_MOUNT_VOLUME,
00026 FL_IOCTL_NO_LONGER_SUPPORTED_1,
00027 FL_IOCTL_BDK_OPERATION,
00028 FL_IOCTL_DELETE_SECTORS,
00029 FL_IOCTL_READ_SECTORS,
00030 FL_IOCTL_WRITE_SECTORS,
00031 FL_IOCTL_NO_LONGER_SUPPORTED_2,
00032 FL_IOCTL_NO_LONGER_SUPPORTED_3,
00033 FL_IOCTL_BDTL_HW_PROTECTION,
00034 FL_IOCTL_BINARY_HW_PROTECTION,
00035 FL_IOCTL_OTP,
00036 FL_IOCTL_CUSTOMER_ID,
00037 FL_IOCTL_UNIQUE_ID,
00038 FL_IOCTL_NUMBER_OF_PARTITIONS,
00039 FL_IOCTL_NO_LONGER_SUPPORTED_4,
00040 FL_IOCTL_NO_LONGER_SUPPORTED_5,
00041 FL_IOCTL_NO_LONGER_SUPPORTED_6,
00042 FL_IOCTL_NO_LONGER_SUPPORTED_7,
00043 FL_IOCTL_DEEP_POWER_DOWN_MODE,
00044 FL_IOCTL_EXTENDED_ENVIRONMENT_VARIABLES,
00045 FL_IOCTL_VERIFY_VOLUME,
00046 FL_IOCTL_SET_ACCESS_ROUTINE,
00047 FL_IOCTL_GET_ACCESS_ROUTINE,
00048 FL_IOCTL_NO_LONGER_SUPPORTED_8,
00049 FL_IOCTL_NO_LONGER_SUPPORTED_9,
00050 FL_IOCTL_NO_LONGER_SUPPORTED_10,
00051 FL_IOCTL_NO_LONGER_SUPPORTED_11,
00052 FL_IOCTL_IS_QUICK_MOUNT_VALID,
00053 FL_IOCTL_WRITE_QUICK_MOUNT_INFO,
00054 FL_IOCTL_CLEAR_QUICK_MOUNT_INFO,
00055 FL_IOCTL_NO_LONGER_SUPPORTED_12,
00056 FL_IOCTL_FLASH_FORMAT,
00057 FL_IOCTL_ERASE_BD,
00058 FL_IOCTL_FLASH_UNFORMAT,
00059 FL_IOCTL_WRITE_IPL,
00060 FL_IOCTL_MCOTP
00061 ,FL_IOCTL_PASS_THROUGH
00062 } flIOctlFunctionNo;
00063
00064
00065 typedef enum {
00066 flOK = 0,
00067 flBadFunction = 1,
00068 flFileNotFound = 2,
00069 flPathNotFound = 3,
00070 flTooManyOpenFiles = 4,
00071 flNoWriteAccess = 5,
00072 flBadFileHandle = 6,
00073 flDriveNotAvailable = 9,
00074 flNonFATformat = 10,
00075 flFormatNotSupported = 11,
00076 flNoMoreFiles = 18,
00077 flWriteProtect = 19,
00078 flBadDriveHandle = 20,
00079 flDriveNotReady = 21,
00080 flUnknownCmd = 22,
00081 flBadFormat = 23,
00082 flBadLength = 24,
00083 flDataError = 25,
00084 flUnknownMedia = 26,
00085 flSectorNotFound = 27,
00086 flOutOfPaper = 28,
00087 flWriteFault = 29,
00088 flReadFault = 30,
00089 flGeneralFailure = 31,
00090 flDiskChange = 34,
00091 flVppFailure = 50,
00092 flBadParameter = 51,
00093 flNoSpaceInVolume = 52,
00094 flInvalidFATchain = 53,
00095 flRootDirectoryFull = 54,
00096 flNotMounted = 55,
00097 flPathIsRootDirectory = 56,
00098 flNotADirectory = 57,
00099 flDirectoryNotEmpty = 58,
00100 flFileIsADirectory = 59,
00101 flAdapterNotFound = 60,
00102 flFormattingError = 62,
00103 flNotEnoughMemory = 63,
00104 flVolumeTooSmall = 64,
00105 flBufferingError = 65,
00106 flFileAlreadyExists = 80,
00107 flForceDismount = 85,
00108 flIncomplete = 100,
00109 flTimedOut = 101,
00110 flTooManyComponents = 102,
00111 flTooManyDrives = 103,
00112 flTooManyBinaryPartitions = 104,
00113 flPartitionNotFound = 105,
00114 flFeatureNotSupported = 106,
00115 flWrongVersion = 107,
00116 flTooManyBadBlocks = 108,
00117 flNotProtected = 109,
00118 flUnchangeableProtection = 110,
00119 flBadDownload = 111,
00120 flBadBBT = 112,
00121 flInterleaveError = 113,
00122 flWrongKey = 114,
00123 flHWProtection = 115,
00124 flLeftForCompetability = 116,
00125 flMultiDocContradiction = 117,
00126 flCanNotFold = 118,
00127 flBadIPLBlock = 119,
00128 flIOCommandBlocked = 120,
00129 flBadTransaction = 121,
00130 flTooManyTransactions = 122,
00131 flUnitIsNotErased = 123,
00132 flSequenceError = 124,
00133 flFIFOTimeOut = 125,
00134 flUnitIsBad = 126,
00135 flFlashIsVirgin = 127,
00136 flQuickMountNotValid = 128,
00137
00138 flSuspendModeDetected = 129,
00139 flDmaFailed = 130,
00140 flSuspendDueToHWFailure = 131,
00141
00142 flCannotCreateShortName = 150,
00143 flInvalidCharSet = 151,
00144 flOverwriteExistingEntry = 152,
00145 flBufferTooShort = 153,
00146 flPathTooLong = 154,
00147 flBadPartitionSize = 155,
00148 flTooManyPartitions = 156,
00149 flFSO_IDnotFound = 157,
00150 flFSO_IDisBusy = 158
00151 } FLStatus;
00152
00153 typedef unsigned char FLByte;
00154
00155
00156 #ifndef FAR1
00157 #define FAR1
00158 #endif
00159
00160
00161
00162
00163
00164 typedef struct {
00165 void FAR1 *inputRecord;
00166 void FAR1 *outputRecord;
00167 } flIOctlRecord;
00168
00169
00170
00171
00172 typedef struct {
00173 FLByte id[16];
00174 FLStatus status;
00175 } flUniqueIdOutput;
00176
00177 #endif