parent
eaf85832a3
commit
a75654d7d2
@ -0,0 +1,36 @@
|
|||||||
|
#ifndef _INTS_H
|
||||||
|
#define _INTS_H
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <stddef.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
|
||||||
|
#define DEF(s, n) typedef s ## int ## n ## _t s ## n
|
||||||
|
#define DEFINT(n) typedef uint ## n ## _t u ## n; \
|
||||||
|
typedef int ## n ## _t i ## n
|
||||||
|
|
||||||
|
DEFINT(8);
|
||||||
|
DEFINT(16);
|
||||||
|
DEFINT(32);
|
||||||
|
DEFINT(64);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#else
|
||||||
|
#include <bool.h>
|
||||||
|
typedef signed __int128 i128;
|
||||||
|
typedef unsigned __int128 u128;
|
||||||
|
#endif
|
||||||
|
typedef float f32;
|
||||||
|
typedef double f64;
|
||||||
|
|
||||||
|
typedef size_t usize;
|
||||||
|
typedef ssize_t isize;
|
||||||
|
|
||||||
|
typedef bool u1;
|
||||||
|
typedef bool i1;
|
||||||
|
|
||||||
|
#undef DEFINT
|
||||||
|
#undef DEF
|
||||||
|
|
||||||
|
#endif /* _INTS_H */
|
@ -0,0 +1,23 @@
|
|||||||
|
#pragma once
|
||||||
|
#include <ints.h>
|
||||||
|
|
||||||
|
#include <utility>
|
||||||
|
#include <memory>
|
||||||
|
|
||||||
|
/// Superclass of all `MASK` writing task classes
|
||||||
|
struct Task {
|
||||||
|
Task();
|
||||||
|
Task(const Task&) = delete;
|
||||||
|
Task(Task&&);
|
||||||
|
virtual ~Task();
|
||||||
|
|
||||||
|
private:
|
||||||
|
struct _impl;
|
||||||
|
protected:
|
||||||
|
const std::unique_ptr<_impl> inner;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Create a `Task` subtype for writing the bits in `MASK` to `output_slice`, create an instance of that type. Then return it as a `Task`.
|
||||||
|
template<u8 MASK>
|
||||||
|
std::unique_ptr<Task> writing_task_for(u8* output_slice, ... TODO
|
@ -0,0 +1,9 @@
|
|||||||
|
#include <sched.hpp>
|
||||||
|
|
||||||
|
struct Task::_impl {
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
Task::Task() : inner(std::make_unique<_impl>()){}
|
||||||
|
Task::Task(Task&& mv) : inner(std::move(*const_cast<std::unique_ptr<_impl>*>(&mv.inner))){}
|
||||||
|
Task::~Task() = default;
|
Loading…
Reference in new issue