From mboxrd@z Thu Jan 1 00:00:00 1970 From: me@tobin.cc (Tobin C. Harding) Date: Thu, 30 Mar 2017 11:39:16 +1100 Subject: 0 bit shift In-Reply-To: <59220.1490831870@turing-police.cc.vt.edu> References: <20170329225944.GG25014@eros> <59220.1490831870@turing-police.cc.vt.edu> Message-ID: <20170330003916.GJ25014@eros> To: kernelnewbies@lists.kernelnewbies.org List-Id: kernelnewbies.lists.kernelnewbies.org On Wed, Mar 29, 2017 at 07:57:50PM -0400, valdis.kletnieks at vt.edu wrote: > On Thu, 30 Mar 2017 09:59:44 +1100, "Tobin C. Harding" said: > > What is the reason for the zero bit shift in this code please? > > > > #define SDIO_STATE_PRESENT (1<<0) /* present in sysfs */ > > > > file: include/linux/mmc/sdio_func.h > > Most likely, to indicate that it's a bitmask in the 'unsigned int state' > in the line above, rather than an integer. > > See the other 2 uses of the flag in-tree: > > [/usr/src/linux-next] git grep SDIO_STATE_PRESENT > include/linux/mmc/sdio_func.h:#define SDIO_STATE_PRESENT (1<<0) /* present in sysfs */ > include/linux/mmc/sdio_func.h:#define sdio_func_present(f) ((f)->state & SDIO_STATE_PRESENT) > include/linux/mmc/sdio_func.h:#define sdio_func_set_present(f) ((f)->state |= SDIO_STATE_PRESENT) > Awesome, thanks.