Changeset 2b50d7c in mainline


Ignore:
Timestamp:
2005-05-28T20:13:25Z (20 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
747a2476
Parents:
87cb9e2
Message:

IA-64 work.
Redefine FRAME_SIZE to "(16*1024)" instead of "2*4096". Note that the latter definition was wrong because of the lack of "()".
Take panic_printf(), cpu_halt() and memsetb() out of fake.s and implement them properly in asm.S.
Move ski_init_console() from arch_post_mm_init() to arch_pre_mm_init().
In start.S, write r0 to ar.bspstore.

Janitorial fixes.
Add count_t type.
Replace several occurrences of int and u32 by count_t or size_t.
Shorten several panic strings.

Files:
11 edited

Legend:

Unmodified
Added
Removed
  • arch/ia64/include/mm/frame.h

    r87cb9e2 r2b50d7c  
    3030#define __ia64_FRAME_H__
    3131
    32 #define FRAME_SIZE              2*4096
     32#define FRAME_SIZE              (16*1024)
    3333
    3434extern void frame_arch_init(void);
  • arch/ia64/src/asm.S

    r87cb9e2 r2b50d7c  
    4343memcopy:
    4444        br _memcopy
     45
     46.global memsetb
     47memsetb:
     48        br _memsetb
     49
     50.global cpu_halt
     51cpu_halt:
     52        br cpu_halt
     53
     54.global panic_printf
     55panic_printf:
     56        {
     57                br.call.sptk.many b0=printf
     58        }
     59        br cpu_halt
  • arch/ia64/src/fake.s

    r87cb9e2 r2b50d7c  
    3535.global arch_late_init
    3636.global cpu_arch_init
    37 .global cpu_halt
    3837.global cpu_identify
    3938.global cpu_print_report
     
    4544.global frame_arch_init
    4645.global map_page_to_frame
    47 .global memsetb
    48 .global panic_printf
    4946
    5047before_thread_runs_arch:
     
    5451arch_late_init:
    5552cpu_arch_init:
    56 cpu_halt:
    5753cpu_identify:
    5854cpu_print_report:
     
    6460frame_arch_init:
    6561map_page_to_frame:
    66 memsetb:
    67 panic_printf:
    6862        br.ret.sptk.many b0
    6963
  • arch/ia64/src/ia64.c

    r87cb9e2 r2b50d7c  
    3232void arch_pre_mm_init(void)
    3333{
     34        ski_init_console();
    3435}
    3536
    3637void arch_post_mm_init(void)
    3738{
    38         ski_init_console();
    3939}
  • arch/ia64/src/start.S

    r87cb9e2 r2b50d7c  
    4141        # initialize register stack
    4242        mov ar.rsc = r0
     43        mov ar.bspstore = r0
    4344        loadrs
    4445
  • include/config.h

    r87cb9e2 r2b50d7c  
    3939struct config {
    4040        __address base;
    41         __u32 memory_size;
    42         __u32 kernel_size;
     41        size_t memory_size;
     42        size_t kernel_size;
    4343
    44         int cpu_count;
    45         volatile int cpu_active;
     44        count_t cpu_count;
     45        volatile count_t cpu_active;
    4646};
    4747
  • include/mm/frame.h

    r87cb9e2 r2b50d7c  
    3131
    3232#include <arch/types.h>
     33#include <typedefs.h>
    3334
    3435#define FRAME_KA        1       /* skip frames conflicting with user address space */
    3536#define FRAME_PANIC     2       /* panic on failure */
    3637
    37 extern __u32 frames;
    38 extern __u32 frames_free;
     38extern count_t frames;
     39extern count_t frames_free;
    3940
    40 extern __u32 kernel_frames;
    41 extern __u32 kernel_frames_free;
     41extern count_t kernel_frames;
     42extern count_t kernel_frames_free;
    4243
    4344extern __u8 *frame_bitmap;
    44 extern __u32 frame_bitmap_octets;
     45extern count_t frame_bitmap_octets;
    4546
    4647extern __u8 *frame_kernel_bitmap;
  • include/mm/heap.h

    r87cb9e2 r2b50d7c  
    4141};
    4242
    43 extern void heap_init(__address heap, __u32 size);
     43extern void heap_init(__address heap, size_t size);
    4444
    4545extern void *malloc(size_t size);
  • include/typedefs.h

    r87cb9e2 r2b50d7c  
    3636
    3737typedef unsigned int size_t;
     38typedef unsigned int count_t;
    3839
    3940typedef struct config config_t;
  • src/mm/frame.c

    r87cb9e2 r2b50d7c  
    4343#include <synch/spinlock.h>
    4444
    45 __u32 frames;
    46 __u32 frames_free;
     45count_t frames = 0;
     46count_t frames_free;
    4747
    4848__u8 *frame_bitmap;
    49 __u32 frame_bitmap_octets;
     49count_t frame_bitmap_octets;
    5050
    5151/*
     
    5454 */
    5555__u8 *frame_kernel_bitmap;
    56 __u32 kernel_frames;
    57 __u32 kernel_frames_free;
     56count_t kernel_frames;
     57count_t kernel_frames_free;
    5858
    5959static spinlock_t framelock;
     
    6969                frames = config.memory_size / FRAME_SIZE;
    7070                frame_bitmap_octets = frames / 8 + (frames % 8 > 0);
    71 
    7271                frame_bitmap = (__u8 *) malloc(frame_bitmap_octets);
    7372                if (!frame_bitmap)
     
    111110        pri_t pri;
    112111        __u8 **frame_bitmap_ptr = &frame_bitmap;
    113         __u32 *frames_ptr = &frames, *frames_free_ptr = &frames_free;
     112        count_t *frames_ptr = &frames, *frames_free_ptr = &frames_free;
    114113       
    115114        if (flags & FRAME_KA) {
     
    166165        pri_t pri;
    167166        __u32 frame;
    168         __u32 *frames_free_ptr = &frames_free, *frames_ptr = &frames;
     167        count_t *frames_free_ptr = &frames_free, *frames_ptr = &frames;
    169168        __u8 **frame_bitmap_ptr = &frame_bitmap;
    170169
     
    196195                        }       
    197196                }
    198                 else panic("frame_free: frame already free\n");
    199         }
    200         else panic("frame_free: frame number too big\n");
     197                else panic("frame already free\n");
     198        }
     199        else panic("frame number too big\n");
    201200       
    202201        spinlock_unlock(&framelock);
     
    212211        pri_t pri;
    213212        __u32 frame;
    214         __u32 *frames_ptr = &frames, *frames_free_ptr = &frames_free;
     213        count_t *frames_ptr = &frames, *frames_free_ptr = &frames_free;
    215214        __u8 **frame_bitmap_ptr = &frame_bitmap;
    216215       
  • src/mm/heap.c

    r87cb9e2 r2b50d7c  
    4343static spinlock_t heaplock;
    4444
    45 void heap_init(__address heap, __u32 size)
     45void heap_init(__address heap, size_t size)
    4646{
    4747        spinlock_initialize(&heaplock);
     
    6363
    6464        if (size == 0)
    65                 panic("malloc: zero-size allocation request");
     65                panic("zero-size allocation request");
    6666               
    6767        x = chunk0;
Note: See TracChangeset for help on using the changeset viewer.