Format the code via clang-format

This commit is contained in:
Maschell 2022-02-04 17:35:49 +01:00
parent 250b0610ec
commit 99cfeb2584
5 changed files with 166 additions and 60 deletions

67
.clang-format Normal file
View File

@ -0,0 +1,67 @@
# Generated from CLion C/C++ Code Style settings
BasedOnStyle: LLVM
AccessModifierOffset: -4
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: Consecutive
AlignConsecutiveMacros: AcrossEmptyLinesAndComments
AlignOperands: Align
AllowAllArgumentsOnNextLine: false
AllowAllConstructorInitializersOnNextLine: false
AllowAllParametersOfDeclarationOnNextLine: false
AllowShortBlocksOnASingleLine: Always
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: All
AllowShortIfStatementsOnASingleLine: Always
AllowShortLambdasOnASingleLine: All
AllowShortLoopsOnASingleLine: true
AlwaysBreakAfterReturnType: None
AlwaysBreakTemplateDeclarations: Yes
BreakBeforeBraces: Custom
BraceWrapping:
AfterCaseLabel: false
AfterClass: false
AfterControlStatement: Never
AfterEnum: false
AfterFunction: false
AfterNamespace: false
AfterUnion: false
BeforeCatch: false
BeforeElse: false
IndentBraces: false
SplitEmptyFunction: false
SplitEmptyRecord: true
BreakBeforeBinaryOperators: None
BreakBeforeTernaryOperators: true
BreakConstructorInitializers: BeforeColon
BreakInheritanceList: BeforeColon
ColumnLimit: 0
CompactNamespaces: false
ContinuationIndentWidth: 8
IndentCaseLabels: true
IndentPPDirectives: None
IndentWidth: 4
KeepEmptyLinesAtTheStartOfBlocks: true
MaxEmptyLinesToKeep: 2
NamespaceIndentation: All
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
PointerAlignment: Right
ReflowComments: false
SpaceAfterCStyleCast: true
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: false
SpaceBeforeAssignmentOperators: true
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: true
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false
SpacesInCStyleCastParentheses: false
SpacesInContainerLiterals: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
TabWidth: 4
UseTab: Never

View File

@ -6,8 +6,16 @@ on:
- master
jobs:
clang-format:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- name: clang-format
run: |
docker run --rm -v ${PWD}:/src wiiuenv/clang-format:13.0.0-2 -r ./source
build-binary:
runs-on: ubuntu-18.04
needs: clang-format
steps:
- uses: actions/checkout@v2
- name: build binary

View File

@ -3,8 +3,16 @@ name: CI-PR
on: [pull_request]
jobs:
clang-format:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- name: clang-format
run: |
docker run --rm -v ${PWD}:/src wiiuenv/clang-format:13.0.0-2 -r ./source
build-binary:
runs-on: ubuntu-18.04
needs: clang-format
steps:
- uses: actions/checkout@v2
- name: build binary

View File

