1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-22 13:34:15 +03:00

tdb: Move 160 bytes from R/W data segment to R/O text

The linker has to relocate the pointers in the array at startup, save
that. I know we have bigger .data blobs, but every bit counts :-)

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
This commit is contained in:
Volker Lendecke 2022-12-12 21:20:07 +01:00 committed by Jeremy Allison
parent e2ccd82203
commit bb94ec2655

View File

@ -32,26 +32,43 @@ _PUBLIC_ enum TDB_ERROR tdb_error(struct tdb_context *tdb)
return tdb->ecode;
}
static struct tdb_errname {
enum TDB_ERROR ecode; const char *estring;
} emap[] = { {TDB_SUCCESS, "Success"},
{TDB_ERR_CORRUPT, "Corrupt database"},
{TDB_ERR_IO, "IO Error"},
{TDB_ERR_LOCK, "Locking error"},
{TDB_ERR_OOM, "Out of memory"},
{TDB_ERR_EXISTS, "Record exists"},
{TDB_ERR_NOLOCK, "Lock exists on other keys"},
{TDB_ERR_EINVAL, "Invalid parameter"},
{TDB_ERR_NOEXIST, "Record does not exist"},
{TDB_ERR_RDONLY, "write not permitted"} };
/* Error string for the last tdb error */
_PUBLIC_ const char *tdb_errorstr(struct tdb_context *tdb)
{
uint32_t i;
for (i = 0; i < sizeof(emap) / sizeof(struct tdb_errname); i++)
if (tdb->ecode == emap[i].ecode)
return emap[i].estring;
switch (tdb->ecode) {
case TDB_SUCCESS:
return "Success";
break;
case TDB_ERR_CORRUPT:
return "Corrupt database";
break;
case TDB_ERR_IO:
return "IO Error";
break;
case TDB_ERR_LOCK:
return "Locking error";
break;
case TDB_ERR_OOM:
return "Out of memory";
break;
case TDB_ERR_EXISTS:
return "Record exists";
break;
case TDB_ERR_NOLOCK:
return "Lock exists on other keys";
break;
case TDB_ERR_EINVAL:
return "Invalid parameter";
break;
case TDB_ERR_NOEXIST:
return "Record does not exist";
break;
case TDB_ERR_RDONLY:
return "write not permitted";
break;
default:
break;
}
return "Invalid error code";
}