Compare commits
2 Commits
406434fed0
...
0c3250e8d6
| Author | SHA1 | Date | |
|---|---|---|---|
| 0c3250e8d6 | |||
| 01b37e41c2 |
@ -11,6 +11,7 @@
|
||||
#include "errors.h"
|
||||
|
||||
int32_t fbdev_getinfo(struct Dev *dev, uint8_t *buffer, size_t len, void *extra) {
|
||||
(void)dev; (void)buffer; (void)len; (void)extra;
|
||||
FbDevGetInfo info = {
|
||||
.w = BOOT_INFO.fb->width,
|
||||
.h = BOOT_INFO.fb->height,
|
||||
|
||||
@ -164,6 +164,7 @@ struct {
|
||||
} PS2KB_CONSUMERS = {0};
|
||||
|
||||
int32_t ps2kbdev_readch(struct Dev *dev, uint8_t *buffer, size_t len, void *extra) {
|
||||
(void)dev; (void)len; (void)extra;
|
||||
uint64_t pid = (uint64_t)buffer;
|
||||
Proc *consproc = NULL;
|
||||
spinlock_acquire(&PROCS.spinlock);
|
||||
@ -202,6 +203,7 @@ int32_t ps2kbdev_readch(struct Dev *dev, uint8_t *buffer, size_t len, void *extr
|
||||
#define CONSUMER_RBUF_MAX 0x400
|
||||
|
||||
int32_t ps2kbdev_attchcons(struct Dev *dev, uint8_t *buffer, size_t len, void *extra) {
|
||||
(void)dev; (void)len; (void)extra;
|
||||
uint64_t pid = (uint64_t)buffer;
|
||||
spinlock_acquire(&PROCS.spinlock);
|
||||
Proc *proc, *proctmp;
|
||||
|
||||
@ -49,23 +49,23 @@ void serial_sendb(uint8_t b) {
|
||||
}
|
||||
|
||||
int32_t serialdev_sendb(struct Dev *dev, uint8_t *buffer, size_t len, void *extra) {
|
||||
(void)len; (void)extra;
|
||||
(void)dev; (void)len; (void)extra;
|
||||
serial_sendb(buffer[0]);
|
||||
return E_OK;
|
||||
}
|
||||
|
||||
int32_t serialdev_sendready(struct Dev *dev, uint8_t *buffer, size_t len, void *extra) {
|
||||
(void)buffer; (void)len; (void) extra;
|
||||
(void)dev; (void)buffer; (void)len; (void) extra;
|
||||
return serial_sendready();
|
||||
}
|
||||
|
||||
int32_t serialdev_recvb(struct Dev *dev, uint8_t *buffer, size_t len, void *extra) {
|
||||
(void)buffer; (void)len; (void)extra;
|
||||
(void)dev; (void)buffer; (void)len; (void)extra;
|
||||
return serial_recvb();
|
||||
}
|
||||
|
||||
int32_t serialdev_recvready(struct Dev *dev, uint8_t *buffer, size_t len, void *extra) {
|
||||
(void)buffer; (void)len; (void)extra;
|
||||
(void)dev; (void)buffer; (void)len; (void)extra;
|
||||
return serial_recvready();
|
||||
}
|
||||
|
||||
|
||||
@ -10,6 +10,7 @@
|
||||
#include "sysdefs/devctl.h"
|
||||
|
||||
int32_t termdev_putch(struct Dev *dev, uint8_t *buffer, size_t len, void *extra) {
|
||||
(void)dev; (void)extra;
|
||||
kprintf("%.*s", (int)len, (char *)buffer);
|
||||
return E_OK;
|
||||
}
|
||||
|
||||
@ -24,8 +24,8 @@ size_t hal_strlen(char *s) {
|
||||
// https://aticleworld.com/memcmp-in-c/
|
||||
int hal_memcmp(const void *s1, const void *s2, int len)
|
||||
{
|
||||
unsigned char *p = s1;
|
||||
unsigned char *q = s2;
|
||||
unsigned char *p = (unsigned char *)s1;
|
||||
unsigned char *q = (unsigned char *)s2;
|
||||
int charCompareStatus = 0;
|
||||
//If both pointer pointing same memory block
|
||||
if (s1 == s2)
|
||||
|
||||
@ -229,7 +229,7 @@ void intr_handleintr(IntrStackFrame *frame) {
|
||||
default:
|
||||
IntrHandler *ih, *ihtmp;
|
||||
LL_FOREACH_SAFE(INTR_HANDLERS, ih, ihtmp) {
|
||||
if (ih->irq == frame->trapnum) {
|
||||
if ((uint64_t)ih->irq == frame->trapnum) {
|
||||
ih->fn();
|
||||
}
|
||||
}
|
||||
|
||||
@ -59,7 +59,7 @@ void hal_vmm_map_page(uint64_t cr3phys, uint64_t virtaddr, uint64_t physaddr, ui
|
||||
*pte = (physaddr & ~0xFFFULL) | ((uint64_t)flags & 0x7ULL);
|
||||
}
|
||||
|
||||
void hal_vmm_unmap_page(uint64_t cr3phys, uint64_t virtaddr, uint64_t physaddr) {
|
||||
void hal_vmm_unmap_page(uint64_t cr3phys, uint64_t virtaddr) {
|
||||
uint64_t *pml4 = (uint64_t *)VIRT(cr3phys);
|
||||
PgIndex pi = hal_vmm_pageindex(virtaddr);
|
||||
|
||||
@ -93,11 +93,10 @@ void hal_vmm_unmap_range(uint64_t cr3phys, void *virtstart, void *physstart, siz
|
||||
|
||||
spinlock_acquire(&spinlock);
|
||||
uint8_t *vaddr = (uint8_t *)virtstart;
|
||||
uint8_t *paddr = (uint8_t *)physstart;
|
||||
uint8_t *end = vaddr + size;
|
||||
|
||||
for (; vaddr < end; vaddr += HAL_PAGE_SIZE, paddr += HAL_PAGE_SIZE) {
|
||||
hal_vmm_unmap_page(cr3phys, (uint64_t)vaddr, (uint64_t)paddr);
|
||||
for (; vaddr < end; vaddr += HAL_PAGE_SIZE) {
|
||||
hal_vmm_unmap_page(cr3phys, (uint64_t)vaddr);
|
||||
}
|
||||
spinlock_release(&spinlock);
|
||||
}
|
||||
|
||||
@ -53,7 +53,7 @@ typedef struct {
|
||||
extern uint64_t KERNEL_CR3;
|
||||
|
||||
void hal_vmm_init(void);
|
||||
void hal_vmm_unmap_page(uint64_t cr3phys, uint64_t virtaddr, uint64_t physaddr);
|
||||
void hal_vmm_unmap_page(uint64_t cr3phys, uint64_t virtaddr);
|
||||
void hal_vmm_map_page(uint64_t cr3phys, uint64_t virtaddr, uint64_t physaddr, uint32_t flags);
|
||||
uint64_t hal_vmm_current_cr3(void);
|
||||
void hal_vmm_map_range(uint64_t cr3phys, void *virtstart, void *physstart, size_t size, uint32_t flags);
|
||||
|
||||
@ -180,7 +180,7 @@ void proc_reaper(void) {
|
||||
Proc *zombie = head;
|
||||
LL_REMOVE(PROCS.procs, zombie);
|
||||
|
||||
for (size_t i = 0; i < zombie->vobjcnt; i++) {
|
||||
for (size_t i = 0; i < PROC_VFSHANDLES_MAX; i++) {
|
||||
if (zombie->vobjs[i] != NULL) {
|
||||
vfs_close(zombie->vobjs[i]);
|
||||
zombie->vobjs[i] = NULL;
|
||||
|
||||
@ -55,7 +55,6 @@ typedef struct Proc {
|
||||
VasRange *vas;
|
||||
|
||||
VfsObj *vobjs[PROC_VFSHANDLES_MAX];
|
||||
uint64_t vobjcnt;
|
||||
|
||||
IpcPipe *pipes[PROC_PIPEHANDLES_MAX];
|
||||
SpinLock pipes_spinlock;
|
||||
|
||||
@ -52,7 +52,7 @@ void randcrypto_gen_uniqid(char *out, size_t n) {
|
||||
uint32_t extra = (r != -1) ? (uint32_t)r : uniqstate * 0x27d4eb2dU;
|
||||
|
||||
uniqstate += 0x9E3779B1u;
|
||||
uint32_t v = uniqmix32(uniqstate);
|
||||
uint32_t v = uniqmix32(uniqstate ^ extra);
|
||||
|
||||
spinlock_release(&uniqstate_spinlock);
|
||||
|
||||
|
||||
@ -128,7 +128,7 @@ void ata_probe(void) {
|
||||
.devno = ATA_MASTER,
|
||||
.capacity = probesize,
|
||||
};
|
||||
StoreDev *sd = storedev_create(STOREDEV_ATASD, (void *)&extra);
|
||||
storedev_create(STOREDEV_ATASD, (void *)&extra);
|
||||
}
|
||||
}
|
||||
|
||||
@ -211,6 +211,7 @@ done:
|
||||
}
|
||||
|
||||
int32_t atasd_cleanup(struct StoreDev *sd) {
|
||||
(void)sd;
|
||||
return E_OK;
|
||||
}
|
||||
|
||||
|
||||
@ -38,18 +38,16 @@ int32_t SYSCALL2(sys_fs_openf, opath1, oflags1) {
|
||||
Proc *proc = PROCS.current;
|
||||
spinlock_release(&PROCS.spinlock);
|
||||
|
||||
if (proc->vobjcnt < PROC_VFSHANDLES_MAX) {
|
||||
for (size_t i = 0; i < PROC_VFSHANDLES_MAX; i++) {
|
||||
if (proc->vobjs[i] == NULL) {
|
||||
proc->vobjs[i] = vobj;
|
||||
ret = i;
|
||||
break;
|
||||
}
|
||||
for (size_t i = 0; i < PROC_VFSHANDLES_MAX; i++) {
|
||||
if (proc->vobjs[i] == NULL) {
|
||||
proc->vobjs[i] = vobj;
|
||||
ret = i;
|
||||
goto done;
|
||||
}
|
||||
} else {
|
||||
ret = E_NOMEMORY;
|
||||
}
|
||||
|
||||
ret = E_NOMEMORY;
|
||||
|
||||
done:
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -81,7 +81,6 @@ int32_t SYSCALL1(sys_mman_unmap, addr1) {
|
||||
Proc *proc = PROCS.current;
|
||||
spinlock_release(&PROCS.spinlock);
|
||||
|
||||
uint8_t *virt = NULL;
|
||||
VasRange *tofree = NULL;
|
||||
|
||||
VasRange *vas, *vastmp;
|
||||
|
||||
@ -8,34 +8,6 @@
|
||||
|
||||
Term TERM;
|
||||
|
||||
static uint32_t ansi_colours[8] = {
|
||||
0xFFFFFBF0,
|
||||
0xFFE64C4C,
|
||||
0xFF4CAF50,
|
||||
0xFFCC9900,
|
||||
0xFF337AB7,
|
||||
0xFF9B59B6,
|
||||
0xFF0097A7,
|
||||
0xFF555555
|
||||
};
|
||||
|
||||
static uint32_t ansi_bright_colours[8] = {
|
||||
0xFFBFB9AA,
|
||||
0xFFFF6B6B,
|
||||
0xFF66BB6A,
|
||||
0xFFFFC107,
|
||||
0xFF42A5F5,
|
||||
0xFFBA68C8,
|
||||
0xFF26C6DA,
|
||||
0xFF000000
|
||||
};
|
||||
|
||||
// defaults
|
||||
static uint32_t default_bg = 0xFFFFFBF0;
|
||||
static uint32_t default_fg = 0xFF222222;
|
||||
static uint32_t default_bg_bright = 0xFFFFFBF0;
|
||||
static uint32_t default_fg_bright = 0xFF000000;
|
||||
|
||||
void term_doinit(void *addr) {
|
||||
TERM.ftctx = flanterm_fb_init(
|
||||
NULL, // malloc
|
||||
@ -57,12 +29,6 @@ void term_doinit(void *addr) {
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
/* ansi_colours, // ansi colors */
|
||||
/* ansi_bright_colours, // ansi bright colors */
|
||||
/* &default_bg, // default bg */
|
||||
/* &default_fg, // default fg */
|
||||
/* &default_fg_bright, // default bg bright */
|
||||
/* &default_bg_bright, // default fg bright */
|
||||
FM_T_437_F16,
|
||||
8,
|
||||
16,
|
||||
|
||||
@ -27,8 +27,8 @@ void *string_memcpy(void *dst, const void *src, size_t n) {
|
||||
// https://aticleworld.com/memcmp-in-c/
|
||||
int string_memcmp(const void *s1, const void *s2, int len)
|
||||
{
|
||||
unsigned char *p = s1;
|
||||
unsigned char *q = s2;
|
||||
unsigned char *p = (unsigned char *)s1;
|
||||
unsigned char *q = (unsigned char *)s2;
|
||||
int charCompareStatus = 0;
|
||||
//If both pointer pointing same memory block
|
||||
if (s1 == s2)
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
#include <ulib.h>
|
||||
|
||||
int showtree(char *root, int indent) {
|
||||
#define INDENT() for (size_t i = 0; i < indent; i++) uprintf(" ")
|
||||
#define INDENT() for (size_t i = 0; i < (size_t)indent; i++) uprintf(" ")
|
||||
|
||||
FsStat statbuf; ZERO(&statbuf);
|
||||
if (fs_stat(root, &statbuf) != E_OK) {
|
||||
|
||||
@ -32,7 +32,7 @@ void pctl_ls(void) {
|
||||
char *membuf = umalloc(20);
|
||||
|
||||
uprintf("%-30s %s %-15s %-8s\n", "NAME", "PID", "MEMORY", "STATE");
|
||||
for (size_t i = 0; i < procslen; i++) {
|
||||
for (size_t i = 0; i < (size_t)procslen; i++) {
|
||||
ProcStat stat; ZERO(&stat);
|
||||
|
||||
string_memset(namebuf, 0, 34);
|
||||
@ -45,7 +45,7 @@ void pctl_ls(void) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (PCTL_LS_CONFIG.pid != -1 && stat.pid != PCTL_LS_CONFIG.pid) {
|
||||
if (PCTL_LS_CONFIG.pid != -1 && stat.pid != (uint64_t)PCTL_LS_CONFIG.pid) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
@ -238,6 +238,5 @@ next:
|
||||
line = string_tokenizealloc(NULL, "\n");
|
||||
}
|
||||
|
||||
done:
|
||||
return ok;
|
||||
}
|
||||
|
||||
@ -79,6 +79,7 @@ bool rt_mkalias(Token *tks) {
|
||||
}
|
||||
|
||||
bool rt_PID(Token *tks) {
|
||||
(void)tks;
|
||||
uprintf("%lu\n", PID);
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user