Changeset 433
- Timestamp:
- Jul 5, 2020, 9:26:49 PM (3 years ago)
- Location:
- EcnlProtoTool/trunk/ntshell
- Files:
-
- 9 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/ntshell/ntshell/usrcmd.c
r424 r433 789 789 } 790 790 791 int usrcmd_date(int argc, char **argv) 792 { 793 int ret; 794 struct timespec tp; 795 char buf[30]; 796 797 ret = shell_clock_gettime(CLOCK_REALTIME, &tp); 798 if (ret != 0) { 799 ntstdio_printf(&ntstdio, "clock_gettime error %d", ret); 800 return 0; 801 } 802 803 memset(buf, 0, sizeof(buf)); 804 if (ctime_r(&tp.tv_sec, buf) == NULL) { 805 ntstdio_printf(&ntstdio, "ctime_r error"); 806 return 0; 807 } 808 809 /* 改行コードの削除 */ 810 ret = ntlibc_strlen(buf); 811 buf[ret - 1] = '\0'; 812 813 ntstdio_printf(&ntstdio, "%s .%09ld\n", buf, tp.tv_nsec); 814 return 0; 815 } 816 791 817 int usrcmd_info(int argc, char **argv) 792 818 { -
EcnlProtoTool/trunk/ntshell/ntshell/usrcmd.h
r331 r433 50 50 int usrcmd_mkdir(int argc, char **argv); 51 51 int usrcmd_hexdump(int argc, char **argv); 52 int usrcmd_date(int argc, char **argv); 52 53 53 54 int usrcmd_help(int argc, char **argv); -
EcnlProtoTool/trunk/ntshell/ntshell/util/ntstdio.c
r331 r433 186 186 */ 187 187 value = (flag & FLAG_SIZE_LONG_INT) ? va_arg(arp, long) 188 : (flag & FLAG_SIZE_HALF_INT) ? ((d == 'D') ? (long) va_arg(arp, short) : (long)va_arg(arp, unsigned short))188 : (flag & FLAG_SIZE_HALF_INT) ? ((d == 'D') ? (long)((short)va_arg(arp, int)) : (long)((unsigned short)va_arg(arp, unsigned int))) 189 189 : ((d == 'D') ? (long)va_arg(arp, int) : (long)va_arg(arp, unsigned int)); 190 190 if ((d == 'D') && (value & 0x80000000)) { … … 224 224 handle->xi = xi; 225 225 handle->xo = xo; 226 handle->outptr = 0;227 handle->len = 0;228 226 handle->pos = 0; 229 227 handle->option = option; … … 232 230 static void _putc(ntstdio_t *handle, char c) 233 231 { 234 if (handle->outptr) {235 if ((handle->pos + 1) >= handle->len)236 return;237 handle->outptr[handle->pos] = (unsigned char)c;238 handle->pos++;239 return;240 }241 242 232 if (handle->xo) { 243 233 handle->xo(handle, (unsigned char)c); … … 291 281 } 292 282 283 struct put_buf_t { 284 char *outptr; 285 int len; 286 }; 287 288 static void put_buf(struct ntstdio_t *handle, unsigned char c) 289 { 290 struct put_buf_t *put_buf = (struct put_buf_t *)handle->exinf; 291 if ((handle->pos + 1) >= put_buf->len) 292 return; 293 put_buf->outptr[handle->pos] = (char)c; 294 handle->pos++; 295 } 296 293 297 int ntstdio_snprintf(char *buf, int len, const char *fmt, ...) 294 298 { 295 299 int result; 296 300 ntstdio_t handle; 301 struct put_buf_t exinf; 297 302 va_list arp; 298 303 /* Switch destination for memory */ 304 handle.xo = put_buf; 299 305 handle.option = 0; 300 handle.outptr = buf;301 handle.len = len;302 306 handle.pos = 0; 307 handle.exinf = &exinf; 308 exinf.outptr = buf; 309 exinf.len = len; 310 303 311 va_start(arp, fmt); 304 312 result = xvprintf(&handle, fmt, arp); … … 306 314 307 315 /* Terminate output string with a \0 */ 308 handle.outptr[handle.pos] = '\0';316 buf[handle.pos] = '\0'; 309 317 return result; 310 318 } -
EcnlProtoTool/trunk/ntshell/ntshell/util/ntstdio.h
r331 r433 67 67 #define NTSTDIO_OPTION_LF_CR (1 << 3) 68 68 69 struct ntstdio_t; 69 70 typedef unsigned char (*NTSTDIO_XI)(struct ntstdio_t *handle); 70 71 typedef void (*NTSTDIO_XO)(struct ntstdio_t *handle, unsigned char c); … … 73 74 NTSTDIO_XI xi; 74 75 NTSTDIO_XO xo; 75 char *outptr;76 int len;77 76 int pos; 78 77 unsigned int option; 78 void *exinf; 79 79 } ntstdio_t; 80 80 -
EcnlProtoTool/trunk/ntshell/src/fdtable.c
r424 r433 56 56 //#include <ethernet_api.h> 57 57 #include "ff.h" 58 #include " socket_stub.h"58 #include "fdtable.h" 59 59 #include "kernel_cfg.h" 60 60 //#include <string.h> -
EcnlProtoTool/trunk/ntshell/src/io_stub.c
r424 r433 57 57 #include <netinet/udp_var.h> 58 58 //#include <ethernet_api.h> 59 #include " socket_stub.h"59 #include "fdtable.h" 60 60 //#include <sys/stat.h> 61 61 #include "util/ntstdio.h" -
EcnlProtoTool/trunk/ntshell/src/main.c
r432 r433 1 1 /* 2 * TOPPERS ECHONET Lite Communication Middleware2 * TOPPERS PROJECT Home Network Working Group Software 3 3 * 4 * Copyright (C) 2014-201 7Cores Co., Ltd. Japan4 * Copyright (C) 2014-2019 Cores Co., Ltd. Japan 5 5 * 6 6 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ … … 45 45 #include <sil.h> 46 46 #include <setjmp.h> 47 //#include <string.h>47 #include <string.h> 48 48 #include "syssvc/serial.h" 49 49 #include "syssvc/syslog.h" … … 70 70 #include "usrcmd.h" 71 71 #include "util/ntopt.h" 72 #include "socket_stub.h" 72 #include "fdtable.h" 73 #include "target_syssvc.h" 73 74 74 75 ID ws_api_mailboxid = MAIN_DATAQUEUE; 75 76 ID ws_mempoolid = MPF_NET_BUF_256; 76 77 #define SIO_PORTID 178 77 79 78 char command[NTOPT_TEXT_MAXLEN]; … … 98 97 const struct utsname host_name = { 99 98 "TOPPERS/ASP3", 100 "GR-PEACH",101 "3.1.0",102 "3.1.0",103 "GR-PEACH",99 TARGET_NAME, 100 "3.5.0", 101 "3.5.0", 102 TARGET_NAME, 104 103 "toppers.jp" 105 104 }; … … 315 314 {"mkdir", "Make directory", usrcmd_mkdir}, 316 315 {"hexdump", "Hex dump", usrcmd_hexdump}, 316 {"date", "print date and time", usrcmd_date}, 317 317 {"info", "This is a description text string for info command.", usrcmd_info}, 318 318 {"exit", "Exit Natural Tiny Shell", usrcmd_exit}, -
EcnlProtoTool/trunk/ntshell/src/main.h
r432 r433 40 40 41 41 /* 42 * サンプルプログラム(1)のヘッダファイル42 * ntshellタスクのヘッダファイル 43 43 */ 44 44 … … 47 47 */ 48 48 #include <kernel.h> 49 50 #include "usrcmd.h" 51 #include "core/ntshell.h" 49 52 50 53 /* -
EcnlProtoTool/trunk/ntshell/src/socket_stub.c
r424 r433 57 57 extern const ID tmax_tcp_cepid; 58 58 #include "ff.h" 59 #include " socket_stub.h"59 #include "fdtable.h" 60 60 61 61 #define SOCKET_TIMEOUT 2000000
Note:
See TracChangeset
for help on using the changeset viewer.