From f0732bbcbdca67ef8f9444f2aafaf44da81c9e5a Mon Sep 17 00:00:00 2001
From: wangzhengquan <wangzhengquan85@126.com>
Date: 星期六, 01 八月 2020 16:44:00 +0800
Subject: [PATCH] update

---
 src/queue/mm.c |  104 ++++++++++++++++++++++++++--------------------------
 1 files changed, 52 insertions(+), 52 deletions(-)

diff --git a/src/queue/mm.c b/src/queue/mm.c
index 32ec9d4..39aca9e 100644
--- a/src/queue/mm.c
+++ b/src/queue/mm.c
@@ -324,70 +324,70 @@
 /*
  * mm_init - Initialize the memory manager
  */
-bool mm_init2(size_t offset, void **addr)
-{
+// bool mm_init2(size_t offset, void **addr)
+// {
   
-  //宸茬粡鍒濆鍖栬繃浜�
-  SemUtil::dec(mutex);
-  if (shmid != -1){
-    *addr = shmp;
-    SemUtil::inc(mutex);
-    return false;
-  }
+//   //宸茬粡鍒濆鍖栬繃浜�
+//   SemUtil::dec(mutex);
+//   if (shmid != -1){
+//     *addr = shmp;
+//     SemUtil::inc(mutex);
+//     return false;
+//   }
 
-  bool first = true;
+//   bool first = true;
   
   
-  shmid = shmget(SHM_KEY, MAX_HEAP, IPC_CREAT | IPC_EXCL | OBJ_PERMS);
-  if (shmid == -1 && errno == EEXIST) {
-    first = false;
-    shmid  = shmget(SHM_KEY, 0, 0);
-  }
-  if (shmid == -1)
-    err_exit(errno, "mm_init shmget");
-  shmp = shmat(shmid, key_addr, 0);
-  if ((long)shmp == -1)
-    err_exit(errno, "mm_init shmat");
+//   shmid = shmget(SHM_KEY, MAX_HEAP, IPC_CREAT | IPC_EXCL | OBJ_PERMS);
+//   if (shmid == -1 && errno == EEXIST) {
+//     first = false;
+//     shmid  = shmget(SHM_KEY, 0, 0);
+//   }
+//   if (shmid == -1)
+//     err_exit(errno, "mm_init shmget");
+//   shmp = shmat(shmid, key_addr, 0);
+//   if ((long)shmp == -1)
+//     err_exit(errno, "mm_init shmat");
 
-  mem_start_brk = (void*)ALIGN((size_t)((char *)shmp + offset + ALIGNMENT));
-  mem_max_addr = (void *)((char *)shmp+ MAX_HEAP);
-  mem_max_size = (char *)mem_max_addr - (char*)mem_start_brk;
-  mem_brk = mem_start_brk;
-  void *free_listp;
-  /* Create the initial empty heap */
-  int initsize = ALIGN(3 * SIZE_T_SIZE + 2 * PTR_SIZE);
-  heap_listp = (char *)mem_start_brk + initsize - 2 * SIZE_T_SIZE - 2 * PTR_SIZE;
+//   mem_start_brk = (void*)ALIGN((size_t)((char *)shmp + offset + ALIGNMENT));
+//   mem_max_addr = (void *)((char *)shmp+ MAX_HEAP);
+//   mem_max_size = (char *)mem_max_addr - (char*)mem_start_brk;
+//   mem_brk = mem_start_brk;
+//   void *free_listp;
+//   /* Create the initial empty heap */
+//   int initsize = ALIGN(3 * SIZE_T_SIZE + 2 * PTR_SIZE);
+//   heap_listp = (char *)mem_start_brk + initsize - 2 * SIZE_T_SIZE - 2 * PTR_SIZE;
 
-  if(!first) {
-    *addr = shmp;
-    SemUtil::inc(mutex);
-    return first;
-  }
+//   if(!first) {
+//     *addr = shmp;
+//     SemUtil::inc(mutex);
+//     return first;
+//   }
 
  
-  if ((mem_sbrk(initsize)) == (void *) - 1)
-    err_exit(errno, "mm_init mem_sbrk");
+//   if ((mem_sbrk(initsize)) == (void *) - 1)
+//     err_exit(errno, "mm_init mem_sbrk");
   
-  PUT((char *)mem_start_brk + initsize - SIZE_T_SIZE, PACK(0, 1));   /* Epilogue header */
-  /*PUT(HDRP(heap_listp), PACK(initsize - SIZE_T_SIZE, 1));
-  PUT(FTRP(heap_listp), PACK(initsize - SIZE_T_SIZE, 1));*/
+//   PUT((char *)mem_start_brk + initsize - SIZE_T_SIZE, PACK(0, 1));   /* Epilogue header */
+//   /*PUT(HDRP(heap_listp), PACK(initsize - SIZE_T_SIZE, 1));
+//   PUT(FTRP(heap_listp), PACK(initsize - SIZE_T_SIZE, 1));*/
 
-  PUT(HDRP(heap_listp), PACK(initsize - SIZE_T_SIZE, 1));
-  PUT(FTRP(heap_listp), PACK(initsize - SIZE_T_SIZE, 1));
+//   PUT(HDRP(heap_listp), PACK(initsize - SIZE_T_SIZE, 1));
+//   PUT(FTRP(heap_listp), PACK(initsize - SIZE_T_SIZE, 1));
   
-  /**
-   * here the heap_listp can be look as a ancher which concat the header and tail of free-list to form a ring, and the heap_list itself will never be used as a free block
-  */
-  PUT_PTR(SUCCRP(heap_listp), heap_listp);
-  PUT_PTR(PREDRP(heap_listp), heap_listp);
-  /* Extend the empty heap with a free block of CHUNKSIZE bytes */
-  if ((free_listp = extend_heap(mem_max_size - initsize - ALIGNMENT)) == NULL)
-    err_exit(errno, "mm_init extend_heap");
+//   /**
+//    * here the heap_listp can be look as a ancher which concat the header and tail of free-list to form a ring, and the heap_list itself will never be used as a free block
+//   */
+//   PUT_PTR(SUCCRP(heap_listp), heap_listp);
+//   PUT_PTR(PREDRP(heap_listp), heap_listp);
+//   /* Extend the empty heap with a free block of CHUNKSIZE bytes */
+//   if ((free_listp = extend_heap(mem_max_size - initsize - ALIGNMENT)) == NULL)
+//     err_exit(errno, "mm_init extend_heap");
 
-  *addr = shmp;
-  SemUtil::inc(mutex);
-  return first;
-}
+//   *addr = shmp;
+//   SemUtil::inc(mutex);
+//   return first;
+// }
 
  
 

--
Gitblit v1.8.0