diff --git a/LibOS/shim/include/shim_fs.h b/LibOS/shim/include/shim_fs.h index ec2c8fec..48f6d35d 100644 --- a/LibOS/shim/include/shim_fs.h +++ b/LibOS/shim/include/shim_fs.h @@ -168,7 +168,7 @@ struct shim_dentry { mode_t type; mode_t mode; - LOCKTYPE lock; + struct shim_lock lock; REFTYPE ref_count; }; @@ -339,7 +339,7 @@ int walk_mounts (int (*walk) (struct shim_mount * mount, void * arg), /* functions for dcache supports */ int init_dcache (void); -extern LOCKTYPE dcache_lock; +extern struct shim_lock dcache_lock; /* check permission (specified by mask) of a dentry. If force is not set, * permission is considered granted on invalid dentries */ diff --git a/LibOS/shim/include/shim_handle.h b/LibOS/shim/include/shim_handle.h index bc330b1b..bde1964c 100644 --- a/LibOS/shim/include/shim_handle.h +++ b/LibOS/shim/include/shim_handle.h @@ -69,7 +69,7 @@ enum shim_file_type { }; struct shim_file_data { - LOCKTYPE lock; + struct shim_lock lock; struct atomic_int version; bool queried; enum shim_file_type type; @@ -365,7 +365,7 @@ struct shim_handle { int acc_mode; IDTYPE owner; REFTYPE opened; - LOCKTYPE lock; + struct shim_lock lock; }; /* allocating / manage handle */ @@ -390,8 +390,8 @@ struct shim_handle_map { FDTYPE fd_top; /* refrence count and lock */ - REFTYPE ref_count; - LOCKTYPE lock; + REFTYPE ref_count; + struct shim_lock lock; /* An array of file descriptor belong to this mapping */ struct shim_fd_handle ** map; diff --git a/LibOS/shim/include/shim_internal.h b/LibOS/shim/include/shim_internal.h index 05f1e192..7c1d18a7 100644 --- a/LibOS/shim/include/shim_internal.h +++ b/LibOS/shim/include/shim_internal.h @@ -475,14 +475,14 @@ static inline void enable_preempt (shim_tcb_t * tcb) #define DEBUG_LOCK 0 -static inline bool __lock_created(LOCKTYPE * l) +static inline bool __lock_created(struct shim_lock* l) { return l->lock != NULL; } #define lock_created(l) __lock_created(&(l)) -static inline void __clear_lock(LOCKTYPE * l) +static inline void __clear_lock(struct shim_lock* l) { l->lock = NULL; l->owner = 0; @@ -490,7 +490,7 @@ static inline void __clear_lock(LOCKTYPE * l) #define clear_lock(l) __clear_lock(&(l)) -static inline void __create_lock(LOCKTYPE * l) +static inline void __create_lock(struct shim_lock* l) { l->lock = DkMutexCreate(0); /* l->owner = LOCK_FREE; */ @@ -499,14 +499,14 @@ static inline void __create_lock(LOCKTYPE * l) #define create_lock(l) __create_lock(&(l)) -static inline void __destroy_lock(LOCKTYPE * l) +static inline void __destroy_lock(struct shim_lock* l) { DkObjectClose(l->lock); } #define destroy_lock(l) __destroy_lock(&(l)) -static inline void ____try_create_lock(LOCKTYPE * l) +static inline void ____try_create_lock(struct shim_lock* l) { if (!__lock_created(l)) __create_lock(l); @@ -516,11 +516,11 @@ static inline void ____try_create_lock(LOCKTYPE * l) #if DEBUG_LOCK == 1 # define lock(l) __lock(&(l), #l, __FILE__, __LINE__) -static inline void __lock (LOCKTYPE * l, +static inline void __lock (struct shim_lock* l, const char * name, const char * file, int line) #else # define lock(l) __lock(&(l)) -static inline void __lock (LOCKTYPE * l) +static inline void __lock (struct shim_lock* l) #endif { if (!lock_enabled || !l->lock) @@ -542,11 +542,11 @@ static inline void __lock (LOCKTYPE * l) #if DEBUG_LOCK == 1 # define unlock(l) __unlock(&(l), #l, __FILE__, __LINE__) -static inline void __unlock (LOCKTYPE * l, +static inline void __unlock (struct shim_lock* l, const char * name, const char * file, int line) #else # define unlock(l) __unlock(&(l)) -static inline void __unlock (LOCKTYPE * l) +static inline void __unlock (struct shim_lock* l) #endif { if (!lock_enabled || !l->lock) @@ -563,7 +563,7 @@ static inline void __unlock (LOCKTYPE * l) enable_preempt(tcb); } -static inline bool __locked (LOCKTYPE * l) +static inline bool __locked (struct shim_lock* l) { if (!lock_enabled || !l->lock) return false; @@ -576,7 +576,7 @@ static inline bool __locked (LOCKTYPE * l) #define DEBUG_MASTER_LOCK 0 -extern LOCKTYPE __master_lock; +extern struct shim_lock __master_lock; #if DEBUG_MASTER_LOCK == 1 # define master_lock() \ @@ -594,7 +594,7 @@ extern LOCKTYPE __master_lock; # define master_unlock() do { unlock(__master_lock); } while (0) #endif -static inline void create_lock_runtime (LOCKTYPE * l) +static inline void create_lock_runtime (struct shim_lock* l) { if (!lock_created(*l)) { master_lock(); diff --git a/LibOS/shim/include/shim_ipc.h b/LibOS/shim/include/shim_ipc.h index 76585235..56f382b2 100644 --- a/LibOS/shim/include/shim_ipc.h +++ b/LibOS/shim/include/shim_ipc.h @@ -49,7 +49,7 @@ enum { PID_NS, SYSV_NS, TOTAL_NS }; struct shim_process { IDTYPE vmid; - LOCKTYPE lock; + struct shim_lock lock; int exit_code; struct shim_ipc_info * self, * parent; struct shim_ipc_info * ns[TOTAL_NS]; @@ -97,7 +97,7 @@ struct shim_ipc_port { LIST_TYPE(shim_ipc_port) hlist; LIST_TYPE(shim_ipc_port) list; LISTP_TYPE(shim_ipc_msg_obj) msgs; - LOCKTYPE msgs_lock; + struct shim_lock msgs_lock; port_fini fini[MAX_IPC_PORT_FINI_CB]; diff --git a/LibOS/shim/include/shim_thread.h b/LibOS/shim/include/shim_thread.h index 270c588a..ed8be015 100644 --- a/LibOS/shim/include/shim_thread.h +++ b/LibOS/shim/include/shim_thread.h @@ -89,7 +89,7 @@ struct shim_thread { void * frameptr; REFTYPE ref_count; - LOCKTYPE lock; + struct shim_lock lock; #ifdef PROFILE unsigned long exit_time; @@ -112,7 +112,7 @@ struct shim_simple_thread { LIST_TYPE(shim_simple_thread) list; REFTYPE ref_count; - LOCKTYPE lock; + struct shim_lock lock; #ifdef PROFILE unsigned long exit_time; @@ -246,7 +246,7 @@ static inline void thread_wakeup (struct shim_thread * thread) DkEventSet(thread->scheduler_event); } -extern LOCKTYPE thread_list_lock; +extern struct shim_lock thread_list_lock; struct shim_thread * __lookup_thread (IDTYPE tid); struct shim_thread * lookup_thread (IDTYPE tid); diff --git a/LibOS/shim/include/shim_types.h b/LibOS/shim/include/shim_types.h index a002cd55..0b4d67e7 100644 --- a/LibOS/shim/include/shim_types.h +++ b/LibOS/shim/include/shim_types.h @@ -476,10 +476,10 @@ typedef struct atomic_int REFTYPE; #include -typedef struct shim_lock { +struct shim_lock { PAL_HANDLE lock; IDTYPE owner; -} LOCKTYPE; +}; typedef struct shim_aevent { PAL_HANDLE event; diff --git a/LibOS/shim/src/bookkeep/shim_handle.c b/LibOS/shim/src/bookkeep/shim_handle.c index c20c7d58..76b99c3f 100644 --- a/LibOS/shim/src/bookkeep/shim_handle.c +++ b/LibOS/shim/src/bookkeep/shim_handle.c @@ -32,7 +32,7 @@ #include #include -static LOCKTYPE handle_mgr_lock; +static struct shim_lock handle_mgr_lock; #define HANDLE_MGR_ALLOC 32 diff --git a/LibOS/shim/src/bookkeep/shim_thread.c b/LibOS/shim/src/bookkeep/shim_thread.c index df8203ad..65ec8633 100644 --- a/LibOS/shim/src/bookkeep/shim_thread.c +++ b/LibOS/shim/src/bookkeep/shim_thread.c @@ -39,7 +39,7 @@ static IDTYPE tid_alloc_idx __attribute_migratable = 0; static LISTP_TYPE(shim_thread) thread_list = LISTP_INIT; DEFINE_LISTP(shim_simple_thread); static LISTP_TYPE(shim_simple_thread) simple_thread_list = LISTP_INIT; -LOCKTYPE thread_list_lock; +struct shim_lock thread_list_lock; static IDTYPE internal_tid_alloc_idx = INTERNAL_TID_BASE; diff --git a/LibOS/shim/src/bookkeep/shim_vma.c b/LibOS/shim/src/bookkeep/shim_vma.c index d1776979..dc5537f3 100644 --- a/LibOS/shim/src/bookkeep/shim_vma.c +++ b/LibOS/shim/src/bookkeep/shim_vma.c @@ -113,7 +113,7 @@ static MEM_MGR vma_mgr = NULL; */ DEFINE_LISTP(shim_vma); static LISTP_TYPE(shim_vma) vma_list = LISTP_INIT; -static LOCKTYPE vma_list_lock; +static struct shim_lock vma_list_lock; /* * Return true if [s, e) is exactly the area represented by vma. diff --git a/LibOS/shim/src/fs/proc/ipc-thread.c b/LibOS/shim/src/fs/proc/ipc-thread.c index 4d9990c4..13600146 100644 --- a/LibOS/shim/src/fs/proc/ipc-thread.c +++ b/LibOS/shim/src/fs/proc/ipc-thread.c @@ -195,7 +195,7 @@ static struct pid_status_cache { struct pid_status * status; } * pid_status_cache; -static LOCKTYPE status_lock; +static struct shim_lock status_lock; static int proc_match_ipc_thread (const char * name) { diff --git a/LibOS/shim/src/fs/shim_dcache.c b/LibOS/shim/src/fs/shim_dcache.c index 4d130910..827c866c 100644 --- a/LibOS/shim/src/fs/shim_dcache.c +++ b/LibOS/shim/src/fs/shim_dcache.c @@ -32,7 +32,7 @@ #include -LOCKTYPE dcache_lock; +struct shim_lock dcache_lock; #define DCACHE_MGR_ALLOC 64 #define PAGE_SIZE allocsize diff --git a/LibOS/shim/src/fs/shim_fs.c b/LibOS/shim/src/fs/shim_fs.c index 289a3733..008027bc 100644 --- a/LibOS/shim/src/fs/shim_fs.c +++ b/LibOS/shim/src/fs/shim_fs.c @@ -58,7 +58,7 @@ struct shim_mount * builtin_fs [NUM_BUILTIN_FS] = { &epoll_builtin_fs, }; -static LOCKTYPE mount_mgr_lock; +static struct shim_lock mount_mgr_lock; #define system_lock() lock(mount_mgr_lock) #define system_unlock() unlock(mount_mgr_lock) @@ -73,7 +73,7 @@ static MEM_MGR mount_mgr = NULL; DEFINE_LISTP(shim_mount); /* Links to mount->list */ static LISTP_TYPE(shim_mount) mount_list; -static LOCKTYPE mount_list_lock; +static struct shim_lock mount_list_lock; int init_fs (void) { diff --git a/LibOS/shim/src/ipc/shim_ipc.c b/LibOS/shim/src/ipc/shim_ipc.c index 5faca8ab..98bc1be8 100644 --- a/LibOS/shim/src/ipc/shim_ipc.c +++ b/LibOS/shim/src/ipc/shim_ipc.c @@ -44,7 +44,7 @@ static MEM_MGR ipc_info_mgr; -LOCKTYPE ipc_info_lock; +struct shim_lock ipc_info_lock; struct shim_process cur_process; diff --git a/LibOS/shim/src/ipc/shim_ipc_helper.c b/LibOS/shim/src/ipc/shim_ipc_helper.c index cc6f8aed..c0a817d5 100644 --- a/LibOS/shim/src/ipc/shim_ipc_helper.c +++ b/LibOS/shim/src/ipc/shim_ipc_helper.c @@ -73,7 +73,7 @@ static AEVENTTYPE ipc_helper_event; #define IN_HELPER() \ (ipc_helper_thread && ipc_helper_thread == get_cur_thread()) -static LOCKTYPE ipc_helper_lock; +static struct shim_lock ipc_helper_lock; static struct shim_ipc_port * broadcast_port; diff --git a/LibOS/shim/src/ipc/shim_ipc_nsimpl.h b/LibOS/shim/src/ipc/shim_ipc_nsimpl.h index 9bab8ca4..d5eeff2b 100644 --- a/LibOS/shim/src/ipc/shim_ipc_nsimpl.h +++ b/LibOS/shim/src/ipc/shim_ipc_nsimpl.h @@ -82,7 +82,7 @@ struct range_bitmap { /* Helper functions __*_range_*() must be called with range_map_lock held */ static struct range_bitmap * range_map; -static LOCKTYPE range_map_lock; +static struct shim_lock range_map_lock; #define RANGE_HASH_LEN 6 #define RANGE_HASH_NUM (1 << RANGE_HASH_LEN) diff --git a/LibOS/shim/src/ipc/shim_ipc_pid.c b/LibOS/shim/src/ipc/shim_ipc_pid.c index deba39a4..65212472 100644 --- a/LibOS/shim/src/ipc/shim_ipc_pid.c +++ b/LibOS/shim/src/ipc/shim_ipc_pid.c @@ -749,7 +749,7 @@ DEFINE_LISTP(rpcmsg); DEFINE_LISTP(rpcreq); static LISTP_TYPE(rpcmsg) rpc_msgs; static LISTP_TYPE(rpcreq) rpc_reqs; -static LOCKTYPE rpc_queue_lock; +static struct shim_lock rpc_queue_lock; int get_rpc_msg (IDTYPE * sender, void * buf, int len) { diff --git a/LibOS/shim/src/shim_async.c b/LibOS/shim/src/shim_async.c index fb69cbd8..dde48a07 100644 --- a/LibOS/shim/src/shim_async.c +++ b/LibOS/shim/src/shim_async.c @@ -51,7 +51,7 @@ static enum { HELPER_NOTALIVE, HELPER_ALIVE } async_helper_state; static struct shim_thread * async_helper_thread; static AEVENTTYPE async_helper_event; -static LOCKTYPE async_helper_lock; +static struct shim_lock async_helper_lock; /* Returns remaining usecs */ int64_t install_async_event (PAL_HANDLE object, unsigned long time, diff --git a/LibOS/shim/src/shim_init.c b/LibOS/shim/src/shim_init.c index 0a01c764..6b704852 100644 --- a/LibOS/shim/src/shim_init.c +++ b/LibOS/shim/src/shim_init.c @@ -181,7 +181,7 @@ const char ** initial_envp __attribute_migratable; * never freed or updated. */ char ** library_paths = NULL; -LOCKTYPE __master_lock; +struct shim_lock __master_lock; bool lock_enabled; void init_tcb (shim_tcb_t * tcb) diff --git a/LibOS/shim/src/shim_malloc.c b/LibOS/shim/src/shim_malloc.c index 3de0dd92..7d496dd0 100644 --- a/LibOS/shim/src/shim_malloc.c +++ b/LibOS/shim/src/shim_malloc.c @@ -38,7 +38,7 @@ #include -static LOCKTYPE slab_mgr_lock; +static struct shim_lock slab_mgr_lock; #define system_lock() lock(slab_mgr_lock) #define system_unlock() unlock(slab_mgr_lock) diff --git a/LibOS/shim/src/sys/shim_futex.c b/LibOS/shim/src/sys/shim_futex.c index 9692b260..adf8b1f4 100644 --- a/LibOS/shim/src/sys/shim_futex.c +++ b/LibOS/shim/src/sys/shim_futex.c @@ -54,7 +54,7 @@ struct futex_waiter { // Links shim_futex_handle by the list field DEFINE_LISTP(shim_futex_handle); static LISTP_TYPE(shim_futex_handle) futex_list = LISTP_INIT; -static LOCKTYPE futex_list_lock; +static struct shim_lock futex_list_lock; int shim_do_futex (int * uaddr, int op, int val, void * utime, int * uaddr2, int val3) diff --git a/LibOS/shim/src/sys/shim_msgget.c b/LibOS/shim/src/sys/shim_msgget.c index a4c2fc9b..37d20b35 100644 --- a/LibOS/shim/src/sys/shim_msgget.c +++ b/LibOS/shim/src/sys/shim_msgget.c @@ -47,7 +47,7 @@ DEFINE_LISTP(shim_msg_handle); static LISTP_TYPE(shim_msg_handle) msgq_list; static LISTP_TYPE(shim_msg_handle) msgq_key_hlist [MSGQ_HASH_NUM]; static LISTP_TYPE(shim_msg_handle) msgq_qid_hlist [MSGQ_HASH_NUM]; -static LOCKTYPE msgq_list_lock; +static struct shim_lock msgq_list_lock; static int __load_msg_persist (struct shim_msg_handle * msgq, bool readmsg); static int __store_msg_persist(struct shim_msg_handle * msgq); diff --git a/LibOS/shim/src/sys/shim_semget.c b/LibOS/shim/src/sys/shim_semget.c index 73b11964..f7d3420c 100644 --- a/LibOS/shim/src/sys/shim_semget.c +++ b/LibOS/shim/src/sys/shim_semget.c @@ -48,7 +48,7 @@ DEFINE_LISTP(shim_sem_handle); static LISTP_TYPE(shim_sem_handle) sem_list; static LISTP_TYPE(shim_sem_handle) sem_key_hlist [SEM_HASH_NUM]; static LISTP_TYPE(shim_sem_handle) sem_sid_hlist [SEM_HASH_NUM]; -static LOCKTYPE sem_list_lock; +static struct shim_lock sem_list_lock; DEFINE_PROFILE_CATAGORY(sysv_sem, ); diff --git a/LibOS/shim/src/utils/strobjs.c b/LibOS/shim/src/utils/strobjs.c index 861c80ff..54e9875b 100644 --- a/LibOS/shim/src/utils/strobjs.c +++ b/LibOS/shim/src/utils/strobjs.c @@ -26,7 +26,7 @@ #include #include -static LOCKTYPE str_mgr_lock; +static struct shim_lock str_mgr_lock; #define system_lock() lock(str_mgr_lock) #define system_unlock() unlock(str_mgr_lock)