basekernel/user/test/filedescribetest.c

43 lines
1.1 KiB
C
Raw Permalink Normal View History

2024-10-14 23:09:47 +02:00
#include "library/errno.h"
#include "library/syscalls.h"
#include "library/string.h"
#include "library/user-io.h"
#include "library/malloc.h"
#define TAG_BUFFER_SIZE 256
int main(int argc, char *argv[])
{
char *tag_value = "A simple tag string";
printf("Generating/typing all file descriptors.\n");
int type = -2;
int tag = -3;
int window_descriptor = syscall_open_window(KNO_STDWIN, 1, 1, 1, 1);
if(!window_descriptor) {
return 1;
}
syscall_object_set_tag(window_descriptor, tag_value);
int last_descriptor = syscall_object_max();
printf("Highest allocated FD: %d\nLast Descriptor: %d\n", window_descriptor, last_descriptor);
char *tag_string = malloc(sizeof(char) * TAG_BUFFER_SIZE);
for(int descriptor = 0; descriptor <= last_descriptor; descriptor++) {
type = syscall_object_type(descriptor);
tag = syscall_object_get_tag(descriptor, tag_string, TAG_BUFFER_SIZE);
printf("FD: %d is of type: %d, with tag: ", descriptor, type);
if(tag != 0) {
printf("\"%s\"\n", tag_string);
}
if(tag == 0) {
printf("%d\n", tag);
}
}
return 0;
}