Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 31de2780 authored by Ionut Nicu's avatar Ionut Nicu Committed by Omar Ramirez Luna
Browse files

staging: tidspbridge: remove gs memory allocator



Remove unnecessary wrappers for linux kernel memory
allocation primitives.

Signed-off-by: default avatarIonut Nicu <ionut.nicu@mindbit.ro>
Signed-off-by: default avatarOmar Ramirez Luna <omar.ramirez@ti.com>
parent 74c2d1f6
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
obj-$(CONFIG_TIDSPBRIDGE)	+= bridgedriver.o

libgen = gen/gb.o gen/gs.o gen/gh.o gen/uuidutil.o
libgen = gen/gb.o gen/gh.o gen/uuidutil.o
libcore = core/chnl_sm.o core/msg_sm.o core/io_sm.o core/tiomap3430.o \
		core/tiomap3430_pwr.o core/tiomap_io.o \
		core/ue_deh.o core/wdt.o core/dsp-clock.o core/sync.o
+5 −6
Original line number Diff line number Diff line
@@ -19,7 +19,6 @@
/*  ----------------------------------- DSP/BIOS Bridge */
#include <linux/types.h>
/*  ----------------------------------- This */
#include <dspbridge/gs.h>
#include <dspbridge/gb.h>

struct gb_t_map {
@@ -52,17 +51,17 @@ struct gb_t_map *gb_create(u32 len)
{
	struct gb_t_map *map;
	u32 i;
	map = (struct gb_t_map *)gs_alloc(sizeof(struct gb_t_map));
	map = kzalloc(sizeof(struct gb_t_map), GFP_KERNEL);
	if (map != NULL) {
		map->len = len;
		map->wcnt = len / BITS_PER_LONG + 1;
		map->words = (u32 *) gs_alloc(map->wcnt * sizeof(u32));
		map->words = kzalloc(map->wcnt * sizeof(u32), GFP_KERNEL);
		if (map->words != NULL) {
			for (i = 0; i < map->wcnt; i++)
				map->words[i] = 0L;

		} else {
			gs_frees(map, sizeof(struct gb_t_map));
			kfree(map);
			map = NULL;
		}
	}
@@ -78,8 +77,8 @@ struct gb_t_map *gb_create(u32 len)

void gb_delete(struct gb_t_map *map)
{
	gs_frees(map->words, map->wcnt * sizeof(u32));
	gs_frees(map, sizeof(struct gb_t_map));
	kfree(map->words);
	kfree(map);
}

/*
+9 −29
Original line number Diff line number Diff line
@@ -17,9 +17,6 @@
#include <linux/types.h>

#include <dspbridge/host_os.h>

#include <dspbridge/gs.h>

#include <dspbridge/gh.h>

struct element {
@@ -37,8 +34,6 @@ struct gh_t_hash_tab {
};

static void noop(void *p);
static s32 cur_init;
static void myfree(void *ptr, s32 size);

/*
 *  ======== gh_create ========
@@ -51,8 +46,7 @@ struct gh_t_hash_tab *gh_create(u16 max_bucket, u16 val_size,
{
	struct gh_t_hash_tab *hash_tab;
	u16 i;
	hash_tab =
	    (struct gh_t_hash_tab *)gs_alloc(sizeof(struct gh_t_hash_tab));
	hash_tab = kzalloc(sizeof(struct gh_t_hash_tab), GFP_KERNEL);
	if (hash_tab == NULL)
		return NULL;
	hash_tab->max_bucket = max_bucket;
@@ -62,7 +56,7 @@ struct gh_t_hash_tab *gh_create(u16 max_bucket, u16 val_size,
	hash_tab->delete = delete == NULL ? noop : delete;

	hash_tab->buckets = (struct element **)
	    gs_alloc(sizeof(struct element *) * max_bucket);
	    kzalloc(sizeof(struct element *) * max_bucket, GFP_KERNEL);
	if (hash_tab->buckets == NULL) {
		gh_delete(hash_tab);
		return NULL;
@@ -89,17 +83,14 @@ void gh_delete(struct gh_t_hash_tab *hash_tab)
				     elem = next) {
					next = elem->next;
					(*hash_tab->delete) (elem->data);
					myfree(elem,
					       sizeof(struct element) - 1 +
					       hash_tab->val_size);
					kfree(elem);
				}
			}

			myfree(hash_tab->buckets, sizeof(struct element *)
			       * hash_tab->max_bucket);
			kfree(hash_tab->buckets);
		}

		myfree(hash_tab, sizeof(struct gh_t_hash_tab));
		kfree(hash_tab);
	}
}

@@ -109,9 +100,7 @@ void gh_delete(struct gh_t_hash_tab *hash_tab)

void gh_exit(void)
{
	if (cur_init-- == 1)
		gs_exit();

	/* Do nothing */
}

/*
@@ -138,8 +127,7 @@ void *gh_find(struct gh_t_hash_tab *hash_tab, void *key)

void gh_init(void)
{
	if (cur_init++ == 0)
		gs_init();
	/* Do nothing */
}

