mirror of
https://github.com/Fennix-Project/Kernel.git
synced 2025-05-25 22:14:37 +00:00
210 lines
6.3 KiB
Plaintext
210 lines
6.3 KiB
Plaintext
{
|
|
"Fennix Kernel Header": {
|
|
"prefix": [
|
|
"head",
|
|
],
|
|
"body": [
|
|
"/*",
|
|
"\tThis file is part of Fennix Kernel.",
|
|
"",
|
|
"\tFennix Kernel is free software: you can redistribute it and/or",
|
|
"\tmodify it under the terms of the GNU General Public License as",
|
|
"\tpublished by the Free Software Foundation, either version 3 of",
|
|
"\tthe License, or (at your option) any later version.",
|
|
"",
|
|
"\tFennix Kernel is distributed in the hope that it will be useful,",
|
|
"\tbut WITHOUT ANY WARRANTY; without even the implied warranty of",
|
|
"\tMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the",
|
|
"\tGNU General Public License for more details.",
|
|
"",
|
|
"\tYou should have received a copy of the GNU General Public License",
|
|
"\talong with Fennix Kernel. If not, see <https://www.gnu.org/licenses/>.",
|
|
"*/",
|
|
"",
|
|
"#ifndef __FENNIX_KERNEL_${1:header}_H__",
|
|
"#define __FENNIX_KERNEL_${1:header}_H__",
|
|
"",
|
|
"#include <types.h>",
|
|
"",
|
|
"$0",
|
|
"",
|
|
"#endif // !__FENNIX_KERNEL_${1:header}_H__",
|
|
""
|
|
],
|
|
"description": "Create kernel header."
|
|
},
|
|
"Fennix Kernel brief": {
|
|
"prefix": [
|
|
"brief",
|
|
],
|
|
"body": [
|
|
"/** @brief $0 */"
|
|
],
|
|
"description": "Create kernel documentation brief."
|
|
},
|
|
"For Iteration": {
|
|
"prefix": [
|
|
"foritr",
|
|
],
|
|
"body": [
|
|
"forItr(${1:itr}, ${2:container})",
|
|
"{",
|
|
"\t$0",
|
|
"}"
|
|
],
|
|
"description": "Create for loop with iterator."
|
|
},
|
|
"License": {
|
|
"prefix": [
|
|
"license",
|
|
],
|
|
"body": [
|
|
"/*",
|
|
"\tThis file is part of Fennix Kernel.",
|
|
"",
|
|
"\tFennix Kernel is free software: you can redistribute it and/or",
|
|
"\tmodify it under the terms of the GNU General Public License as",
|
|
"\tpublished by the Free Software Foundation, either version 3 of",
|
|
"\tthe License, or (at your option) any later version.",
|
|
"",
|
|
"\tFennix Kernel is distributed in the hope that it will be useful,",
|
|
"\tbut WITHOUT ANY WARRANTY; without even the implied warranty of",
|
|
"\tMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the",
|
|
"\tGNU General Public License for more details.",
|
|
"",
|
|
"\tYou should have received a copy of the GNU General Public License",
|
|
"\talong with Fennix Kernel. If not, see <https://www.gnu.org/licenses/>.",
|
|
"*/"
|
|
],
|
|
"description": "Create kernel license."
|
|
},
|
|
"Driver Code": {
|
|
"prefix": [
|
|
"driver",
|
|
],
|
|
"body": [
|
|
"/*",
|
|
"\tThis file is part of Fennix Kernel.",
|
|
"",
|
|
"\tFennix Kernel is free software: you can redistribute it and/or",
|
|
"\tmodify it under the terms of the GNU General Public License as",
|
|
"\tpublished by the Free Software Foundation, either version 3 of",
|
|
"\tthe License, or (at your option) any later version.",
|
|
"",
|
|
"\tFennix Kernel is distributed in the hope that it will be useful,",
|
|
"\tbut WITHOUT ANY WARRANTY; without even the implied warranty of",
|
|
"\tMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the",
|
|
"\tGNU General Public License for more details.",
|
|
"",
|
|
"\tYou should have received a copy of the GNU General Public License",
|
|
"\talong with Fennix Kernel. If not, see <https://www.gnu.org/licenses/>.",
|
|
"*/",
|
|
"",
|
|
"#include \"${1:driver}.hpp\"",
|
|
"",
|
|
"#include <debug.h>",
|
|
"",
|
|
"#include \"../../../kernel.h\"",
|
|
"",
|
|
"namespace Driver",
|
|
"{",
|
|
"\tint ${2:driver}::drvOpen(int Flags, mode_t Mode) { return 0; }",
|
|
"",
|
|
"\tint ${2:driver}::drvClose() { return 0; }",
|
|
"",
|
|
"\tsize_t ${2:driver}::drvRead(uint8_t *Buffer, size_t Size, off_t Offset) { return 0; }",
|
|
"",
|
|
"\tsize_t ${2:driver}::drvWrite(uint8_t *Buffer, size_t Size, off_t Offset) { return 0; }",
|
|
"",
|
|
"\tint ${2:driver}::drvIoctl(unsigned long Request, void *Argp) { return 0; }",
|
|
"",
|
|
"\tvoid ${2:driver}::OnInterruptReceived(CPU::TrapFrame *) {}",
|
|
"",
|
|
"\tvoid ${2:driver}::Panic() {}",
|
|
"",
|
|
"\t${2:driver}::${2:driver}(PCI::PCIDevice dev)",
|
|
"\t\t: Object(dev),",
|
|
"\t\t Interrupts::Handler(dev)",
|
|
"\t{",
|
|
"\t}",
|
|
"",
|
|
"\t${2:driver}::${2:driver}(int irq)",
|
|
"\t\t: Object(irq),",
|
|
"\t\t Interrupts::Handler(irq)",
|
|
"\t{",
|
|
"\t}",
|
|
"",
|
|
"\t${2:driver}::${2:driver}()",
|
|
"\t{",
|
|
"\t}",
|
|
"",
|
|
"\t${2:driver}::~${2:driver}()",
|
|
"\t{",
|
|
"\t\tif (GetError() != 0)",
|
|
"\t\t\treturn;",
|
|
"\t}",
|
|
"}",
|
|
"",
|
|
|
|
],
|
|
"description": "Kernel driver code template."
|
|
},
|
|
"Driver Header": {
|
|
"prefix": [
|
|
"driver",
|
|
],
|
|
"body": [
|
|
"/*",
|
|
"\tThis file is part of Fennix Kernel.",
|
|
"",
|
|
"\tFennix Kernel is free software: you can redistribute it and/or",
|
|
"\tmodify it under the terms of the GNU General Public License as",
|
|
"\tpublished by the Free Software Foundation, either version 3 of",
|
|
"\tthe License, or (at your option) any later version.",
|
|
"",
|
|
"\tFennix Kernel is distributed in the hope that it will be useful,",
|
|
"\tbut WITHOUT ANY WARRANTY; without even the implied warranty of",
|
|
"\tMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the",
|
|
"\tGNU General Public License for more details.",
|
|
"",
|
|
"\tYou should have received a copy of the GNU General Public License",
|
|
"\talong with Fennix Kernel. If not, see <https://www.gnu.org/licenses/>.",
|
|
"*/",
|
|
"",
|
|
"#pragma once",
|
|
"#include <driver.hpp>",
|
|
"",
|
|
"namespace Driver",
|
|
"{",
|
|
"\tclass ${1:driver} : public Object, public Interrupts::Handler",
|
|
"\t{",
|
|
"\tprivate:",
|
|
"\t\tvoid OnInterruptReceived(CPU::TrapFrame *Frame) final;",
|
|
"\t\tvoid Panic(Driver::DriverContext *ctx) final;",
|
|
"",
|
|
"\tpublic:",
|
|
"\t\tint drvOpen(int Flags, mode_t Mode);",
|
|
"\t\tint drvClose();",
|
|
"\t\tsize_t drvRead(uint8_t *Buffer, size_t Size, off_t Offset);",
|
|
"\t\tsize_t drvWrite(uint8_t *Buffer, size_t Size, off_t Offset);",
|
|
"\t\tint drvIoctl(unsigned long Request, void *Argp);",
|
|
"",
|
|
"\t\tconst char *drvName() final { return \"${2:MyDriver}\"; }",
|
|
"\t\tconst char *drvDescription() final { return \"${3:MyDescription}\"; }",
|
|
"\t\tconst char *drvVersion() final { return \"${4:0.0.0}\"; }",
|
|
"\t\tconst char *drvAuthor() final { return \"${5:Author}\"; }",
|
|
"\t\tconst char *drvLicense() final { return \"${6:License}\"; }",
|
|
"\t\tDriverType drvType() final { return DriverType_${7:Generic}; }",
|
|
"",
|
|
"\t\t${1:driver}(PCI::PCIDevice dev);",
|
|
"\t\t${1:driver}(int irq);",
|
|
"\t\t${1:driver}();",
|
|
"\t\t~${1:driver}();",
|
|
"\t};",
|
|
"}",
|
|
"",
|
|
|
|
],
|
|
"description": "Kernel driver header template."
|
|
}
|
|
} |