PatchworkOS
Loading...
Searching...
No Matches
fb.c File Reference
#include <kernel/drivers/abstractions/fb.h>
#include <kernel/fs/file.h>
#include <kernel/fs/sysfs.h>
#include <kernel/fs/vfs.h>
#include <kernel/log/log.h>
#include <kernel/sched/thread.h>
#include <assert.h>
#include <stdatomic.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/fb.h>

Go to the source code of this file.

Functions

static void * fb_buffer_mmap (file_t *file, void *addr, uint64_t length, uint64_t *offset, pml_flags_t flags)
 
static uint64_t fb_info_read (file_t *file, void *buffer, uint64_t count, uint64_t *offset)
 
static void fb_dir_cleanup (inode_t *inode)
 
fb_tfb_new (const fb_info_t *info, fb_mmap_t mmap)
 Allocate and initialize a framebuffer structure.
 
void fb_free (fb_t *fb)
 Free and deinitialize a framebuffer structure.
 

Variables

static atomic_uint64_t newId = ATOMIC_VAR_INIT(0)
 
static dentry_tfbDir = NULL
 
static file_ops_t bufferOps
 
static file_ops_t infoOps
 
static inode_ops_t dirInodeOps
 

Function Documentation

◆ fb_buffer_mmap()

static void * fb_buffer_mmap ( file_t file,
void *  addr,
uint64_t  length,
uint64_t offset,
pml_flags_t  flags 
)
static

Definition at line 19 of file fb.c.

References fb, file, dentry_t::inode, log_screen_disable(), fb_t::mmap, and inode_t::private.

◆ fb_dir_cleanup()

static void fb_dir_cleanup ( inode_t inode)
static

Definition at line 46 of file fb.c.

References fb, free(), and inode_t::private.

◆ fb_info_read()

static uint64_t fb_info_read ( file_t file,
void *  buffer,
uint64_t  count,
uint64_t offset 
)
static

Definition at line 31 of file fb.c.

References buffer, BUFFER_READ, count, fb, file, fb_t::info, dentry_t::inode, and inode_t::private.

Variable Documentation

◆ bufferOps

file_ops_t bufferOps
static
Initial value:
= {
.mmap = fb_buffer_mmap,
}
static void * fb_buffer_mmap(file_t *file, void *addr, uint64_t length, uint64_t *offset, pml_flags_t flags)
Definition fb.c:19

Definition at line 27 of file fb.c.

Referenced by fb_new().

◆ dirInodeOps

inode_ops_t dirInodeOps
static
Initial value:
= {
.cleanup = fb_dir_cleanup,
}
static void fb_dir_cleanup(inode_t *inode)
Definition fb.c:46

Definition at line 52 of file fb.c.

Referenced by fb_new().

◆ fbDir

dentry_t* fbDir = NULL
static

Definition at line 17 of file fb.c.

Referenced by fb_new().

◆ infoOps

file_ops_t infoOps
static
Initial value:
= {
.read = fb_info_read,
}
static uint64_t fb_info_read(file_t *file, void *buffer, uint64_t count, uint64_t *offset)
Definition fb.c:31

Definition at line 42 of file fb.c.

Referenced by fb_new().

◆ newId

atomic_uint64_t newId = ATOMIC_VAR_INIT(0)
static

Definition at line 15 of file fb.c.

Referenced by fb_new(), and smp_others_init().