/*
@@ -152,8 +140,8 @@ void *gh_insert(struct gh_t_hash_tab *hash_tab, void *key, void *value)
	u16 i;
	char *src, *dst;

	elem = (struct element *)gs_alloc(sizeof(struct element) - 1 +
					  hash_tab->val_size);
	elem = kzalloc(sizeof(struct element) - 1 + hash_tab->val_size,
			GFP_KERNEL);
	if (elem != NULL) {

		dst = (char *)elem->data;
@@ -180,14 +168,6 @@ static void noop(void *p)
	p = p;			/* stifle compiler warning */
}

/*
 *  ======== myfree ========
 */
static void myfree(void *ptr, s32 size)
{
	gs_free(ptr);
}

#ifdef CONFIG_TIDSPBRIDGE_BACKTRACE
/**
 * gh_iterate() - This function goes through all the elements in the hash table
+0 −88
Original line number Diff line number Diff line
/*
 * gs.c
 *
 * DSP-BIOS Bridge driver support functions for TI OMAP processors.
 *
 * General storage memory allocator services.
 *
 * 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.
 */

#include <linux/types.h>
/*  ----------------------------------- DSP/BIOS Bridge */
#include <dspbridge/dbdefs.h>

/*  ----------------------------------- This */
#include <dspbridge/gs.h>

#include <linux/slab.h>

/*  ----------------------------------- Globals */
static u32 cumsize;

/*
 *  ======== gs_alloc ========
 *  purpose:
 *      Allocates memory of the specified size.
 */
void *gs_alloc(u32 size)
{
	void *p;

	p = kzalloc(size, GFP_KERNEL);
	if (p == NULL)
		return NULL;
	cumsize += size;
	return p;
}

/*
 *  ======== gs_exit ========
 *  purpose:
 *      Discontinue the usage of the GS module.
 */
void gs_exit(void)
{
	/* Do nothing */
}

/*
 *  ======== gs_free ========
 *  purpose:
 *      Frees the memory.
 */
void gs_free(void *ptr)
{
	kfree(ptr);
	/* ack! no size info */
	/* cumsize -= size; */
}

/*
 *  ======== gs_frees ========
 *  purpose:
 *      Frees the memory.
 */
void gs_frees(void *ptr, u32 size)
{
	kfree(ptr);
	cumsize -= size;
}

/*
 *  ======== gs_init ========
 *  purpose:
 *      Initializes the GS module.
 */
void gs_init(void)
{
	/* Do nothing */
}
+0 −59
Original line number Diff line number Diff line
/*
 * gs.h
 *
 * DSP-BIOS Bridge driver support functions for TI OMAP processors.
 *
 * Memory allocation/release wrappers.  This module allows clients to
 * avoid OS spacific issues related to memory allocation.  It also provides
 * simple diagnostic capabilities to assist in the detection of memory
 * leaks.
 *
 * 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 GS_
#define GS_

/*
 *  ======== gs_alloc ========
 *  Alloc size bytes of space.  Returns pointer to space
 *  allocated, otherwise NULL.
 */
extern void *gs_alloc(u32 size);

/*
 *  ======== gs_exit ========
 *  Module exit.  Do not change to "#define gs_init()"; in
 *  some environments this operation must actually do some work!
 */
extern void gs_exit(void);

/*
 *  ======== gs_free ========
 *  Free space allocated by gs_alloc() or GS_calloc().
 */
extern void gs_free(void *ptr);

/*
 *  ======== gs_frees ========
 *  Free space allocated by gs_alloc() or GS_calloc() and assert that
 *  the size of the allocation is size bytes.
 */
extern void gs_frees(void *ptr, u32 size);

/*
 *  ======== gs_init ========
 *  Module initialization.  Do not change to "#define gs_init()"; in
 *  some environments this operation must actually do some work!
 */
extern void gs_init(void);

#endif /*GS_ */