Changeset 7b43e11 in mainline


Ignore:
Timestamp:
2005-09-18T14:35:38Z (19 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
e158717
Parents:
714675b
Message:

Physical memory management work.
Define structures for frame zones and frames.

Add some comments.

Files:
4 edited

Legend:

Unmodified
Added
Removed
  • arch/ia32/include/context.h

    r714675b r7b43e11  
    4242#define SP_DELTA        (8+STACK_ITEM_SIZE)
    4343
     44/*
     45 * Only save registers that must be preserved across
     46 * function calls.
     47 */
    4448struct context {
    4549        __u32 sp;
  • arch/ia64/include/context.h

    r714675b r7b43e11  
    5151        (c)->sp = ((__address) stack) + (size) - SP_DELTA;
    5252
     53/*
     54 * Only save registers that must be preserved across
     55 * function calls.
     56 */
    5357struct context {
    5458
  • include/mm/frame.h

    r714675b r7b43e11  
    3232#include <arch/types.h>
    3333#include <typedefs.h>
     34#include <list.h>
     35#include <synch/spinlock.h>
    3436
    3537#define FRAME_KA        1       /* skip frames conflicting with user address space */
    3638#define FRAME_PANIC     2       /* panic on failure */
     39
     40struct frame_zone {
     41        link_t fz_link;         /**< link to previous and next frame_zone */
     42
     43        spinlock_t lock;        /**< this lock protexts everything below */
     44        link_t free_head;       /**< list of free frames */
     45        link_t busy_head;       /**< list of busy frames */
     46        count_t free_count;     /**< frames in free list */
     47        count_t busy_count;     /**< frames in busy list */
     48        frame_t *frames;        /**< array of frames in this zone */
     49        int flags;
     50};
     51
     52struct frame {
     53        count_t refcount;       /**< when > 0, the frame is in busy list, otherwise the frame is in free list */
     54        link_t link;            /**< link either to frame_zone free or busy list */
     55};
     56
     57extern spinlock_t frame_zone_head_lock;         /**< this lock protects frame_zone_head list */
     58extern link_t frame_zone_head;                  /**< list of all frame_zone's in the system */
    3759
    3860extern count_t frames;
  • include/typedefs.h

    r714675b r7b43e11  
    6464typedef struct chunk chunk_t;
    6565
     66typedef struct frame_zone frame_zone_t;
     67typedef struct frame frame_t;
     68
    6669typedef enum vm_type vm_type_t;
    6770typedef struct vm_area vm_area_t;
Note: See TracChangeset for help on using the changeset viewer.