ash: 16-bit ->nprocs field is a pain for many CPUs
authorDenys Vlasenko <vda.linux@googlemail.com>
Wed, 11 Jan 2017 17:44:15 +0000 (18:44 +0100)
committerDenys Vlasenko <vda.linux@googlemail.com>
Wed, 11 Jan 2017 17:44:15 +0000 (18:44 +0100)
function                                             old     new   delta
getoptscmd                                           527     540     +13
getjob                                               280     286      +6
makejob                                              278     282      +4
forkchild                                            602     600      -2
waitcmd                                              208     205      -3
showjob                                              382     379      -3
getstatus                                             83      80      -3
dowait                                               408     405      -3
freejob                                               93      89      -4
fg_bgcmd                                             290     286      -4
forkshell                                            260     255      -5
killcmd                                              224     218      -6
jobno                                                 17      11      -6
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/10 up/down: 23/-39)           Total: -16 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
shell/ash.c

index 02545f565334fbd7d68df3ac099bad4a3c066846..bfdd94047bfdb57668f9ba88b72afd29071e59a1 100644 (file)
@@ -3392,12 +3392,13 @@ struct job {
 #if JOBS
        int stopstatus;         /* status of a stopped job */
 #endif
-       uint32_t
-               nprocs: 16,     /* number of processes */
-               state: 8,
+       unsigned nprocs;        /* number of processes */
+
 #define JOBRUNNING      0       /* at least one proc running */
 #define JOBSTOPPED      1       /* all procs are stopped */
 #define JOBDONE         2       /* all procs are completed */
+       unsigned
+               state: 8,
 #if JOBS
                sigint: 1,      /* job was killed by SIGINT */
                jobctl: 1,      /* job running under job control */