void __iomem *dw_dmmu_base;
};
-struct cfg_dspmemdesc {
- u32 mem_type; /* Type of memory. */
- u32 ul_min; /* Minimum amount of memory of this type. */
- u32 ul_max; /* Maximum amount of memory of this type. */
-};
-
#endif /* CFGDEFS_ */
/* COD library handle */
struct cod_libraryobj;
-/* COD attributes */
-struct cod_attrs {
- u32 ul_reserved;
-};
-
/*
* Function prototypes for writing memory to a DSP system, allocating
* and freeing DSP memory.
* Parameters:
* manager: created manager object
* str_zl_file: ZL DLL filename, of length < COD_MAXPATHLENGTH.
- * attrs: attributes to be used by this object. A NULL value
- * will cause default attrs to be used.
* Returns:
* 0: Success.
* -ESPIPE: ZL_Create failed.
* Ensures:
*/
extern int cod_create(struct cod_manager **mgr,
- char *str_zl_file,
- const struct cod_attrs *attrs);
+ char *str_zl_file);
/*
* ======== cod_delete ========
*/
typedef s32 dbl_flags;
-/*
- * ======== dbl_sect_info ========
- * For collecting info on overlay sections
- */
-struct dbl_sect_info {
- const char *name; /* name of section */
- u32 sect_run_addr; /* run address of section */
- u32 sect_load_addr; /* load address of section */
- u32 size; /* size of section (target MAUs) */
- dbl_flags type; /* Code, data, or BSS */
-};
-
-/*
- * ======== dbl_symbol ========
- * (Needed for dynamic load library)
- */
-struct dbl_symbol {
- u32 value;
-};
-
/*
* ======== dbl_alloc_fxn ========
* Allocate memory function. Allocate or reserve (if reserved == TRUE)
typedef s32(*dbl_write_fxn) (void *hdl, u32 dsp_address, void *buf,
u32 n, s32 mtype);
-/*
- * ======== dbl_attrs ========
- */
-struct dbl_attrs {
- dbl_alloc_fxn alloc;
- dbl_free_fxn free;
- void *rmm_handle; /* Handle to pass to alloc, free functions */
- dbl_write_fxn write;
- void *input_params; /* Handle to pass to write, cinit function */
-
- dbl_log_write_fxn log_write;
- void *log_write_handle;
-
- /* Symbol matching function and handle to pass to it */
- dbl_sym_lookup sym_lookup;
- void *sym_handle;
- void *sym_arg;
-
- /*
- * These file manipulation functions should be compatible with the
- * "C" run time library functions of the same name.
- */
- s32(*fread) (void *, size_t, size_t, void *);
- s32(*fseek) (void *, long, int);
- s32(*ftell) (void *);
- s32(*fclose) (void *);
- void *(*fopen) (const char *, const char *);
-};
-
#endif /* DBLDEFS_ */
u32 dsp_reserved_addr;
};
-/* New structure (member of process context) abstracts DMM resource info */
-struct dspheap_res_object {
- s32 heap_allocated; /* DMM status */
- u32 ul_mpu_addr;
- u32 ul_dsp_addr;
- u32 ul_dsp_res_addr;
- u32 heap_size;
- void *hprocessor;
- struct dspheap_res_object *next;
-};
-
/* New structure (member of process context) abstracts stream resource info */
struct strm_res_object {
s32 stream_allocated; /* Stream status */
struct list_head dmm_rsv_list;
spinlock_t dmm_rsv_lock;
- /* DSP Heap resources */
- struct dspheap_res_object *pdspheap_list;
-
/* Stream resources */
struct idr *stream_id;
};
struct dsp_notification __user *hnotification;
} args_proc_register_notify;
- struct {
- void *hprocessor;
- } args_proc_start;
-
struct {
void *hprocessor;
u32 ul_size;
u32 ul_flags;
} args_proc_flushmemory;
- struct {
- void *hprocessor;
- } args_proc_stop;
-
struct {
void *hprocessor;
void *pmpu_addr;
+++ /dev/null
-/*
- * ldr.h
- *
- * DSP-BIOS Bridge driver support functions for TI OMAP processors.
- *
- * Provide module loading services and symbol export services.
- *
- * Notes:
- * This service is meant to be used by modules of the DSP/BIOS Bridge
- * driver.
- *
- * Copyright (C) 2005-2006 Texas Instruments, Inc.
- *
- * This package is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-#ifndef LDR_
-#define LDR_
-
-/* Loader objects: */
-struct ldr_module;
-
-#endif /* LDR_ */
/* ----------------------------------- Trace & Debug */
#include <dspbridge/dbc.h>
-/* ----------------------------------- OS Adaptation Layer */
-#include <dspbridge/ldr.h>
-
/* ----------------------------------- Platform Manager */
/* Include appropriate loader header file */
#include <dspbridge/dbll.h>
struct dbll_library_obj *base_lib;
bool loaded; /* Base library loaded? */
u32 ul_entry;
- struct ldr_module *dll_obj;
struct dbll_fxns fxns;
struct dbll_attrs attrs;
char sz_zl_file[COD_MAXPATHLENGTH];
* dynamically loaded object files.
*
*/
-int cod_create(struct cod_manager **mgr, char *str_zl_file,
- const struct cod_attrs *attrs)
+int cod_create(struct cod_manager **mgr, char *str_zl_file)
{
struct cod_manager *mgr_new;
struct dbll_attrs zl_attrs;
/* assume failure */
*mgr = NULL;
- /* we don't support non-default attrs yet */
- if (attrs != NULL)
- return -ENOSYS;
-
mgr_new = kzalloc(sizeof(struct cod_manager), GFP_KERNEL);
if (mgr_new == NULL)
return -ENOMEM;
/* ----------------------------------- Trace & Debug */
#include <dspbridge/dbc.h>
-/* ----------------------------------- OS Adaptation Layer */
-#include <dspbridge/ldr.h>
-
/* ----------------------------------- Platform Manager */
#include <dspbridge/cod.h>
#include <dspbridge/drv.h>
struct io_mgr *hio_mgr; /* IO manager (CHNL, msg_ctrl) */
struct cmm_object *hcmm_mgr; /* SM memory manager. */
struct dmm_object *dmm_mgr; /* Dynamic memory manager. */
- struct ldr_module *module_obj; /* Bridge Module handle. */
u32 word_size; /* DSP word size: quick access. */
struct drv_object *hdrv_obj; /* Driver Object */
/* List of Processors attached to this device */
struct cfg_devnode *dev_node_obj)
{
struct cfg_hostres *host_res;
- struct ldr_module *module_obj = NULL;
struct bridge_drv_interface *drv_fxns = NULL;
struct dev_object *dev_obj = NULL;
struct chnl_mgrattrs mgr_attrs;
if (dev_obj) {
/* Fill out the rest of the Dev Object structure: */
dev_obj->dev_node_obj = dev_node_obj;
- dev_obj->module_obj = module_obj;
dev_obj->cod_mgr = NULL;
dev_obj->hchnl_mgr = NULL;
dev_obj->hdeh_mgr = NULL;
DBC_REQUIRE(refs > 0);
DBC_REQUIRE(!dev_obj || (dev_obj->cod_mgr == NULL));
- status = cod_create(&dev_obj->cod_mgr, sz_dummy_file, NULL);
+ status = cod_create(&dev_obj->cod_mgr, sz_dummy_file);
return status;
}
DBC_REQUIRE(refs >= 0);
DBC_REQUIRE(dcd_mgr);
- status = cod_create(&cod_mgr, sz_zl_dll_name, NULL);
+ status = cod_create(&cod_mgr, sz_zl_dll_name);
if (status)
goto func_end;