Changeset 8e1ea655 in mainline for generic/include/mm/slab.h


Ignore:
Timestamp:
2006-02-05T21:51:19Z (19 years ago)
Author:
Ondrej Palkovsky <ondrap@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
c585827
Parents:
5c9a08b
Message:

Early SLAB initialization, the cpu-cache is initialized later.
If you want to use slab_cache_create befor slab_cpu_enable, add
a flag SLAB_CACHE_MAGDEFERRED.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • generic/include/mm/slab.h

    r5c9a08b r8e1ea655  
    5656#define SLAB_CACHE_NOMAGAZINE 0x1 /**< Do not use per-cpu cache */
    5757#define SLAB_CACHE_SLINSIDE   0x2 /**< Have control structure inside SLAB */
     58/** We add magazine cache later, if we have this flag */
     59#define SLAB_CACHE_MAGDEFERRED (0x4 | SLAB_CACHE_NOMAGAZINE)
    5860
    5961typedef struct {
     
    6365        void *objs[0]; /**< Slots in magazine */
    6466}slab_magazine_t;
     67
     68typedef struct {
     69        slab_magazine_t *current;
     70        slab_magazine_t *last;
     71        SPINLOCK_DECLARE(lock);
     72}slab_mag_cache_t;
     73
    6574
    6675typedef struct {
     
    93102
    94103        /** CPU cache */
    95         struct {
    96                 slab_magazine_t *current;
    97                 slab_magazine_t *last;
    98                 SPINLOCK_DECLARE(lock);
    99         }mag_cache[0];
     104        slab_mag_cache_t *mag_cache;
    100105}slab_cache_t;
    101106
     
    114119/** Initialize SLAB subsytem */
    115120extern void slab_cache_init(void);
     121extern void slab_enable_cpucache(void);
    116122
    117123/* KConsole debug */
     
    121127extern void * kalloc(unsigned int size, int flags);
    122128extern void kfree(void *obj);
    123 
    124129#endif
Note: See TracChangeset for help on using the changeset viewer.