aboutsummaryrefslogtreecommitdiff
path: root/src/mem
diff options
context:
space:
mode:
Diffstat (limited to 'src/mem')
-rw-r--r--src/mem/ft_bzero.c18
-rw-r--r--src/mem/ft_calloc.c23
-rw-r--r--src/mem/ft_memalloc.c18
-rw-r--r--src/mem/ft_memccpy.c31
-rw-r--r--src/mem/ft_memchr.c26
-rw-r--r--src/mem/ft_memcmp.c30
-rw-r--r--src/mem/ft_memcpy.c22
-rw-r--r--src/mem/ft_memdel.c21
-rw-r--r--src/mem/ft_memmove.c33
-rw-r--r--src/mem/ft_memset.c31
10 files changed, 253 insertions, 0 deletions
diff --git a/src/mem/ft_bzero.c b/src/mem/ft_bzero.c
new file mode 100644
index 0000000..d179af0
--- /dev/null
+++ b/src/mem/ft_bzero.c
@@ -0,0 +1,18 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_bzero.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/10/07 09:50:10 by cacharle #+# #+# */
+/* Updated: 2019/11/20 03:29:26 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include "libft.h"
+
+void ft_bzero(void *s, size_t n)
+{
+ ft_memset(s, 0, n);
+}
diff --git a/src/mem/ft_calloc.c b/src/mem/ft_calloc.c
new file mode 100644
index 0000000..24501bf
--- /dev/null
+++ b/src/mem/ft_calloc.c
@@ -0,0 +1,23 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_calloc.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/10/07 12:45:37 by cacharle #+# #+# */
+/* Updated: 2019/11/21 01:05:53 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include "libft.h"
+
+void *ft_calloc(size_t count, size_t size)
+{
+ void *mem;
+
+ if ((mem = malloc(count * size)) == NULL)
+ return (NULL);
+ ft_bzero(mem, count * size);
+ return (mem);
+}
diff --git a/src/mem/ft_memalloc.c b/src/mem/ft_memalloc.c
new file mode 100644
index 0000000..5aab2ec
--- /dev/null
+++ b/src/mem/ft_memalloc.c
@@ -0,0 +1,18 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_memalloc.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/10/07 10:07:14 by cacharle #+# #+# */
+/* Updated: 2019/11/20 03:28:56 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include "libft.h"
+
+void *ft_memalloc(size_t size)
+{
+ return (ft_calloc(size, 1));
+}
diff --git a/src/mem/ft_memccpy.c b/src/mem/ft_memccpy.c
new file mode 100644
index 0000000..f95aa03
--- /dev/null
+++ b/src/mem/ft_memccpy.c
@@ -0,0 +1,31 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_memccpy.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/10/07 10:01:53 by cacharle #+# #+# */
+/* Updated: 2019/11/20 03:30:45 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include "libft.h"
+
+void *ft_memccpy(void *dest, const void *src, int c, size_t n)
+{
+ size_t i;
+ t_byte *cast_dest;
+ t_byte *cast_src;
+
+ cast_dest = (t_byte*)dest;
+ cast_src = (t_byte*)src;
+ i = -1;
+ while (++i < n)
+ {
+ cast_dest[i] = cast_src[i];
+ if (cast_dest[i] == (unsigned char)c)
+ return (cast_dest + i + 1);
+ }
+ return (NULL);
+}
diff --git a/src/mem/ft_memchr.c b/src/mem/ft_memchr.c
new file mode 100644
index 0000000..d2364db
--- /dev/null
+++ b/src/mem/ft_memchr.c
@@ -0,0 +1,26 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_memchr.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/10/07 09:55:31 by cacharle #+# #+# */
+/* Updated: 2019/11/20 03:30:55 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include "libft.h"
+
+void *ft_memchr(const void *s, int c, size_t n)
+{
+ size_t i;
+ t_byte *cast_s;
+
+ cast_s = (t_byte*)s;
+ i = -1;
+ while (++i < n)
+ if (cast_s[i] == (unsigned char)c)
+ return (cast_s + i);
+ return (NULL);
+}
diff --git a/src/mem/ft_memcmp.c b/src/mem/ft_memcmp.c
new file mode 100644
index 0000000..2c8e179
--- /dev/null
+++ b/src/mem/ft_memcmp.c
@@ -0,0 +1,30 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_memcmp.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/10/07 09:56:44 by cacharle #+# #+# */
+/* Updated: 2019/11/21 01:58:42 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include "libft.h"
+
+int ft_memcmp(const void *s1, const void *s2, size_t n)
+{
+ size_t i;
+ t_byte *cast_s1;
+ t_byte *cast_s2;
+
+ cast_s1 = (t_byte*)s1;
+ cast_s2 = (t_byte*)s2;
+ if (n == 0)
+ return (0);
+ i = -1;
+ while (++i < n)
+ if (cast_s1[i] != cast_s2[i])
+ return (cast_s1[i] - cast_s2[i]);
+ return (0);
+}
diff --git a/src/mem/ft_memcpy.c b/src/mem/ft_memcpy.c
new file mode 100644
index 0000000..70837bc
--- /dev/null
+++ b/src/mem/ft_memcpy.c
@@ -0,0 +1,22 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_memcpy.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/10/07 10:00:07 by cacharle #+# #+# */
+/* Updated: 2019/11/20 03:20:29 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include "libft.h"
+
+void *ft_memcpy(void *dest, const void *src, size_t n)
+{
+ if (dest == src)
+ return (dest);
+ while (n-- > 0)
+ *((t_byte*)dest + n) = *((t_byte*)src + n);
+ return (dest);
+}
diff --git a/src/mem/ft_memdel.c b/src/mem/ft_memdel.c
new file mode 100644
index 0000000..2b21f33
--- /dev/null
+++ b/src/mem/ft_memdel.c
@@ -0,0 +1,21 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_memdel.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/10/07 10:00:56 by cacharle #+# #+# */
+/* Updated: 2019/11/20 03:22:41 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include "libft.h"
+
+void ft_memdel(void **ap)
+{
+ if (ap == NULL)
+ return ;
+ free(*ap);
+ *ap = NULL;
+}
diff --git a/src/mem/ft_memmove.c b/src/mem/ft_memmove.c
new file mode 100644
index 0000000..aa107bd
--- /dev/null
+++ b/src/mem/ft_memmove.c
@@ -0,0 +1,33 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_memmove.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/10/07 10:03:21 by cacharle #+# #+# */
+/* Updated: 2019/11/20 03:31:00 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include "libft.h"
+
+void *ft_memmove(void *dst, const void *src, size_t len)
+{
+ size_t i;
+ t_byte *dst_cast;
+ t_byte *src_cast;
+
+ if (dst == src)
+ return (dst);
+ dst_cast = (t_byte*)dst;
+ src_cast = (t_byte*)src;
+ i = -1;
+ if (dst_cast < src_cast)
+ while (++i < len)
+ dst_cast[i] = src_cast[i];
+ else
+ while (len-- > 0)
+ dst_cast[len] = src_cast[len];
+ return (dst);
+}
diff --git a/src/mem/ft_memset.c b/src/mem/ft_memset.c
new file mode 100644
index 0000000..7963fd0
--- /dev/null
+++ b/src/mem/ft_memset.c
@@ -0,0 +1,31 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_memset.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/10/07 10:01:23 by cacharle #+# #+# */
+/* Updated: 2019/11/20 23:22:51 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include "libft.h"
+
+#define BUF_TYPE long int
+
+void *ft_memset(void *s, int c, size_t n)
+{
+ BUF_TYPE buf;
+
+ c = (unsigned char)c;
+ while (n % 8 > 0)
+ *((t_byte*)s + --n) = (t_byte)c;
+ n /= 8;
+ buf = (BUF_TYPE)c | (BUF_TYPE)c << 8 | (BUF_TYPE)c << 16
+ | (BUF_TYPE)c << 24 | (BUF_TYPE)c << 32 | (BUF_TYPE)c << 40
+ | (BUF_TYPE)c << 48 | (BUF_TYPE)c << 56;
+ while (n > 0)
+ *((BUF_TYPE*)s + --n) = buf;
+ return (s);
+}