ChibiOS 21.11.4
chfactory.c File Reference

ChibiOS objects factory and registry code. More...

#include <string.h>
#include "ch.h"

Go to the source code of this file.

Macros

#define F_LOCK()
#define F_UNLOCK()

Functions

static void copy_name (const char *sp, char *dp)
static void dyn_list_init (dyn_list_t *dlp)
static dyn_element_tdyn_list_find (const char *name, dyn_list_t *dlp)
static dyn_element_tdyn_list_find_prev (dyn_element_t *element, dyn_list_t *dlp)
static dyn_element_tdyn_list_unlink (dyn_element_t *prev)
static dyn_element_tdyn_create_object_heap (const char *name, dyn_list_t *dlp, size_t size, unsigned align)
static void dyn_release_object_heap (dyn_element_t *dep, dyn_list_t *dlp)
static dyn_element_tdyn_create_object_pool (const char *name, dyn_list_t *dlp, memory_pool_t *mp)
static void dyn_release_object_pool (dyn_element_t *dep, dyn_list_t *dlp, memory_pool_t *mp)
static dyn_element_tdyn_find_object (const char *name, dyn_list_t *dlp)
void __factory_init (void)
 Initializes the objects factory.
registered_object_tchFactoryRegisterObject (const char *name, void *objp)
 Registers a generic object.
registered_object_tchFactoryFindObject (const char *name)
 Retrieves a registered object.
registered_object_tchFactoryFindObjectByPointer (void *objp)
 Retrieves a registered object by pointer.
void chFactoryReleaseObject (registered_object_t *rop)
 Releases a registered object.
dyn_buffer_tchFactoryCreateBuffer (const char *name, size_t size)
 Creates a generic dynamic buffer object.
dyn_buffer_tchFactoryFindBuffer (const char *name)
 Retrieves a dynamic buffer object.
void chFactoryReleaseBuffer (dyn_buffer_t *dbp)
 Releases a dynamic buffer object.
dyn_semaphore_tchFactoryCreateSemaphore (const char *name, cnt_t n)
 Creates a dynamic semaphore object.
dyn_semaphore_tchFactoryFindSemaphore (const char *name)
 Retrieves a dynamic semaphore object.
void chFactoryReleaseSemaphore (dyn_semaphore_t *dsp)
 Releases a dynamic semaphore object.
dyn_mailbox_tchFactoryCreateMailbox (const char *name, size_t n)
 Creates a dynamic mailbox object.
dyn_mailbox_tchFactoryFindMailbox (const char *name)
 Retrieves a dynamic mailbox object.
void chFactoryReleaseMailbox (dyn_mailbox_t *dmp)
 Releases a dynamic mailbox object.
dyn_objects_fifo_tchFactoryCreateObjectsFIFO (const char *name, size_t objsize, size_t objn, unsigned objalign)
 Creates a dynamic "objects FIFO" object.
dyn_objects_fifo_tchFactoryFindObjectsFIFO (const char *name)
 Retrieves a dynamic "objects FIFO" object.
void chFactoryReleaseObjectsFIFO (dyn_objects_fifo_t *dofp)
 Releases a dynamic "objects FIFO" object.
dyn_pipe_tchFactoryCreatePipe (const char *name, size_t size)
 Creates a dynamic pipe object.
dyn_pipe_tchFactoryFindPipe (const char *name)
 Retrieves a dynamic pipe object.
void chFactoryReleasePipe (dyn_pipe_t *dpp)
 Releases a dynamic pipe object.

Variables

objects_factory_t ch_factory
 Factory object static instance.

Detailed Description

ChibiOS objects factory and registry code.

Definition in file chfactory.c.