this repo has no description
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

libsyscall/mach now builds, improved mig() function in CMake

+117 -26
+32 -24
kernel/CMakeLists.txt
··· 8 8 set(MIG_EXECUTABLE "${CMAKE_BINARY_DIR}/mig") 9 9 10 10 FUNCTION(mig defFileName) 11 + if (NOT MIG_USER_SOURCE_SUFFIX) 12 + set (MIG_USER_SOURCE_SUFFIX "User.c") 13 + endif (NOT MIG_USER_SOURCE_SUFFIX) 14 + if (NOT MIG_USER_HEADER_SUFFIX) 15 + set (MIG_USER_HEADER_SUFFIX ".h") 16 + endif (NOT MIG_USER_HEADER_SUFFIX) 17 + if (NOT MIG_SERVER_SOURCE_SUFFIX) 18 + set (MIG_SERVER_SOURCE_SUFFIX "Server.c") 19 + endif (NOT MIG_SERVER_SOURCE_SUFFIX) 20 + if (NOT MIG_SERVER_HEADER_SUFFIX) 21 + set (MIG_SERVER_HEADER_SUFFIX "Server.h") 22 + endif (NOT MIG_SERVER_HEADER_SUFFIX) 11 23 12 24 get_directory_property(DirDefs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMPILE_DEFINITIONS) 13 25 get_directory_property(InclDirs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} INCLUDE_DIRECTORIES) ··· 23 35 # message(STATUS "MIG flags: ${MIG_FLAGS}") 24 36 separate_arguments(MIG_FLAGS) 25 37 26 - string(REPLACE ".defs" "" bareName "${defFileName}") 27 - get_filename_component(bareName "${bareName}" NAME) 38 + string(REPLACE ".defs" "" relativeName "${defFileName}") 39 + get_filename_component(bareName "${relativeName}" NAME) 40 + get_filename_component(dirName "${relativeName}" DIRECTORY) 41 + 42 + if (dirName) 43 + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${dirName} 44 + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/${dirName}) 45 + endif (dirName) 46 + 28 47 add_custom_command(OUTPUT 29 - ${CMAKE_CURRENT_BINARY_DIR}/${bareName}User.c 30 - ${CMAKE_CURRENT_BINARY_DIR}/${bareName}.h 31 - ${CMAKE_CURRENT_BINARY_DIR}/${bareName}Server.c 32 - ${CMAKE_CURRENT_BINARY_DIR}/${bareName}Server.h 48 + ${CMAKE_CURRENT_BINARY_DIR}/${relativeName}${MIG_USER_SOURCE_SUFFIX} 49 + ${CMAKE_CURRENT_BINARY_DIR}/${relativeName}${MIG_USER_HEADER_SUFFIX} 50 + ${CMAKE_CURRENT_BINARY_DIR}/${relativeName}${MIG_SERVER_SOURCE_SUFFIX} 51 + ${CMAKE_CURRENT_BINARY_DIR}/${relativeName}${MIG_SERVER_HEADER_SUFFIX} 33 52 COMMAND 34 53 ${MIG_EXECUTABLE} 35 - -user ${CMAKE_CURRENT_BINARY_DIR}/${bareName}User.c 36 - -header ${CMAKE_CURRENT_BINARY_DIR}/${bareName}.h 37 - -server ${CMAKE_CURRENT_BINARY_DIR}/${bareName}Server.c 38 - -sheader ${CMAKE_CURRENT_BINARY_DIR}/${bareName}Server.h 54 + -user ${CMAKE_CURRENT_BINARY_DIR}/${relativeName}${MIG_USER_SOURCE_SUFFIX} 55 + -header ${CMAKE_CURRENT_BINARY_DIR}/${relativeName}${MIG_USER_HEADER_SUFFIX} 56 + -server ${CMAKE_CURRENT_BINARY_DIR}/${relativeName}${MIG_SERVER_SOURCE_SUFFIX} 57 + -sheader ${CMAKE_CURRENT_BINARY_DIR}/${relativeName}${MIG_SERVER_HEADER_SUFFIX} 39 58 ${MIG_FLAGS} 40 59 ${CMAKE_CURRENT_SOURCE_DIR}/${defFileName} 41 - DEPENDS "${CMAKE_BINARY_DIR}/mig" 60 + DEPENDS 61 + "${CMAKE_BINARY_DIR}/mig" 62 + "${CMAKE_CURRENT_BINARY_DIR}/${dirName}" 42 63 ) 43 - #execute_process(COMMAND ${MIG_EXECUTABLE} 44 - # -user ${CMAKE_CURRENT_BINARY_DIR}/${bareName}User.c 45 - # -header ${CMAKE_CURRENT_BINARY_DIR}/${bareName}.h 46 - # -server ${CMAKE_CURRENT_BINARY_DIR}/${bareName}Server.c 47 - # -sheader ${CMAKE_CURRENT_BINARY_DIR}/${bareName}Server.h 48 - # ${MIG_FLAGS} 49 - # ${CMAKE_CURRENT_SOURCE_DIR}/${defFileName} 50 - # RESULT_VARIABLE MigResult 51 - #) 52 - 53 - #if(NOT "${MigResult}" STREQUAL 0) 54 - # message(SEND_ERROR "mig failed") 55 - #endif() 56 64 ENDFUNCTION(mig) 57 65 58 66 if(CMAKE_SIZEOF_VOID_P EQUAL 4 OR CMAKE_INSTALL_LIBDIR STREQUAL "lib32")
+81 -2
kernel/libsyscall/CMakeLists.txt
··· 5 5 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99 -nostdinc") 6 6 include_directories("${CMAKE_CURRENT_SOURCE_DIR}/wrappers") 7 7 include_directories("${CMAKE_CURRENT_SOURCE_DIR}/mach") 8 + include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../iokit") 8 9 include_directories("${CMAKE_CURRENT_SOURCE_DIR}/os") 9 10 include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../../platform-include") 10 11 include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../../libc/include") 11 12 include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../../duct/include") 13 + include_directories("${CMAKE_CURRENT_BINARY_DIR}") 12 14 add_definitions(-DPRIVATE) 15 + add_definitions('-D__XNU_PRIVATE_EXTERN=') 16 + #add_definitions(-DKERNEL) 13 17 18 + set(MIG_USER_HEADER_SUFFIX "_internal.h") 14 19 mig(mach/exc.defs) 20 + mig(mach/host_priv.defs) 21 + mig(mach/host_security.defs) 22 + mig(mach/ledger.defs) 23 + mig(mach/lock_set.defs) 24 + mig(mach/mach_host.defs) 25 + mig(mach/mach_port.defs) 26 + mig(mach/mach_vm.defs) 27 + mig(mach/mach_voucher.defs) 28 + mig(mach/notify.defs) 29 + mig(mach/processor_set.defs) 30 + mig(mach/processor.defs) 31 + mig(mach/task.defs) 32 + mig(mach/thread_act.defs) 33 + mig(mach/vm_map.defs) 15 34 16 35 set(syscall_sources 17 36 #wrappers/coalition.c ··· 72 91 #wrappers/legacy/socketpair.c 73 92 74 93 custom/errno.c 75 - ${CMAKE_CURRENT_BINARY_DIR}/excUser.c 76 - ) 94 + 95 + # MIG generated files 96 + ${CMAKE_CURRENT_BINARY_DIR}/mach/excUser.c 97 + ${CMAKE_CURRENT_BINARY_DIR}/mach/host_privUser.c 98 + ${CMAKE_CURRENT_BINARY_DIR}/mach/host_securityUser.c 99 + ${CMAKE_CURRENT_BINARY_DIR}/mach/ledgerUser.c 100 + ${CMAKE_CURRENT_BINARY_DIR}/mach/lock_setUser.c 101 + ${CMAKE_CURRENT_BINARY_DIR}/mach/mach_hostUser.c 102 + ${CMAKE_CURRENT_BINARY_DIR}/mach/mach_portUser.c 103 + ${CMAKE_CURRENT_BINARY_DIR}/mach/mach_vmUser.c 104 + ${CMAKE_CURRENT_BINARY_DIR}/mach/mach_voucherUser.c 105 + ${CMAKE_CURRENT_BINARY_DIR}/mach/notifyUser.c 106 + ${CMAKE_CURRENT_BINARY_DIR}/mach/processor_setUser.c 107 + ${CMAKE_CURRENT_BINARY_DIR}/mach/processorUser.c 108 + ${CMAKE_CURRENT_BINARY_DIR}/mach/taskUser.c 109 + ${CMAKE_CURRENT_BINARY_DIR}/mach/thread_actUser.c 110 + ${CMAKE_CURRENT_BINARY_DIR}/mach/vm_mapUser.c 111 + 112 + mach/mach_init.c 113 + mach/clock_sleep.c 114 + mach/dylib_link.c 115 + mach/error_codes.c 116 + mach/exc_catcher.c 117 + mach/exc_catcher_state.c 118 + mach/exc_catcher_state_identity.c 119 + mach/fprintf_stderr.c 120 + mach/mach_error.c 121 + mach/mach_error_string.c 122 + mach/mach_init.c 123 + mach/mach_legacy.c 124 + mach/mach_msg.c 125 + mach/mach_port.c 126 + mach/mach_vm.c 127 + mach/mig_allocate.c 128 + mach/mig_deallocate.c 129 + mach/mig_reply_port.c 130 + mach/mig_reply_setup.c 131 + mach/mig_strncpy.c 132 + mach/ms_thread_switch.c 133 + mach/panic.c 134 + mach/port_obj.c 135 + mach/semaphore.c 136 + mach/slot_name.c 137 + mach/string.c 138 + mach/thread_act.c 139 + 140 + ) 141 + 142 + mig(mach/host_priv.defs) 143 + mig(mach/host_security.defs) 144 + mig(mach/ledger.defs) 145 + mig(mach/lock_set.defs) 146 + mig(mach/mach_host.defs) 147 + mig(mach/mach_port.defs) 148 + mig(mach/mach_vm.defs) 149 + mig(mach/mach_voucher.defs) 150 + mig(mach/notify.defs) 151 + mig(mach/processor_set.defs) 152 + mig(mach/processor.defs) 153 + mig(mach/task.defs) 154 + mig(mach/thread_act.defs) 155 + mig(mach/vm_map.defs) 77 156 78 157 add_library(libsyscall OBJECT ${syscall_sources})
+4
kernel/libsyscall/mach/error_codes.c
··· 64 64 65 65 #include <mach/error.h> 66 66 #include "errorlib.h" 67 + #ifndef DARLING 67 68 #include "err_libkern.sub" 68 69 #include "err_iokit.sub" 69 70 #include "err_ipc.sub" ··· 71 72 #include "err_mach_ipc.sub" 72 73 #include "err_server.sub" 73 74 #include "err_us.sub" 75 + #endif 74 76 75 77 const struct error_system _mach_errors[err_max_system+1] = { 78 + #ifndef DARLING 76 79 /* 0; err_kern */ 77 80 { 78 81 errlib_count(err_os_sub), ··· 154 157 /* 0x3a */ errorlib_system_null, /* 0x3b */ errorlib_system_null, 155 158 /* 0x3c */ errorlib_system_null, /* 0x3d */ errorlib_system_null, 156 159 /* 0x3e */ errorlib_system_null, /* 0x3f */ errorlib_system_null, 160 + #endif 157 161 }; 158 162 159 163 // int error_system_count = errlib_count(_mach_errors);