Break devctl() up into smaller syscalls
This commit is contained in:
@ -3,14 +3,14 @@
|
||||
#include <ulib.h>
|
||||
|
||||
void dev_ls(void) {
|
||||
size_t ndevs = devctl(NULL, DEVCTL_DEVLS_SZ, NULL, 0, 0);
|
||||
size_t ndevs = dev_listsize();
|
||||
uprintf("TOTAL: %zu\n", ndevs);
|
||||
|
||||
uprintf("%-20s %-10s\n", "DEVICE", "FUNCTIONS");
|
||||
|
||||
for (size_t i = 0; i < 0x100; i++) {
|
||||
DevStat devstat; ZERO(&devstat);
|
||||
devctl(NULL, DEVCTL_DEVLS_STAT, (uint8_t *)&devstat, i, 0);
|
||||
dev_stat(&devstat, i);
|
||||
|
||||
if (!devstat.present)
|
||||
continue;
|
||||
|
||||
@ -40,7 +40,7 @@ void fs_mount(void) {
|
||||
}
|
||||
|
||||
Dev_t dev;
|
||||
ret = devctl(&dev, DEVCTL_GET_HANDLE, (uint8_t *)FS_MOUNT_CONFIG.devname, 0, 0);
|
||||
ret = dev_gethandle(&dev, FS_MOUNT_CONFIG.devname);
|
||||
if (ret != E_OK) {
|
||||
uprintf("fs: device %s not found\n", FS_MOUNT_CONFIG.devname);
|
||||
return;
|
||||
|
||||
@ -6,7 +6,7 @@ Dev_t ps2kbdev;
|
||||
Dev_t termdev;
|
||||
|
||||
void tb_runinitscript(void) {
|
||||
devctl(&termdev, DEVCTL_GET_HANDLE, (uint8_t *)"termdev", 0, 0);
|
||||
dev_gethandle(&termdev, "termdev");
|
||||
|
||||
char *tbargs[] = { "-m", "runfile", "-f", "base:/scripts/init.tb" };
|
||||
int32_t tb = proc_spawn("base:/bin/tb", tbargs, ARRLEN(tbargs));
|
||||
@ -20,7 +20,7 @@ void tb_runinitscript(void) {
|
||||
string_memset(buf, 0, sizeof(buf));
|
||||
r = ipc_piperead(tb, 0, (uint8_t *const)buf, sizeof(buf)-1);
|
||||
if (r > 0) {
|
||||
devctl(&termdev, DEV_TERMDEV_PUTCH, (uint8_t *)buf, string_len(buf), 0);
|
||||
dev_cmd(&termdev, DEV_TERMDEV_PUTCH, buf, string_len(buf), NULL);
|
||||
} else {
|
||||
schedrelease();
|
||||
}
|
||||
@ -29,8 +29,8 @@ void tb_runinitscript(void) {
|
||||
|
||||
void main(void) {
|
||||
PID = proc_getpid();
|
||||
devctl(&ps2kbdev, DEVCTL_GET_HANDLE, (uint8_t *)"ps2kbdev", 0, 0);
|
||||
devctl(&ps2kbdev, DEV_PS2KBDEV_ATTCHCONS, (uint8_t *)PID, 0, 0);
|
||||
dev_gethandle(&ps2kbdev, "ps2kbdev");
|
||||
dev_cmd(&ps2kbdev, DEV_PS2KBDEV_ATTCHCONS, (void *)PID, 0, NULL);
|
||||
|
||||
tb_runinitscript();
|
||||
|
||||
|
||||
@ -217,7 +217,7 @@ bool interp_runstring(char *string, InterpResult **res, bool logcmds, bool inter
|
||||
|
||||
while(proc_pollstate(app) != 4) {
|
||||
if (interactive) {
|
||||
int32_t key = devctl(&ps2kbdev, DEV_PS2KBDEV_READCH, (uint8_t *)PID, 0, 0);
|
||||
int32_t key = dev_cmd(&ps2kbdev, DEV_PS2KBDEV_READCH, (void *)PID, 0, NULL);
|
||||
if (key > 0 && (uint8_t)key == C('S')) {
|
||||
proc_kill(app);
|
||||
goto cleanup;
|
||||
|
||||
@ -102,7 +102,7 @@ void do_mode_interactive(void) {
|
||||
|
||||
uint8_t b = 0;
|
||||
for (;;) {
|
||||
int32_t key = devctl(&ps2kbdev, DEV_PS2KBDEV_READCH, (uint8_t *)PID, 0, 0);
|
||||
int32_t key = dev_cmd(&ps2kbdev, DEV_PS2KBDEV_READCH, (void *)PID, 0, NULL);
|
||||
if (key > 0) {
|
||||
b = (uint8_t)key;
|
||||
switch (b) {
|
||||
@ -151,8 +151,8 @@ void main(void) {
|
||||
do_file("base:/scripts/rc.tb");
|
||||
|
||||
if (CONFIG.mode == MODE_INTERACTIVE) {
|
||||
devctl(&ps2kbdev, DEVCTL_GET_HANDLE, (uint8_t *)"ps2kbdev", 0, 0);
|
||||
devctl(&ps2kbdev, DEV_PS2KBDEV_ATTCHCONS, (uint8_t *)PID, 0, 0);
|
||||
dev_gethandle(&ps2kbdev, "ps2kbdev");
|
||||
dev_cmd(&ps2kbdev, DEV_PS2KBDEV_ATTCHCONS, (void *)PID, 0, NULL);
|
||||
do_mode_interactive();
|
||||
} else if (CONFIG.mode == MODE_RUNFILE) {
|
||||
if (CONFIG.filepath == NULL) {
|
||||
|
||||
Reference in New Issue
Block a user