meson: update to latest c++ and format rules
This is required to get latest sdbusplus changes through
Change-Id: Ibc358ee9e688f20d25a8172d90da95e10a18e5a4
Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
diff --git a/README.md b/README.md
index 7955111..a4aedff 100644
--- a/README.md
+++ b/README.md
@@ -50,10 +50,10 @@
### IPMID OEM Command Extension Routing
-* Register wildcard command handler for any OEM Group Extension request (netfn
- 0x2e, cmd 0xff)
-* Provide for registration of OEN, command pairs
-* Route received requests to registered handler
+- Register wildcard command handler for any OEM Group Extension request (netfn
+ 0x2e, cmd 0xff)
+- Provide for registration of OEN, command pairs
+- Route received requests to registered handler
### IPMID Messages
@@ -67,18 +67,18 @@
##### Request Data
-| byte(s) | type | ID | Description
-| ------- | -------- | -------- | ----------------------------------------
-| 0 | byte | bus | i2c adapater number at BMC
-| 1 | ReqFlags | reqFlags | Flags for request
-| | | | bit 7 - PEC flag for M_RECV_LEN transfer
-| | | | bits 6:0 - zero -reserved for future use
-| 2+ | Step | - | One per struct i2c_msg in transfer.
+| byte(s) | type | ID | Description |
+| ------- | -------- | -------- | ---------------------------------------- |
+| 0 | byte | bus | i2c adapater number at BMC |
+| 1 | ReqFlags | reqFlags | Flags for request |
+| | | | bit 7 - PEC flag for M_RECV_LEN transfer |
+| | | | bits 6:0 - zero -reserved for future use |
+| 2+ | Step | - | One per struct i2c_msg in transfer. |
##### Each Request Step
| byte(s) | type | ID | Description |
-| ------- | --------- | --------- | ------------------------------------------ |
+| ------- | --------- | --------- | ----------------------------------------------- |
| 0 | byte | devAndDir | bit 0: 1 if step is read, 0 if write |
| | | | bits 7:1 i2c device address |
| 1 | StepFlags | stepFlags | Flags fro each step |
@@ -135,25 +135,25 @@
Hopefully you can see how to modify these commands in simple ways:
-* Use a different BMC bus or device address.
-* Change the data byte to select a different starting register, other than 15.
-* Change the read step length to read more/fewer bytes, but note max is 32.
+- Use a different BMC bus or device address.
+- Change the data byte to select a different starting register, other than 15.
+- Change the read step length to read more/fewer bytes, but note max is 32.
More advanced ideas
-* Skip the read step & add more data bytes to write to selected address.
-* Zero length read / write step do quick write 1 / 0, respectively
+- Skip the read step & add more data bytes to write to selected address.
+- Zero length read / write step do quick write 1 / 0, respectively
### IPMID OpenBMC I2C Command Extension
-* Register handler for OpenBmc I2c Oem Extension requests
-* Handle I2C transfer request
- * Decode message information
- * Convert request steps to struct i2c_msg array entries
- * Adjust M_RCV_LEN steps for IOCTL
- * Perform I2C_RDWR ioctl on associated I2C bus
- * Return nonzero completion code upon errors; or
- * Append all bytes read into one reply upon success
+- Register handler for OpenBmc I2c Oem Extension requests
+- Handle I2C transfer request
+ - Decode message information
+ - Convert request steps to struct i2c_msg array entries
+ - Adjust M_RCV_LEN steps for IOCTL
+ - Perform I2C_RDWR ioctl on associated I2C bus
+ - Return nonzero completion code upon errors; or
+ - Append all bytes read into one reply upon success
### Prodkernel i2c-via-ipmi Proxy Platform Driver
@@ -161,28 +161,27 @@
Platform device attributes at /sys/devices/platform/i2c-via-ipmi/${name}
-* name - identifies proxy (BMC's i2c bus number)
+- name - identifies proxy (BMC's i2c bus number)
#### Proxy Operation
##### I2C Adapter Instance
-* Host tool performs I/O on this interface
-* Implements master_xfer method
+- Host tool performs I/O on this interface
+- Implements master_xfer method
##### IPMI User Instance
-* Supports IPMI messaging
-* Implements ipmi_recv_hndl callback
+- Supports IPMI messaging
+- Implements ipmi_recv_hndl callback
##### I2C master_xfer logic
-* Convert struct i2c_msg array to IPMI request
-* Send request & wait for completion
+- Convert struct i2c_msg array to IPMI request
+- Send request & wait for completion
##### IPMI ipmi_recv_hndl logic
-* Check everything possible to ensure this is a reply to our request
-* Copy received bytes to user buffer(s)
-* Declare completion
-
+- Check everything possible to ensure this is a reply to our request
+- Copy received bytes to user buffer(s)
+- Declare completion
diff --git a/meson.build b/meson.build
index f87ddef..f394216 100644
--- a/meson.build
+++ b/meson.build
@@ -1,32 +1,24 @@
project(
- 'google-ipmi-i2c',
- 'cpp',
- version: '0.1',
- meson_version: '>=0.57.0',
- default_options: [
- 'cpp_std=c++20',
- 'warning_level=3',
- 'werror=true',
- ]
+ 'google-ipmi-i2c',
+ 'cpp',
+ version: '0.1',
+ meson_version: '>=1.1.1',
+ default_options: ['cpp_std=c++23', 'warning_level=3', 'werror=true'],
)
cpp = meson.get_compiler('cpp')
-assert(cpp.has_header_symbol(
- 'ipmid/api.h',
- 'ipmid_get_sd_bus_connection')
-)
+ipmid = dependency('libipmid')
+
assert(cpp.check_header('linux/i2c-dev.h'))
assert(cpp.check_header('linux/i2c.h'))
shared_module(
- 'i2ccmds',
- 'i2c.cpp',
- implicit_include_directories: false,
- include_directories: include_directories('.'),
- dependencies: [
- dependency('libipmid'),
- ],
- install: true,
- install_dir: get_option('libdir') / 'ipmid-providers'
+ 'i2ccmds',
+ 'i2c.cpp',
+ implicit_include_directories: false,
+ include_directories: include_directories('.'),
+ dependencies: [ipmid],
+ install: true,
+ install_dir: get_option('libdir') / 'ipmid-providers',
)