@ -1,3 +1,5 @@
[![CI-Release](https://github.com/wiiu-env/KernelModule/actions/workflows/ci.yml/badge.svg)](https://github.com/wiiu-env/KernelModule/actions/workflows/ci.yml)
## Usage
(`[ENVIRONMENT]` is a placeholder for the actual environment name.)
@ -17,4 +19,8 @@ docker run -it --rm -v ${PWD}:/project kernelmodule-builder make
# make clean
docker run -it --rm -v ${PWD}:/project kernelmodule-builder make clean
```
```
## Format the code via docker
`docker run --rm -v ${PWD}:/src wiiuenv/clang-format:13.0.0-2 -r ./source -i`

View File

@ -1,9 +1,9 @@
#include <coreinit/memorymap.h>
#include <whb/log.h>
#include <whb/log_udp.h>
#include <coreinit/memorymap.h>
#include <wums.h>
#include <coreinit/cache.h>
#include <wums.h>
WUMS_MODULE_EXPORT_NAME("homebrew_kernel");
WUMS_MODULE_SKIP_INIT_FINI();
@ -38,39 +38,56 @@ void KernelReadSRsInternalFunc(sr_table_t *table) {
asm volatile("eieio; isync");
asm volatile("mfspr %0, 25" : "=r" (table->sdr1));
asm volatile("mfspr %0, 25"
: "=r"(table->sdr1));
asm volatile("mfsr %0, 0" : "=r" (table->value[i]));
asm volatile("mfsr %0, 0"
: "=r"(table->value[i]));
i++;
asm volatile("mfsr %0, 1" : "=r" (table->value[i]));
asm volatile("mfsr %0, 1"
: "=r"(table->value[i]));
i++;
asm volatile("mfsr %0, 2" : "=r" (table->value[i]));
asm volatile("mfsr %0, 2"
: "=r"(table->value[i]));
i++;
asm volatile("mfsr %0, 3" : "=r" (table->value[i]));
asm volatile("mfsr %0, 3"
: "=r"(table->value[i]));
i++;
asm volatile("mfsr %0, 4" : "=r" (table->value[i]));
asm volatile("mfsr %0, 4"
: "=r"(table->value[i]));
i++;
asm volatile("mfsr %0, 5" : "=r" (table->value[i]));
asm volatile("mfsr %0, 5"
: "=r"(table->value[i]));
i++;
asm volatile("mfsr %0, 6" : "=r" (table->value[i]));
asm volatile("mfsr %0, 6"
: "=r"(table->value[i]));
i++;
asm volatile("mfsr %0, 7" : "=r" (table->value[i]));
asm volatile("mfsr %0, 7"
: "=r"(table->value[i]));
i++;
asm volatile("mfsr %0, 8" : "=r" (table->value[i]));
asm volatile("mfsr %0, 8"
: "=r"(table->value[i]));
i++;
asm volatile("mfsr %0, 9" : "=r" (table->value[i]));
asm volatile("mfsr %0, 9"
: "=r"(table->value[i]));
i++;
asm volatile("mfsr %0, 10" : "=r" (table->value[i]));
asm volatile("mfsr %0, 10"
: "=r"(table->value[i]));
i++;
asm volatile("mfsr %0, 11" : "=r" (table->value[i]));
asm volatile("mfsr %0, 11"
: "=r"(table->value[i]));
i++;
asm volatile("mfsr %0, 12" : "=r" (table->value[i]));
asm volatile("mfsr %0, 12"
: "=r"(table->value[i]));
i++;
asm volatile("mfsr %0, 13" : "=r" (table->value[i]));
asm volatile("mfsr %0, 13"
: "=r"(table->value[i]));
i++;
asm volatile("mfsr %0, 14" : "=r" (table->value[i]));
asm volatile("mfsr %0, 14"
: "=r"(table->value[i]));
i++;
asm volatile("mfsr %0, 15" : "=r" (table->value[i]));
asm volatile("mfsr %0, 15"
: "=r"(table->value[i]));
i++;
asm volatile("eieio; isync");
@ -90,7 +107,9 @@ void KernelWriteSRsInternalFunc(sr_table_t *table) {
asm volatile("mtsr 5, %0" : : "r" (table->value[i])); i++;*/
//asm volatile("mtsr 6, %0" : : "r" (table->value[6])); i++;
/*asm volatile("mtsr 7, %0" : : "r" (table->value[i])); i++;*/
asm volatile("mtsr 8, %0" : : "r" (table->value[8]));
asm volatile("mtsr 8, %0"
:
: "r"(table->value[8]));
//i++;
/*asm volatile("mtsr 9, %0" : : "r" (table->value[i])); i++;
asm volatile("mtsr 10, %0" : : "r" (table->value[i])); i++;
@ -118,49 +137,47 @@ void KernelReadSRs(sr_table_t *table) {
/* Write a 32-bit word with kernel permissions */
void __attribute__ ((noinline)) kern_write(void *addr, uint32_t value) {
asm volatile (
"li 3,1\n"
"li 4,0\n"
"mr 5,%1\n"
"li 6,0\n"
"li 7,0\n"
"lis 8,1\n"
"mr 9,%0\n"
"mr %1,1\n"
"li 0,0x3500\n"
"sc\n"
"nop\n"
"mr 1,%1\n"
:
: "r"(addr), "r"(value)
: "memory", "ctr", "lr", "0", "3", "4", "5", "6", "7", "8", "9", "10",
"11", "12"
);
void __attribute__((noinline)) kern_write(void *addr, uint32_t value) {
asm volatile(
"li 3,1\n"
"li 4,0\n"
"mr 5,%1\n"
"li 6,0\n"
"li 7,0\n"
"lis 8,1\n"
"mr 9,%0\n"
"mr %1,1\n"
"li 0,0x3500\n"
"sc\n"
"nop\n"
"mr 1,%1\n"
:
: "r"(addr), "r"(value)
: "memory", "ctr", "lr", "0", "3", "4", "5", "6", "7", "8", "9", "10",
"11", "12");
}
/* Read a 32-bit word with kernel permissions */
uint32_t __attribute__ ((noinline)) kern_read(const void *addr) {
uint32_t __attribute__((noinline)) kern_read(const void *addr) {
uint32_t result;
asm volatile (
"li 3,1\n"
"li 4,0\n"
"li 5,0\n"
"li 6,0\n"
"li 7,0\n"
"lis 8,1\n"
"mr 9,%1\n"
"li 0,0x3400\n"
"mr %0,1\n"
"sc\n"
"nop\n"
"mr 1,%0\n"
"mr %0,3\n"
: "=r"(result)
: "b"(addr)
: "memory", "ctr", "lr", "0", "3", "4", "5", "6", "7", "8", "9", "10",
"11", "12"
);
asm volatile(
"li 3,1\n"
"li 4,0\n"
"li 5,0\n"
"li 6,0\n"
"li 7,0\n"
"lis 8,1\n"
"mr 9,%1\n"
"li 0,0x3400\n"
"mr %0,1\n"
"sc\n"
"nop\n"
"mr 1,%0\n"
"mr %0,3\n"
: "=r"(result)
: "b"(addr)
: "memory", "ctr", "lr", "0", "3", "4", "5", "6", "7", "8", "9", "10",
"11", "12");
return result;
}