From: jaehoon.you Date: Fri, 11 Oct 2013 09:07:57 +0000 (+0900) Subject: Support MAC OS X 10.7,10.8 X-Git-Tag: submit/trunk/20190927.044709~46 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d6f6bfeae18d7359a972c75e95b80d5e5352576c;p=tools%2Flthor.git Support MAC OS X 10.7,10.8 On OS X the serial device must be opened with O_NONBLOCK flag. Later this flag must be cleared before write operations otherwise only small chunks data can be written at once. Tested on OS X (10.8.4). Author : Piotr Wilczek Change-Id: I2b77cf16aacd491af9c94203fe7dfc49ce361516 Signed-off-by: jaehoon.you --- diff --git a/AUTHORS b/AUTHORS index 1a1d5ef..c9326d1 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,3 +1,4 @@ Jaehoon You Karol Lewandowski Rafal Krypa +Piotr Wilczek diff --git a/CMakeLists.txt b/CMakeLists.txt index 5bd246e..5b36e69 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,7 +13,7 @@ SET(PKGNAME "${PACKAGE}") SET(PREFIX ${CMAKE_INSTALL_PREFIX}) SET(BINDIR "${PREFIX}/bin") -SET(PACKAGE_VERSION "1.3") +SET(PACKAGE_VERSION "1.4") IF("${CMAKE_BUILD_TYPE}" STREQUAL "") @@ -43,7 +43,11 @@ ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"") ADD_DEFINITIONS("-DPACKAGE_VERSION=\"${PACKAGE_VERSION}\"") #SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed") -SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--as-needed") +IF(APPLE) + SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}") +ELSE() + SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--as-needed") +ENDIF() ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS}) TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS}) diff --git a/NOTICE b/NOTICE index 0e0f016..d18014e 100644 --- a/NOTICE +++ b/NOTICE @@ -1,3 +1,16 @@ Copyright (c) Samsung Electronics Co., Ltd. All rights reserved. Except as noted, this software is licensed under Apache License, Version 2. Please, see the LICENSE.APLv2 file for Apache License terms and conditions. + +---------------------------------------------------------------------------- + + +(Requirements: OS X 10.7, 10.8) +For OS X 'pkg-config' package is required. It can be downloaded from: +http://www.freedesktop.org/wiki/Software/pkg-config/ + +The libarchive download is available at: +http://www.libarchive.org/ + +On OS X always execute lthor with -d /dev/cu.MYDEV +ex) lthor -d /dev/cu.SAMSUNG_VSP *.tar diff --git a/lthor.c b/lthor.c index d97e2df..48c40ce 100755 --- a/lthor.c +++ b/lthor.c @@ -183,6 +183,9 @@ int send_chunks(int fd, struct data_src *senddata, size_t size) r = write(fd, chunk, trans_unit_size); if (r != trans_unit_size) { + if (r > 0) + fprintf(stderr, "line %d: %d bytes requested, %d written\n", + __LINE__, trans_unit_size, r); fprintf(stderr, "line %d: failed to send data\n", __LINE__); free(chunk); return -1; @@ -577,11 +580,20 @@ int open_port(const char *portname, int wait) } if (dev) { - fd = open(dev, O_RDWR); + /* On OS X open serial port with O_NONBLOCK flag */ + fd = open(dev, O_RDWR | O_NONBLOCK); + if (fd == -1) { perror("port open error!!\n"); return -1; } + + /*now clear the O_NONBLOCK flag to enable writing big data chunks at once*/ + if (fcntl(fd, F_SETFL, 0)) { + printf("line %d: error clearing O_NONBLOCK\n", __LINE__); + return -1; + } + break; } diff --git a/packaging/lthor.spec b/packaging/lthor.spec index a2e0bc0..6c29918 100644 --- a/packaging/lthor.spec +++ b/packaging/lthor.spec @@ -3,7 +3,7 @@ # Name: lthor Summary: Flashing tool for Tizen lunchbox -Version: 1.3 +Version: 1.4 Release: 1 Group: Development/Tools/Other License: Apache