Merge branch 'master' of https://github.com/wombatant/ox
This commit is contained in:
@@ -204,7 +204,7 @@ void FileStore<FsSize_t>::Inode::setId(InodeId_t id) {
|
|||||||
|
|
||||||
template<typename FsSize_t>
|
template<typename FsSize_t>
|
||||||
void FileStore<FsSize_t>::Inode::setData(void *data, FsSize_t size) {
|
void FileStore<FsSize_t>::Inode::setData(void *data, FsSize_t size) {
|
||||||
ox::std::memcpy(this->data(), data, size);
|
memcpy(this->data(), data, size);
|
||||||
dataLen = size;
|
dataLen = size;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -311,7 +311,7 @@ void FileStore<FsSize_t>::unlink(Inode *inode) {
|
|||||||
prev->next = ptr(next);
|
prev->next = ptr(next);
|
||||||
next->prev = ptr(prev);
|
next->prev = ptr(prev);
|
||||||
|
|
||||||
ox::std::memset(inode, 0, inode->size());
|
memset(inode, 0, inode->size());
|
||||||
inode->prev = firstInode();
|
inode->prev = firstInode();
|
||||||
inode->next = firstInode();
|
inode->next = firstInode();
|
||||||
}
|
}
|
||||||
@@ -336,7 +336,7 @@ int FileStore<FsSize_t>::read(InodeId_t id, void *data, FsSize_t *size) {
|
|||||||
if (size) {
|
if (size) {
|
||||||
*size = inode->dataLen;
|
*size = inode->dataLen;
|
||||||
}
|
}
|
||||||
ox::std::memcpy(data, inode->data(), inode->dataLen);
|
memcpy(data, inode->data(), inode->dataLen);
|
||||||
retval = 0;
|
retval = 0;
|
||||||
}
|
}
|
||||||
return retval;
|
return retval;
|
||||||
@@ -424,7 +424,7 @@ void *FileStore<FsSize_t>::alloc(FsSize_t size) {
|
|||||||
|
|
||||||
const auto retval = next;
|
const auto retval = next;
|
||||||
const auto inode = ptr<Inode*>(retval);
|
const auto inode = ptr<Inode*>(retval);
|
||||||
ox::std::memset(inode, 0, size);
|
memset(inode, 0, size);
|
||||||
inode->prev = ptr<Inode*>(firstInode())->prev;
|
inode->prev = ptr<Inode*>(firstInode())->prev;
|
||||||
inode->next = retval + size;
|
inode->next = retval + size;
|
||||||
ptr<Inode*>(firstInode())->prev = retval;
|
ptr<Inode*>(firstInode())->prev = retval;
|
||||||
@@ -436,7 +436,7 @@ void FileStore<FsSize_t>::compress(FsSize_t start) {
|
|||||||
auto dest = ptr<Inode*>(firstInode());
|
auto dest = ptr<Inode*>(firstInode());
|
||||||
auto current = ptr<Inode*>(start);
|
auto current = ptr<Inode*>(start);
|
||||||
while (current->next > ptr(begin()) && current->next < ptr(end())) {
|
while (current->next > ptr(begin()) && current->next < ptr(end())) {
|
||||||
ox::std::memcpy(dest, current, current->size());
|
memcpy(dest, current, current->size());
|
||||||
if (dest->next != firstInode()) {
|
if (dest->next != firstInode()) {
|
||||||
dest->next = ptr(dest) + dest->size();
|
dest->next = ptr(dest) + dest->size();
|
||||||
}
|
}
|
||||||
@@ -500,7 +500,7 @@ ox::std::uint8_t FileStore<FsSize_t>::version() {
|
|||||||
|
|
||||||
template<typename FsSize_t>
|
template<typename FsSize_t>
|
||||||
ox::std::uint8_t *FileStore<FsSize_t>::format(ox::std::uint8_t *buffer, FsSize_t size, ox::std::uint32_t fsType) {
|
ox::std::uint8_t *FileStore<FsSize_t>::format(ox::std::uint8_t *buffer, FsSize_t size, ox::std::uint32_t fsType) {
|
||||||
ox::std::memset(buffer, 0, size);
|
memset(buffer, 0, size);
|
||||||
|
|
||||||
auto *fs = (FileStore*) buffer;
|
auto *fs = (FileStore*) buffer;
|
||||||
fs->m_fsType = fsType;
|
fs->m_fsType = fsType;
|
||||||
|
|||||||
+10
-10
@@ -73,7 +73,7 @@ int format(int argc, char **args) {
|
|||||||
printf("Creating file system...\n");
|
printf("Creating file system...\n");
|
||||||
auto err = 0;
|
auto err = 0;
|
||||||
if (argc >= 5) {
|
if (argc >= 5) {
|
||||||
auto type = ox::std::atoi(args[2]);
|
auto type = atoi(args[2]);
|
||||||
auto size = bytes(args[3]);
|
auto size = bytes(args[3]);
|
||||||
auto path = args[4];
|
auto path = args[4];
|
||||||
auto buff = (ox::std::uint8_t*) malloc(size);
|
auto buff = (ox::std::uint8_t*) malloc(size);
|
||||||
@@ -130,7 +130,7 @@ int read(int argc, char **args) {
|
|||||||
auto err = 1;
|
auto err = 1;
|
||||||
if (argc >= 4) {
|
if (argc >= 4) {
|
||||||
auto fsPath = args[2];
|
auto fsPath = args[2];
|
||||||
auto inode = ox::std::atoi(args[3]);
|
auto inode = atoi(args[3]);
|
||||||
::size_t fsSize;
|
::size_t fsSize;
|
||||||
ox::std::uint64_t fileSize;
|
ox::std::uint64_t fileSize;
|
||||||
|
|
||||||
@@ -163,7 +163,7 @@ int write(int argc, char **args) {
|
|||||||
auto err = 0;
|
auto err = 0;
|
||||||
if (argc >= 5) {
|
if (argc >= 5) {
|
||||||
auto fsPath = args[2];
|
auto fsPath = args[2];
|
||||||
auto inode = ox::std::atoi(args[3]);
|
auto inode = atoi(args[3]);
|
||||||
auto srcPath = args[4];
|
auto srcPath = args[4];
|
||||||
::size_t srcSize;
|
::size_t srcSize;
|
||||||
|
|
||||||
@@ -221,7 +221,7 @@ int remove(int argc, char **args) {
|
|||||||
auto err = 1;
|
auto err = 1;
|
||||||
if (argc >= 4) {
|
if (argc >= 4) {
|
||||||
auto fsPath = args[2];
|
auto fsPath = args[2];
|
||||||
auto inode = ox::std::atoi(args[3]);
|
auto inode = atoi(args[3]);
|
||||||
::size_t fsSize;
|
::size_t fsSize;
|
||||||
|
|
||||||
auto fsBuff = loadFileBuff(fsPath, &fsSize);
|
auto fsBuff = loadFileBuff(fsPath, &fsSize);
|
||||||
@@ -264,17 +264,17 @@ int main(int argc, char **args) {
|
|||||||
auto err = 0;
|
auto err = 0;
|
||||||
if (argc > 1) {
|
if (argc > 1) {
|
||||||
auto cmd = args[1];
|
auto cmd = args[1];
|
||||||
if (::strcmp(cmd, "format") == 0) {
|
if (strcmp(cmd, "format") == 0) {
|
||||||
err = format(argc, args);
|
err = format(argc, args);
|
||||||
} else if (::strcmp(cmd, "read") == 0) {
|
} else if (strcmp(cmd, "read") == 0) {
|
||||||
err = read(argc, args);
|
err = read(argc, args);
|
||||||
} else if (::strcmp(cmd, "write") == 0) {
|
} else if (strcmp(cmd, "write") == 0) {
|
||||||
err = write(argc, args);
|
err = write(argc, args);
|
||||||
} else if (::strcmp(cmd, "rm") == 0) {
|
} else if (strcmp(cmd, "rm") == 0) {
|
||||||
err = remove(argc, args);
|
err = remove(argc, args);
|
||||||
} else if (::strcmp(cmd, "help") == 0) {
|
} else if (strcmp(cmd, "help") == 0) {
|
||||||
printf("%s\n", usage);
|
printf("%s\n", usage);
|
||||||
} else if (::strcmp(cmd, "version") == 0) {
|
} else if (strcmp(cmd, "version") == 0) {
|
||||||
printf("oxfstool version %s\n", oxfstoolVersion);
|
printf("oxfstool version %s\n", oxfstoolVersion);
|
||||||
printf("oxfs format version %d\n", FileStore16::version());
|
printf("oxfs format version %d\n", FileStore16::version());
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -1,29 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2015 - 2016 gtalent2@gmail.com
|
|
||||||
*
|
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
||||||
*/
|
|
||||||
#include "_memops.hpp"
|
|
||||||
|
|
||||||
namespace ox {
|
|
||||||
namespace std {
|
|
||||||
|
|
||||||
void memcpy(void *dest, void *src, int size) {
|
|
||||||
char *srcBuf = (char*) src;
|
|
||||||
char *dstBuf = (char*) dest;
|
|
||||||
for (int i = 0; i < size; i++) {
|
|
||||||
dstBuf[i] = (char) srcBuf[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void memset(void *ptr, char val, int size) {
|
|
||||||
char *buf = (char*) ptr;
|
|
||||||
for (int i = 0; i < size; i++) {
|
|
||||||
buf[i] = val;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+6
-10
@@ -7,23 +7,19 @@
|
|||||||
*/
|
*/
|
||||||
#include "memops.hpp"
|
#include "memops.hpp"
|
||||||
|
|
||||||
namespace ox {
|
void *memcpy(void *dest, void *src, size_t size) {
|
||||||
namespace std {
|
|
||||||
|
|
||||||
void memcpy(void *dest, void *src, int size) {
|
|
||||||
char *srcBuf = (char*) src;
|
char *srcBuf = (char*) src;
|
||||||
char *dstBuf = (char*) dest;
|
char *dstBuf = (char*) dest;
|
||||||
for (int i = 0; i < size; i++) {
|
for (size_t i = 0; i < size; i++) {
|
||||||
dstBuf[i] = (char) srcBuf[i];
|
dstBuf[i] = (char) srcBuf[i];
|
||||||
}
|
}
|
||||||
|
return dest;
|
||||||
}
|
}
|
||||||
|
|
||||||
void memset(void *ptr, char val, int size) {
|
void *memset(void *ptr, int val, size_t size) {
|
||||||
char *buf = (char*) ptr;
|
char *buf = (char*) ptr;
|
||||||
for (int i = 0; i < size; i++) {
|
for (size_t i = 0; i < size; i++) {
|
||||||
buf[i] = val;
|
buf[i] = val;
|
||||||
}
|
}
|
||||||
}
|
return ptr;
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,12 +7,8 @@
|
|||||||
*/
|
*/
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
namespace ox {
|
#include "types.hpp"
|
||||||
namespace std {
|
|
||||||
|
|
||||||
void memcpy(void *src, void *dest, int size);
|
void *memcpy(void *src, void *dest, size_t size);
|
||||||
|
|
||||||
void memset(void *ptr, char val, int size);
|
void *memset(void *ptr, int val, size_t size);
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -5,8 +5,8 @@
|
|||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
*/
|
*/
|
||||||
namespace ox {
|
|
||||||
namespace std {
|
#include "strops.hpp"
|
||||||
|
|
||||||
int strcmp(const char *str1, const char *str2) {
|
int strcmp(const char *str1, const char *str2) {
|
||||||
auto retval = 0;
|
auto retval = 0;
|
||||||
@@ -24,7 +24,7 @@ int strcmp(const char *str1, const char *str2) {
|
|||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
int strlen(const char *str1) {
|
size_t strlen(const char *str1) {
|
||||||
int len;
|
int len;
|
||||||
for (len = 0; str1[len]; len++);
|
for (len = 0; str1[len]; len++);
|
||||||
return len;
|
return len;
|
||||||
@@ -41,6 +41,3 @@ int atoi(const char *str) {
|
|||||||
|
|
||||||
return total;
|
return total;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -7,14 +7,10 @@
|
|||||||
*/
|
*/
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
namespace ox {
|
#include "types.hpp"
|
||||||
namespace std {
|
|
||||||
|
|
||||||
int strcmp(const char *str1, const char *str2);
|
int strcmp(const char *str1, const char *str2);
|
||||||
|
|
||||||
int strlen(const char *str1);
|
size_t strlen(const char *str1);
|
||||||
|
|
||||||
int atoi(const char *str);
|
int atoi(const char *str);
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -22,13 +22,15 @@ typedef unsigned long long uint64_t;
|
|||||||
|
|
||||||
typedef uint32_t Error;
|
typedef uint32_t Error;
|
||||||
|
|
||||||
#if defined(_LP64) || defined(__ppc64__) || defined(_WIN64) || defined(__aarch64__)
|
}
|
||||||
typedef uint64_t size_t;
|
}
|
||||||
|
|
||||||
|
#if defined(_LP64) || defined(__ppc64__) || defined(__aarch64__)
|
||||||
|
typedef unsigned long size_t;
|
||||||
|
#elif defined(_WIN64)
|
||||||
|
typedef ox::std::uint64_t size_t;
|
||||||
#elif defined(_LP32) || defined(__ppc__) || defined(_WIN32) || defined(__arm__)
|
#elif defined(_LP32) || defined(__ppc__) || defined(_WIN32) || defined(__arm__)
|
||||||
typedef uint32_t size_t;
|
typedef ox::std::uint32_t size_t;
|
||||||
#else
|
#else
|
||||||
#error size_t undefined
|
#error size_t undefined
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user