use rt_list in rtservice.h
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2091 bbd45198-f89e-11dd-88c7-29a3b14d5316
This commit is contained in:
parent
5b80e102e0
commit
06d45f0c42
|
@ -14,7 +14,6 @@
|
|||
|
||||
#include <rtthread.h>
|
||||
#include <dfs_fs.h>
|
||||
#include "list.h"
|
||||
|
||||
#include "mmcsd_core.h"
|
||||
#include "mmcsd_cmd.h"
|
||||
|
@ -359,7 +358,7 @@ rt_int32_t rt_mmcsd_blk_probe(struct rt_mmcsd_card *card)
|
|||
|
||||
rt_device_register(&blk_dev->dev, dname,
|
||||
RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_REMOVABLE | RT_DEVICE_FLAG_STANDALONE);
|
||||
list_insert_after(&blk_devices, &blk_dev->list);
|
||||
rt_list_insert_after(&blk_devices, &blk_dev->list);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -396,7 +395,7 @@ rt_int32_t rt_mmcsd_blk_probe(struct rt_mmcsd_card *card)
|
|||
|
||||
rt_device_register(&blk_dev->dev, "sd0",
|
||||
RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_REMOVABLE | RT_DEVICE_FLAG_STANDALONE);
|
||||
list_insert_after(&blk_devices, &blk_dev->list);
|
||||
rt_list_insert_after(&blk_devices, &blk_dev->list);
|
||||
|
||||
break;
|
||||
}
|
||||
|
@ -428,11 +427,11 @@ void rt_mmcsd_blk_remove(struct rt_mmcsd_card *card)
|
|||
|
||||
for (l = (&blk_devices)->next; l != &blk_devices; l = l->next)
|
||||
{
|
||||
blk_dev = (struct mmcsd_blk_device *)list_entry(l, struct mmcsd_blk_device, list);
|
||||
blk_dev = (struct mmcsd_blk_device *)rt_list_entry(l, struct mmcsd_blk_device, list);
|
||||
if (blk_dev->card == card)
|
||||
{
|
||||
rt_device_unregister(&blk_dev->dev);
|
||||
list_remove(&blk_dev->list);
|
||||
rt_list_remove(&blk_dev->list);
|
||||
rt_free(blk_dev);
|
||||
}
|
||||
}
|
||||
|
@ -440,5 +439,5 @@ void rt_mmcsd_blk_remove(struct rt_mmcsd_card *card)
|
|||
|
||||
void rt_mmcsd_blk_init(void)
|
||||
{
|
||||
list_init(&blk_devices);
|
||||
rt_list_init(&blk_devices);
|
||||
}
|
||||
|
|
|
@ -1,106 +0,0 @@
|
|||
/*
|
||||
* File : list.h
|
||||
* This file is part of RT-Thread RTOS
|
||||
* COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rt-thread.org/license/LICENSE
|
||||
*
|
||||
* Change Logs:
|
||||
* Date Author Notes
|
||||
* 2011-01-15 weety copy from kservice APIs
|
||||
*/
|
||||
|
||||
#ifndef __RT_LIST_H__
|
||||
#define __RT_LIST_H__
|
||||
|
||||
#include <rtthread.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @addtogroup list
|
||||
*/
|
||||
/*@{*/
|
||||
|
||||
/**
|
||||
* @brief initialize a list
|
||||
*
|
||||
* @param l list to be initialized
|
||||
*/
|
||||
rt_inline void list_init(rt_list_t *l)
|
||||
{
|
||||
l->next = l->prev = l;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief insert a node after a list
|
||||
*
|
||||
* @param l list to insert it
|
||||
* @param n new node to be inserted
|
||||
*/
|
||||
rt_inline void list_insert_after(rt_list_t *l, rt_list_t *n)
|
||||
{
|
||||
l->next->prev = n;
|
||||
n->next = l->next;
|
||||
|
||||
l->next = n;
|
||||
n->prev = l;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief insert a node before a list
|
||||
*
|
||||
* @param n new node to be inserted
|
||||
* @param l list to insert it
|
||||
*/
|
||||
rt_inline void list_insert_before(rt_list_t *l, rt_list_t *n)
|
||||
{
|
||||
l->prev->next = n;
|
||||
n->prev = l->prev;
|
||||
|
||||
l->prev = n;
|
||||
n->next = l;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief remove node from list.
|
||||
* @param n the node to remove from the list.
|
||||
*/
|
||||
rt_inline void list_remove(rt_list_t *n)
|
||||
{
|
||||
n->next->prev = n->prev;
|
||||
n->prev->next = n->next;
|
||||
|
||||
n->next = n->prev = n;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief tests whether a list is empty
|
||||
* @param l the list to test.
|
||||
*/
|
||||
rt_inline int list_isempty(const rt_list_t *l)
|
||||
{
|
||||
return l->next == l;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief get the struct for this entry
|
||||
* @param node the entry point
|
||||
* @param type the type of structure
|
||||
* @param member the name of list in structure
|
||||
*/
|
||||
#define list_entry(node, type, member) \
|
||||
((type *)((char *)(node) - (unsigned long)(&((type *)0)->member)))
|
||||
|
||||
/*@}*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
@ -14,7 +14,6 @@
|
|||
|
||||
#include "mmcsd_core.h"
|
||||
#include "mmcsd_cmd.h"
|
||||
#include "list.h"
|
||||
|
||||
#ifndef RT_SDIO_STACK_SIZE
|
||||
#define RT_SDIO_STACK_SIZE 512
|
||||
|
@ -743,16 +742,16 @@ static rt_int32_t sdio_register_card(struct rt_mmcsd_card *card)
|
|||
}
|
||||
|
||||
sc->card = card;
|
||||
list_insert_after(&sdio_cards, &sc->list);
|
||||
rt_list_insert_after(&sdio_cards, &sc->list);
|
||||
|
||||
if (list_isempty(&sdio_drivers))
|
||||
if (rt_list_isempty(&sdio_drivers))
|
||||
{
|
||||
goto out;
|
||||
}
|
||||
|
||||
for (l = (&sdio_drivers)->next; l != &sdio_drivers; l = l->next)
|
||||
{
|
||||
sd = (struct sdio_driver *)list_entry(l, struct sdio_driver, list);
|
||||
sd = (struct sdio_driver *)rt_list_entry(l, struct sdio_driver, list);
|
||||
if (sdio_match_card(card, sd->drv->id))
|
||||
{
|
||||
sd->drv->probe(card);
|
||||
|
@ -1260,7 +1259,7 @@ static struct rt_mmcsd_card *sdio_match_driver(struct rt_sdio_device_id *id)
|
|||
|
||||
for (l = (&sdio_cards)->next; l != &sdio_cards; l = l->next)
|
||||
{
|
||||
sc = (struct sdio_card *)list_entry(l, struct sdio_card, list);
|
||||
sc = (struct sdio_card *)rt_list_entry(l, struct sdio_card, list);
|
||||
card = sc->card;
|
||||
|
||||
if (sdio_match_card(card, id))
|
||||
|
@ -1284,9 +1283,9 @@ rt_int32_t sdio_register_driver(struct rt_sdio_driver *driver)
|
|||
return -RT_ENOMEM;
|
||||
}
|
||||
|
||||
list_insert_after(&sdio_drivers, &sd->list);
|
||||
rt_list_insert_after(&sdio_drivers, &sd->list);
|
||||
|
||||
if (!list_isempty(&sdio_cards))
|
||||
if (!rt_list_isempty(&sdio_cards))
|
||||
{
|
||||
card = sdio_match_driver(driver->id);
|
||||
if (card != RT_NULL)
|
||||
|
@ -1305,11 +1304,11 @@ rt_int32_t sdio_unregister_driver(struct rt_sdio_driver *driver)
|
|||
struct rt_mmcsd_card *card;
|
||||
|
||||
|
||||
list_insert_after(&sdio_drivers, &sd->list);
|
||||
rt_list_insert_after(&sdio_drivers, &sd->list);
|
||||
|
||||
for (l = (&sdio_drivers)->next; l != &sdio_drivers; l = l->next)
|
||||
{
|
||||
sd = (struct sdio_driver *)list_entry(l, struct sdio_driver, list);
|
||||
sd = (struct sdio_driver *)rt_list_entry(l, struct sdio_driver, list);
|
||||
if (sd->drv != driver)
|
||||
{
|
||||
sd = RT_NULL;
|
||||
|
@ -1322,13 +1321,13 @@ rt_int32_t sdio_unregister_driver(struct rt_sdio_driver *driver)
|
|||
return -RT_ERROR;
|
||||
}
|
||||
|
||||
if (!list_isempty(&sdio_cards))
|
||||
if (!rt_list_isempty(&sdio_cards))
|
||||
{
|
||||
card = sdio_match_driver(driver->id);
|
||||
if (card != RT_NULL)
|
||||
{
|
||||
driver->remove(card);
|
||||
list_remove(&sd->list);
|
||||
rt_list_remove(&sd->list);
|
||||
rt_free(sd);
|
||||
}
|
||||
}
|
||||
|
@ -1339,7 +1338,7 @@ rt_int32_t sdio_unregister_driver(struct rt_sdio_driver *driver)
|
|||
|
||||
void rt_sdio_init(void)
|
||||
{
|
||||
list_init(&sdio_cards);
|
||||
list_init(&sdio_drivers);
|
||||
rt_list_init(&sdio_cards);
|
||||
rt_list_init(&sdio_drivers);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue