Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
nldr.c File Reference
#include <linux/types.h>
#include <dspbridge/host_os.h>
#include <dspbridge/dbdefs.h>
#include <dspbridge/cod.h>
#include <dspbridge/dev.h>
#include <dspbridge/dbll.h>
#include <dspbridge/dbdcd.h>
#include <dspbridge/rmm.h>
#include <dspbridge/uuidutil.h>
#include <dspbridge/nldr.h>
#include <linux/lcm.h>

Go to the source code of this file.

Data Structures

struct  mem_seg_info
 
struct  lib_node
 
struct  ovly_sect
 
struct  ovly_node
 
struct  nldr_object
 
struct  nldr_nodeobject
 

Macros

#define DYNMEMSECT   ".dspbridge_mem"
 
#define DEPLIBSECT   ".dspbridge_deplibs"
 
#define MAXDEPTH   5
 
#define MAXLIBS   5
 
#define MAXMEMSEGS   32
 
#define MAXSEGID   3 /* Largest possible (real) segid */
 
#define MEMINTERNALID   32 /* Segid meaning use internal mem */
 
#define MEMEXTERNALID   33 /* Segid meaning use external mem */
 
#define NULLID   63 /* Segid meaning no memory req/pref */
 
#define FLAGBIT   7 /* 7th bit is pref./req. flag */
 
#define SEGMASK   0x3f /* Bits 0 - 5 */
 
#define CREATEBIT   0 /* Create segid starts at bit 0 */
 
#define DELETEBIT   8 /* Delete segid starts at bit 8 */
 
#define EXECUTEBIT   16 /* Execute segid starts at bit 16 */
 
#define DYNM_CODE   0x2
 
#define DYNM_DATA   0x4
 
#define DYNM_CODEDATA   (DYNM_CODE | DYNM_DATA)
 
#define DYNM_INTERNAL   0x8
 
#define DYNM_EXTERNAL   0x10
 
#define CREATEDATAFLAGBIT   0
 
#define CREATECODEFLAGBIT   1
 
#define EXECUTEDATAFLAGBIT   2
 
#define EXECUTECODEFLAGBIT   3
 
#define DELETEDATAFLAGBIT   4
 
#define DELETECODEFLAGBIT   5
 
#define MAXFLAGS   6
 
#define PCREATE   "create"
 
#define PDELETE   "delete"
 
#define PEXECUTE   "execute"
 

Functions

int nldr_allocate (struct nldr_object *nldr_obj, void *priv_ref, const struct dcd_nodeprops *node_props, struct nldr_nodeobject **nldr_nodeobj, bool *pf_phase_split)
 
int nldr_create (struct nldr_object **nldr, struct dev_object *hdev_obj, const struct nldr_attrs *pattrs)
 
void nldr_delete (struct nldr_object *nldr_obj)
 
int nldr_get_fxn_addr (struct nldr_nodeobject *nldr_node_obj, char *str_fxn, u32 *addr)
 
int nldr_get_rmm_manager (struct nldr_object *nldr, struct rmm_target_obj **rmm_mgr)
 
int nldr_load (struct nldr_nodeobject *nldr_node_obj, enum nldr_phase phase)
 
int nldr_unload (struct nldr_nodeobject *nldr_node_obj, enum nldr_phase phase)
 

Macro Definition Documentation

#define CREATEBIT   0 /* Create segid starts at bit 0 */

Definition at line 85 of file nldr.c.

#define CREATECODEFLAGBIT   1

Definition at line 109 of file nldr.c.

#define CREATEDATAFLAGBIT   0

Definition at line 108 of file nldr.c.

#define DELETEBIT   8 /* Delete segid starts at bit 8 */

Definition at line 86 of file nldr.c.

#define DELETECODEFLAGBIT   5

Definition at line 113 of file nldr.c.

#define DELETEDATAFLAGBIT   4

Definition at line 112 of file nldr.c.

#define DEPLIBSECT   ".dspbridge_deplibs"

Definition at line 42 of file nldr.c.

#define DYNM_CODE   0x2

Definition at line 92 of file nldr.c.

#define DYNM_CODEDATA   (DYNM_CODE | DYNM_DATA)

Definition at line 94 of file nldr.c.

#define DYNM_DATA   0x4

Definition at line 93 of file nldr.c.

#define DYNM_EXTERNAL   0x10

Definition at line 96 of file nldr.c.

#define DYNM_INTERNAL   0x8

Definition at line 95 of file nldr.c.

#define DYNMEMSECT   ".dspbridge_mem"

Definition at line 39 of file nldr.c.

#define EXECUTEBIT   16 /* Execute segid starts at bit 16 */

Definition at line 87 of file nldr.c.

#define EXECUTECODEFLAGBIT   3

Definition at line 111 of file nldr.c.

#define EXECUTEDATAFLAGBIT   2

Definition at line 110 of file nldr.c.

#define FLAGBIT   7 /* 7th bit is pref./req. flag */

Definition at line 82 of file nldr.c.

#define MAXDEPTH   5

Definition at line 45 of file nldr.c.

#define MAXFLAGS   6

Definition at line 114 of file nldr.c.

#define MAXLIBS   5

Definition at line 48 of file nldr.c.

#define MAXMEMSEGS   32

Definition at line 76 of file nldr.c.

#define MAXSEGID   3 /* Largest possible (real) segid */

Definition at line 78 of file nldr.c.

#define MEMEXTERNALID   33 /* Segid meaning use external mem */

Definition at line 80 of file nldr.c.

#define MEMINTERNALID   32 /* Segid meaning use internal mem */

Definition at line 79 of file nldr.c.

#define NULLID   63 /* Segid meaning no memory req/pref */

Definition at line 81 of file nldr.c.

#define PCREATE   "create"

Definition at line 120 of file nldr.c.

#define PDELETE   "delete"

Definition at line 121 of file nldr.c.

#define PEXECUTE   "execute"

Definition at line 122 of file nldr.c.

#define SEGMASK   0x3f /* Bits 0 - 5 */

Definition at line 83 of file nldr.c.

Function Documentation

int nldr_allocate ( struct nldr_object nldr_obj,
void priv_ref,
const struct dcd_nodeprops node_props,
struct nldr_nodeobject **  nldr_nodeobj,
bool pf_phase_split 
)

Definition at line 304 of file nldr.c.

int nldr_create ( struct nldr_object **  nldr,
struct dev_object hdev_obj,
const struct nldr_attrs pattrs 
)

Definition at line 398 of file nldr.c.

void nldr_delete ( struct nldr_object nldr_obj)

Definition at line 571 of file nldr.c.

int nldr_get_fxn_addr ( struct nldr_nodeobject nldr_node_obj,
char str_fxn,
u32 addr 
)

Definition at line 625 of file nldr.c.

int nldr_get_rmm_manager ( struct nldr_object nldr,
struct rmm_target_obj **  rmm_mgr 
)

Definition at line 713 of file nldr.c.

int nldr_load ( struct nldr_nodeobject nldr_node_obj,
enum nldr_phase  phase 
)

Definition at line 732 of file nldr.c.

int nldr_unload ( struct nldr_nodeobject nldr_node_obj,
enum nldr_phase  phase 
)

Definition at line 790 of file nldr.c.